Estou implantando um aplicativo Web usando o Google Kubernetes Engine e quero torná-lo acessível por meio de um balanceador de carga em um endereço IP estático existente que eu controle como parte do mesmo projeto no Google Cloud Platform, porque o nome de domínio que eu quero usar já aponta para esse IP.
O arquivo yaml que usei para o pod é:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
labels:
app: my-app
spec:
containers:
- name: my-container
image: gcr.io/my-project/my-app:latest
Posso configurar um balanceador de carga usando:
apiVersion: v1
kind: Service
metadata:
name: my-load-balancer
spec:
ports:
- port: 80
targetPort: 80
selector:
app: my-app
type: LoadBalancer
Isso fornece um IP externo no qual o aplicativo está acessível, mas não consigo encontrar nenhuma maneira de configurá-lo para usar o IP desejado. A documentação dos serviços menciona uma configuração spec.clusterIP, mas isso não parece estar relacionado ao IP externo. Da mesma forma, uma vez configurado o balanceador de carga, o campo status.loadBalancer.ingress.ip do serviço é definido como seu endereço IP externo, mas isso não parece ser uma configuração configurável.
Como alternativa, tentei criar manualmente uma regra de encaminhamento no console do Google Compute Engine para direcionar o tráfego do meu endereço IP estático para o pool de destino configurado pelo Kubernetes, mas quando tento conectar, a conexão é recusada.
Existe alguma maneira de fazer o que eu quero - expor um pod Kubernetes (ou controlador de replicação) no mecanismo do Google Kubernetes em um endereço IP estático escolhido?
Boas notícias. Isso será corrigido no Kubernetes v1.1. Você pode definir o
service.spec.loadBalancerIP
campo para um IP que você conhece.Anterior:
Esse é um recurso que caiu nas rachaduras. Deveria funcionar (e pode até ter funcionado em algum momento), mas não foi bem testado e foi quebrado ao longo do caminho e, em seguida, foi acidentalmente projetado (temporariamente).
Está na minha lista curta as coisas para corrigir depois da 1.0.
https://github.com/GoogleCloudPlatform/kubernetes/issues/10323
fonte