-1

I'm learning about Kubernetes and ingress controllers but I'm stucked getting this error when I try to apply kong ingress manifest...

ingress-kong-7dd57556c5-bh687   0/2     Init:0/1   0          29s
kong-migrations-gzlqj           0/1     Init:0/1   0          28s
postgres-0                      0/1     Pending    0          28s

Is it possible to run this ingress on my home server without minikube ? If so, how?

Note: I have a FQDN pointing to my home server.

  • Mate, what you are saying makes no sense. And actually you have taken the screenshots before even the init containers have completed, to at least see what's the status of your main containers. What you have there is an unscheduled pod, that can be due to many factors. You need to provide more info. `kubectl describe`, `kubectl logs`, etc. – suren Oct 07 '19 at 13:38

1 Answers1

4

I guess you run manifest from Github

Issues with Pods

I have reproduced your case. As you have 3 pods, you have used option with DB. If you will describe pods using $ kubectl describe pod <podname> -n kong you will receive error output:

Events:
  Type     Reason            Age               From               Message
  ----     ------            ----              ----               -------
  Warning  FailedScheduling  7s (x4 over 17s)  default-scheduler  pod has unbound immediate PersistentVolumeClaims (repeated 2 times)

You can also check job in kong namespace. It is work correctly on fresh Minikube cluster, so I guess you might apply same changes to storageclass.

Is it possible to run this ingress on my home server without minikube ? If so, how?

You have to use Kubernetes to do it. Since Minikube is supporting LoadBalancer you can can use it in Home. You can check this thread about FQDN. As mentioned:

The host machine should be able to resolve the name of that FQDN. You might add a record into the /etc/hosts at the Mac host to achieve that: 10.0.0.2 mydb.mytestdomain

But in your case it should be IP address of LoadBalancer, kong-proxy.

Obtain LoadBalancer IP in Minikube

If you will deploy everything correctly you can check your services. $ kubectl get svc -n kong You will see kong-proxy service with LoadBalancer type wit <pending> EXTERNAL-IP. To obtain ExternalIP you have to use minikbue tunnel.

Please note that you need have $ sudo minikube tunnel run in one console whole time.

Before Minikube tunnel

$ kubectl get svc -n kong
NAME                      TYPE           CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
kong-proxy                LoadBalancer   10.110.218.74    <pending>     80:31881/TCP,443:31319/TCP   103m
kong-validation-webhook   ClusterIP      10.108.204.137   <none>        443/TCP                      103m
postgres                  ClusterIP      10.105.9.54      <none>        5432/TCP                     103m

After

$ kubectl get svc -n kong
NAME                      TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
kong-proxy                LoadBalancer   10.110.218.74    10.110.218.74   80:31881/TCP,443:31319/TCP   104m
kong-validation-webhook   ClusterIP      10.108.204.137   <none>          443/TCP                      104m
postgres                  ClusterIP      10.105.9.54      <none>          5432/TCP                     104m

Testing Kong

Here you can find how to get start with Kong. It will show you how to create Ingress. Later as I mentioned you have to edit ingress and add rule (host) similar like in K8s docs.

PjoterS
  • 12,841
  • 1
  • 22
  • 54