kubernetes

Troubleshoot Services

Detect issues

Sometimes, when you start a new installation in Kubernetes you may find that a Service doesn’t respond when you try to access it, although it was created by a pod in a deployment.

First you can check that the Service you are trying to access actually exists, by running the following (replace SVC-NAME with the name of the service you want to access):

$ kubectl get svc SVC-NAME
  • If the Service exists, you should see an output message similar to this:

      NAME           TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)            AGE
      SVC-NAME       LoadBalancer   10.63.245.23    35.242.213.194   5432:32749/TCP     1m
    
  • If the Service doesn’t exist, then you will get an output message similar to this:

      No resources found.
      Error from server (NotFound): services "SVC-NAME" not found
    

Solve issues

To create a Service you can either start the Service with a .yaml file or create it directly from the terminal window.

Start a Service with a .yaml file

Remember to replace in your file the SVC-NAME, PORT, and TARGET-PORT placeholders with the name of the Service, and the ports you want to set for your Service.

apiVersion: v1
kind: Service
metadata:
  labels:
    app: SVC-NAME
  name: SVC-NAME
spec:
  selector:
    app: SVC-NAME
  ports:
  - name: default
    protocol: TCP
    port: PORT
    targetPort: TARGET-PORT

Create a Service using the kubectl CLI

To create a Service, run the following commands:

$ kubectl expose deployment SVC-NAME --port=PORT --target-port=TARGET-PORT

You should get a message similar to this:

service/SVC-NAME exposed
  • Check that the Service was correctly created by running the kubectl get svc command again:

      $ kubectl get svc SVC-NAME
    
Last modification January 24, 2024