简体   繁体   中英

accessing service form another pod Kubernetes

I have two services running in my k8s.
I am trying to access my wallet service from my user service but my curl cmd just returns 504 gateway timeout.

here is my ingress

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dev-ingress
  namespace: dev
  annotations:
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
    # nginx.ingress.kubernetes.io/use-regex: "true"
    # nginx.ingress.kubernetes.io/rewrite-target: /api/v1$uri
spec:
  ingressClassName: nginx
  rules:
  - http:
      paths:
      - path: /api/v1/wallet
        pathType: Prefix
        backend:
          service:
            name: wallet-service
            port:
              number: 80
      - path: /api/v1/user
        pathType: Prefix
        backend:
          service:
            name: accounts-service
            port:
              number: 80

this is the way I passed the env in my account service.

http://wallet-service:3007

and I log the URL when hitting my endpoint

curl http://EXTERNAL_IP/api/v1/user/health/wallet

every other non-related endpoint works.

Any help is appreciated

I am running Azure Kubernetes

I have two services running in my k8s.

  1. Do you have an actual K8S service?

     apiVerison: ... kind: Service
    • Check it with kubectl get svc -A and you should see your services there
  2. Check to see that your pods are exposed to the services

    kubectl get endpoints -A
  3. Are you running on a cloud provider (GCP, Azure, AWS, etc), if so check your security configuration as well (NSG for Azure, a security policy for AWS, etc)

  4. Check inner communication :

     # Log into one of the pods kubectl exec -n <namespace> <pod name> sh # Try to connect to the other service with the FQDN curl -sv <servicename>.<namespace>.svc.cluster.local

Update:

  • You commented that you are running on Azure, check the desired ports are opened under the NSG.
  • Assuming that you are running AKS you need to find out the MS_xxxx resource and your NSG group will be located under this resource group, edit it and open the desired ports

You are trying to connect to http://wallet-service:3007/api/v1/wallet/health - Where did you get the 3007 port?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM