1
resposta

[Dúvida] Não consigo Conectar Externamente NodePort

Olá,

mesmo configurando o POD adequadamente e vinculando o mesmo a um Service NodPort, não consigo acessá-lo pelo host hospedeiro.

A conexão é recusada. Meu firewall está aberto e não vejo listen abrir na porta 30000 (porta indicada para o serviço ser acessado externamente no Linux).

Segue saída:

[kubs@ol8-kubs-teste mini-proj]$ kubectl get nodes -o wide NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME minikube Ready master 8d v1.18.3 *172.17.0.2 * Ubuntu 19.10 5.4.17-2136.316.7.el8uek.x86_64 docker://19.3.2

[kubs@ol8-kubs-teste mini-proj]$ curl -i -k http://172.17.0.2 curl: (7) Failed to connect to 172.17.0.2 port 80: Conexão recusada

[kubs@ol8-kubs-teste mini-proj]$ curl -i -k http://172.17.0.2:30000 curl: (7) Failed to connect to 172.17.0.2 port 30000: Conexão recusada

** Descrição do POD vinculado ao SVC NodePort: ** [kubs@ol8-kubs-teste mini-proj]$ kubectl describe pod pod-1 Name: pod-1 Namespace: default Priority: 0 Service Account: default Node: minikube/172.17.0.2 Start Time: Tue, 04 Apr 2023 10:35:41 -0300 Labels: app=primeiro-pod Annotations: Status: Running IP: 172.18.0.3 IPs: IP: 172.18.0.3 Containers: container-pod-1: Container ID: docker://2dbb613e7504e9654bb1aa7cd1bd89b43390fa332b04d446f7021d960336b087 Image: nginx:latest Image ID: docker-pullable://nginx@sha256:2ab30d6ac53580a6db8b657abf0f68d75360ff5cc1670a85acb5bd85ba1b19c0 Port: 80/TCP Host Port: 0/TCP State: Running Started: Tue, 04 Apr 2023 10:35:44 -0300 Ready: True Restart Count: 0 Environment: Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-sjcdv (ro) Conditions: Type Status Initialized True Ready True ContainersReady True PodScheduled True Volumes: default-token-sjcdv: Type: Secret (a volume populated by a Secret) SecretName: default-token-sjcdv Optional: false QoS Class: BestEffort Node-Selectors: Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events:

** Descrição SVC NodePort: ** [kubs@ol8-kubs-teste mini-proj]$ kubectl describe svc svc-pod-1 Name: svc-pod-1 Namespace: default Labels: Annotations: Selector: app=primeiro-pod Type: NodePort IP Families: IP: 10.108.52.210 IPs: Port: 80/TCP TargetPort: 80/TCP NodePort: 30000/TCP Endpoints: 172.18.0.3:80 Session Affinity: None External Traffic Policy: Cluster Events:

1 resposta

Oi Ariane, tudo bem?

Desculpe a demora em retornar.

Vi que você finalizou o curso, que ótimo!

Primeiramente, verifique se o seu serviço NodePort está configurado corretamente. De acordo com a descrição do serviço svc-pod-1, o NodePort está definido como <unset>, o que pode indicar um problema na configuração. Certifique-se de que o NodePort esteja definido para 30000 no arquivo de configuração do serviço.

Além disso, é importante verificar se o seu serviço está realmente sendo executado no nó correto. Na descrição do pod pod-1, é possível ver que ele está sendo executado no nó minikube/172.17.0.2. Verifique se esse é o nó correto onde você espera que o serviço seja executado.

Outro ponto importante é garantir que o seu firewall esteja configurado corretamente. Você mencionou que o firewall está aberto, mas é necessário verificar se a porta 30000 está aberta para conexões externas. Verifique as configurações do firewall e certifique-se de que a porta 30000 esteja liberada.

Por fim, verifique se o serviço está realmente sendo executado na porta 30000. Você pode usar o comando kubectl get svc svc-pod-1 -o yaml para verificar as configurações do serviço e garantir que a porta esteja corretamente configurada.

Espero que essas dicas possam te ajudar a resolver o problema de conexão externa com o seu serviço NodePort. Lembre-se de verificar as configurações do serviço, o nó onde o serviço está sendo executado, as configurações do firewall e a porta em que o serviço está sendo executado.

Um abraço e bons estudos.