POD nginx-pod executa o servidor HTTP escutando na porta 9000. SERVICE nginx-svc (ClusterIP) para ele é criado. Arquivos Yaml na parte inferior da postagem.
kubectl get po -ntest -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-curl 1/1 Running 0 57s 172.16.158.37 worker-node02 <none> <none>
nginx-pod 1/1 Running 0 17m 172.16.87.229 worker-node01 <none> <none>
kubectl -ntest get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-svc ClusterIP 172.17.22.178 <none> 9000/TCP 11s
Problema/Pergunta: Quando eu "enrolo" DE: pod nginx-curl PARA: nginx-pod IP 172.16.87.229 (aquele com nginx escutando na porta 9000), funciona:
$ kubectl -ntest exec -it nginx-curl -- bash
root@nginx-curl:/# curl 172.16.87.229:9000
Works!
Quando eu "curl" FROM: pod nginx-curl TO: nginx-svc IP 172.17.22.178 não funciona:
$ kubectl -ntest exec -it nginx-curl -- bash
root@nginx-curl:/# curl 172.17.22.178:9000
curl: (7) Failed to connect to 172.17.22.178 port 9000: Connection refused
O que estou fazendo de errado? Por que o nginx-svc é inútil?
Meus arquivos YAML usados para este teste: nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
namespace: test
labels:
app: aaa
spec:
containers:
- name: nginx-container
image: nginx:1.16
command: ["/bin/sh","-c"]
args: ["sed -i 's/listen .*/listen 9000;/g' /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'"]
ports:
- containerPort: 9000
name: "http-server"
nginx-service.yaml
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
namespace: test
labels:
app: aaa
spec:
type: ClusterIP
selector:
app: aaa
name: nginx-pod
ports:
- port: 9000
targetPort: 9000