Atribuir um IP público estático para um pod no Kubernetes e especificar no serviço

Atribuir um IP público estático para um pod no Kubernetes e especificar no serviço

ConformeLink, podemos criar pods com múltiplas redes, se o aplicativo abrir porta com rede não padrão (eth2,3 etc) Como podemos expô-lo como serviço? No service yaml, não encontro nenhuma maneira de expor o serviço além do padrão.

Responder1

Multus permite que você conecte dispositivos de rede aos seus pods, embora devamos observar que essas interfaces não fazem parte de nosso cluster SDN Kubernetes.

Com dispositivos baseados em Multus: você alocaria IPs para seus pods, usando DHCP, IPs estáticos, ... você decide. Lembrando que esses endereços são independentes do seu SDN do Kubernetes.

Se outros contêineres nesse cluster precisarem conectar esses endpoints, o tráfego deles deixará seu SDN, passando pelo gateway padrão usual, que por sua vez deve ter algum conhecimento (rota para) suas sub-redes de endereços Multus.

No entanto, você ainda pode criar Serviços, designando endereços fora do seu SDN. Isso seria feito criando um objeto Endpoints, junto com o seu Serviço, como:

---
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

informação relacionada