Присвойте статический публичный IP-адрес модулю в Kubernetes и укажите его в сервисе

Присвойте статический публичный IP-адрес модулю в Kubernetes и укажите его в сервисе

СогласноСвязь, мы можем создать модули с несколькими сетями, если приложение открывает порт с сетью, отличной от сети по умолчанию (eth2,3 и т. д.) Как мы можем представить его как службу? В yaml службы я не нашел другого способа представить службу, кроме как по умолчанию.

решение1

Multus позволяет подключать сетевые устройства к вашим модулям Pod, хотя следует отметить, что эти интерфейсы не являются частью нашего кластера Kubernetes SDN.

С устройствами на базе Multus: вы бы выделили IP-адреса для своих Pod, используя DHCP, статические IP-адреса, ... на ваше усмотрение. Имейте в виду, что эти адреса независимы от вашего Kubernetes SDN.

Если другим контейнерам в этом кластере потребуется подключиться к этим конечным точкам, то их трафик будет покидать вашу SDN, проходя через их обычный шлюз по умолчанию, который, в свою очередь, должен иметь некоторую информацию о (маршруте) ваших подсетях адресов Multus.

Однако вы все равно можете создавать Услуги, назначая адреса из вашего SDN. Это будет сделано путем создания объекта Endpoints, рядом с вашими Услугами, например:

---
apiVersion: v1
kind: Endpoints
metadata:
  name: svc-out-sdn
  namespace: ns
subsets:
- addresses:
  - ip: 10.0.0.1
  ports:
  - name: tcp-80
    port: 80
    protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
  name: svc-out-sdn
  namespace: ns
spec:
  clusterIP: None
  ports:
  - name: tcp-80
    port: 80

Связанный контент