The Problem: Ingress don't show the website
I have my own cluster on Proxomox with 1 Master and 3 worker Nodes
root@sedeka78:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
sedeka78 Ready master,worker 4d21h v1.18.5
sedeka79 Ready worker 4d21h v1.18.5
sedeka80 Ready worker 4d21h v1.18.5
sedeka81 Ready worker 4d21h v1.18.5
The DNS is forwarding kube1.ktc.local and kube2.ktc.local to the IP Adress 10.10.10.78
root@sedeka78:~# ping kube1.ktc.local
PING sedeka78.ktc.local (10.10.10.78) 56(84) bytes of data.
64 bytes from sedeka78.ktc.local (10.10.10.78): icmp_seq=1 ttl=64 time=0.070 ms
and
root@sedeka78:~# ping kube2.ktc.local
PING sedeka78.ktc.local (10.10.10.78) 56(84) bytes of data.
64 bytes from sedeka78.ktc.local (10.10.10.78): icmp_seq=1 ttl=64 time=0.030 ms
I worked straight (i changed some ports) after this tutorial https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-on-digitalocean-kubernetes-using-helm.
The Pods
root@sedeka78:~# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
hello-kubernetes-first-5f4cb78558-q8zl5 1/1 Running 0 22h 10.244.251.6 sedeka81 <none> <none>
hello-kubernetes-first-5f4cb78558-vwthq 1/1 Running 0 22h 10.244.101.133 sedeka79 <none> <none>
hello-kubernetes-first-5f4cb78558-xkxh4 1/1 Running 0 22h 10.244.253.6 sedeka80 <none> <none>
hello-kubernetes-second-756f6664b-b5rg5 1/1 Running 0 13h 10.244.253.8 sedeka80 <none> <none>
hello-kubernetes-second-756f6664b-kpjg5 1/1 Running 0 13h 10.244.101.135 sedeka79 <none> <none>
hello-kubernetes-second-756f6664b-tst5p 1/1 Running 0 13h 10.244.251.8 sedeka81 <none> <none>
Deployment of POD kubernetes-first (the second is closely the same)
root@sedeka78:~# cat /srv/01-hello-kubernetes-first.yaml
apiVersion: v1
kind: Service
metadata:
name: hello-kubernetes-first
spec:
type: ClusterIP
ports:
- port: 8090 # Changed
targetPort: 8080 # Changed
selector:
app: hello-kubernetes-first
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-kubernetes-first
spec:
replicas: 3
selector:
matchLabels:
app: hello-kubernetes-first
template:
metadata:
labels:
app: hello-kubernetes-first
spec:
containers:
- name: hello-kubernetes
image: paulbouwer/hello-kubernetes:1.7
ports:
- containerPort: 8090 # Changed
env:
- name: MESSAGE
value: Hello from the first deployment!
root@sedeka78:~#
The Services
root@sedeka78:~# kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-kubernetes-first ClusterIP 10.107.187.54 <none> 8090/TCP 22h
hello-kubernetes-second ClusterIP 10.109.164.92 <none> 8090/TCP 13h
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d21h
The Ingress
root@sedeka78:~# kubectl get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
hello-kubernetes-ingress <none> kube1.ktc.local,kube2.ktc.local 80 16s
Describe Ingress
root@sedeka78:~# kubectl describe ingress
Name: hello-kubernetes-ingress
Namespace: default
Address:
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
kube1.ktc.local
hello-kubernetes-first:8080 (10.244.101.133:8080,10.244.251.6:8080,10.244.253.6:8080)
kube2.ktc.local
hello-kubernetes-second:8080 (10.244.101.135:8080,10.244.251.8:8080,10.244.253.8:8080)
Annotations: kubernetes.io/ingress.class: nginx
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CREATE 76s nginx-ingress-controller Ingress default/hello-kubernetes-ingress
The Ingress Ressource
root@sedeka78:~# cat /srv/03-hello-kubernetes-ingress-ressouce.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: hello-kubernetes-ingress
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: kube1.ktc.local
http:
paths:
- backend:
serviceName: hello-kubernetes-first
servicePort: 8080
- host: kube2.ktc.local
http:
paths:
- backend:
serviceName: hello-kubernetes-second
servicePort: 8080
root@sedeka78:~#
after installing ingress with
helm install nginx-ingress stable/nginx-ingress --set controller.publishService.enabled=true -n nginx-ingress
the Ingress didn't get an external IP the status was
root@sedeka78:~# kubectl get svc --all-namespaces
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default hello-kubernetes-first ClusterIP 10.107.187.54 <none> 8090/TCP 23h
default hello-kubernetes-second ClusterIP 10.109.164.92 <none> 8090/TCP 14h
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d22h
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 4d22h
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.98.225.46 <none> 8000/TCP 4d22h
kubernetes-dashboard kubernetes-dashboard ClusterIP 10.101.166.61 <none> 443/TCP 4d22h
nginx-ingress nginx-ingress-controller LoadBalancer 10.96.53.198 <pending> 80:30979/TCP,443:32433/TCP 14m
nginx-ingress nginx-ingress-default-backend ClusterIP 10.107.251.104 <none> 80/TCP 14m
describe service
root@sedeka78:~# kubectl describe service -n nginx-ingress nginx-ingress
Name: nginx-ingress-controller
Namespace: nginx-ingress
Labels: app=nginx-ingress
app.kubernetes.io/managed-by=Helm
chart=nginx-ingress-1.40.3
component=controller
heritage=Helm
release=nginx-ingress
Annotations: meta.helm.sh/release-name: nginx-ingress
meta.helm.sh/release-namespace: nginx-ingress
Selector: app.kubernetes.io/component=controller,app=nginx-ingress,release=nginx-ingress
Type: LoadBalancer
IP: 10.103.119.0
Port: http 80/TCP
TargetPort: http/TCP
NodePort: http 30388/TCP
Endpoints: 10.244.101.138:80
Port: https 443/TCP
TargetPort: https/TCP
NodePort: https 30236/TCP
Endpoints: 10.244.101.138:443
Session Affinity: None
External Traffic Policy: Cluster
Events: <none>
Name: nginx-ingress-default-backend
Namespace: nginx-ingress
Labels: app=nginx-ingress
app.kubernetes.io/managed-by=Helm
chart=nginx-ingress-1.40.3
component=default-backend
heritage=Helm
release=nginx-ingress
Annotations: meta.helm.sh/release-name: nginx-ingress
meta.helm.sh/release-namespace: nginx-ingress
Selector: app.kubernetes.io/component=default-backend,app=nginx-ingress,release=nginx-ingress
Type: ClusterIP
IP: 10.106.6.221
Port: http 80/TCP
TargetPort: http/TCP
Endpoints: 10.244.253.9:8080
Session Affinity: None
Events: <none>
Why I dont get a external IP ?
All Nodes are VM on proxmox runing debian buster
Thank you Peter