38 votes

kubernetes ne peut pas envoyer un ping à un autre service

La résolution DNS semble correcte, mais je ne peux pas envoyer de ping à mon service. Quelle pourrait en être la raison ?

Depuis un autre pod du cluster :

$ ping backend
PING backend.default.svc.cluster.local (10.233.14.157) 56(84) bytes of data.

^C
--- backend.default.svc.cluster.local ping statistics ---
36 packets transmitted, 0 received, 100% packet loss, time 35816ms

EDIT :

La définition du service :

apiVersion: v1
kind: Service
metadata:
  labels:
    app: backend
  name: backend
spec:
  ports:
  - name: api
    protocol: TCP
    port: 10000
  selector:
    app: backend

Le déploiement :

apiVersion: apps/v1
kind: Deployment
metadata:
  name: backend
  labels:
    app: backend
spec:
  replicas: 1
  selector:
    matchLabels:
      run: backend
  replicas: 1
  template:
    metadata:
      labels:
        run: backend
    spec:
      containers:
      - name: backend
        image: nha/backend:latest
        imagePullPolicy: Always
        ports:
        - name: api
          containerPort: 10000

Je peux curl mon service à partir du même conteneur :

kubectl exec -it backend-7f67c8cbd8-mf894 -- /bin/bash
root@backend-7f67c8cbd8-mf894:/# curl localhost:10000/my-endpoint
{"ok": "true"}

Il semble que le point de terminaison sur le port 10000 n'est pas exposé pour autant :

 kubectl get ep
NAME         ENDPOINTS                                                       AGE
backend      <none>                                                          2h

51voto

Ignacio Millán Points 4200

Le Ping ne fonctionne pas avec les IP de cluster de service comme 10.233.14.157, car il s'agit d'une IP virtuelle. Vous devriez être en mesure d'envoyer un ping à un pod spécifique, mais pas à un service.

14voto

suren Points 1638

Vous ne pouvez pas envoyer un ping à un service. Vous pouvez le curler.

-2voto

nha Points 898

Il s'avère que mon selector était faux, j'ai dû remplacer run: backend con app: backend

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X