Expondo serviço no Kubernetes

2

Sou novo no Kubernetes e tenho algumas dúvidas. Eu configurei um cluster do Kubernetes que consiste em um mestre / nó e um nó. Eu implantei um aplicativo baseado em NodeJS muito simples, usando Deployment kind com 2 réplicas. Então, eu o expus como um serviço por kubectl expose deployment my-app --port=80 .

Agora, meus serviços parecem:

root@sw-kubernetes01:~# kubectl get services
NAME             CLUSTER-IP        EXTERNAL-IP   PORT(S)   AGE
my-app           192.168.100.167   <none>        80/TCP    10m
kubernetes       192.168.100.1     <none>        443/TCP   1h

Supõe-se que devo acessar meu aplicativo navegando para http://192.168.100.167: ? Estou recebendo um erro de tempo limite. Caso contrário, como posso obter o IP externo para acessar o serviço externamente?

Se eu declarar o serviço como type: NodePort , posso acessar meu aplicativo usando nós IP, não existe uma maneira de equilibrar automaticamente a carga entre os pods?

    
por Héctor 27.04.2016 / 10:34

3 respostas

1

Se você estiver trabalhando em um cluster local, poderá usar o --type=NodePort

kubectl expose deployment my-app --port=80 --type=NodePort

e depois grep para a porta

kubectl get svc my-service -o yaml | grep nodePort

e você poderia navegar usando o ip do cluster e a porta que é gerada pelo resultado do grep anterior.

    
por 18.05.2016 / 17:28
1

Se você estiver usando o GCE, o EC2 ou o OpenStack, normalmente levará um minuto ou dois para que um balanceador de carga seja criado e para que o campo EXTERNAL_IP seja preenchido. O IP nesse campo é o que você deve usar para acessar seu serviço.

Se você não estiver usando o GCE, o EC2 ou o OpenStack, o recurso de balanceador de carga externo não funcionará para você, pois o Kubernetes não saberá como criar um no seu ambiente.

    
por 27.04.2016 / 17:08
0

Como já sugerido na pergunta, você pode acessar o serviço NodePort usando a porta fornecida por

kubectl get svc my-service -o yaml | grep nodePort

e qualquer um dos IPs do nó público. No entanto, essas solicitações não precisam terminar no nó com o IP usado para a solicitação. Na verdade, essas solicitações são roteadas dentro do cluster para qualquer um dos conjuntos associados ao serviço. Portanto, há algum balanceamento de carga presente aqui.

    
por 10.10.2016 / 10:33

Tags