0

I am trying to refresh my K8s knowledge and am following this tutorial, but am running in some problems. My current cluster (minikube) contains one pod called kubia. This pod is alive and well and contains a simple Webserver.

I want to expose that server via a kubectl expose pod kubia --type=LoadBalancer --name kubia-http.

Problem: According to my K8s dashboard, kubia-http gets stuck on startup.

Debugging:

kubectl describe endpoints kubia-http gives me

Name:         kubia-http
Namespace:    default
Labels:       run=kubia
Annotations:  endpoints.kubernetes.io/last-change-trigger-time: 2020-11-20T15:41:29Z
Subsets:
  Addresses:          172.17.0.5
  NotReadyAddresses:  <none>
  Ports:
    Name     Port  Protocol
    ----     ----  --------
    <unset>  8080  TCP

Events:  <none>

When debugging I tried to answer the following questions:

1.) Is my service missing an endpoint?

kubectl get pods --selector=run=kubia gives me one kubia pod. So, I am not missing an endpoint.

2.) Does my service try to access the wrong port when communicating with the pod?

From my pod yaml:

  containers:
    - name: kubia
      ports:
        - containerPort: 8080
          protocol: TCP

From my service yaml:

  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
      nodePort: 32689

The service tries to access the correct port.

What is a good approach to debug this problem?

User12547645
  • 6,955
  • 3
  • 38
  • 69

1 Answers1

2

How does the below command output looks like?

  1. kubectl get services kubia-http
  2. kubectl describe services kubia-http

Does everything looks normal there?

I think you are facing similar issue mentioned in this question. So if kubectl get services kubia-http looks good except the known expected behavior external ip pending on minikube, you should able to access the service using nodeport or clusterip

Syam Sankar
  • 361
  • 1
  • 6