Exercise 11.2: Ingress Controller
helm search hub ingress{ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx helm repo update }helm install ingress-nginx ingress-nginx/ingress-nginx \ --set controller.kind=DaemonSetkubectl get ing -Akubectl get svc,podcat <<EOF | kubectl create -f - apiVersion: apps/v1 kind: Deployment metadata: name: web-one labels: app: web-one spec: selector: matchLabels: app: web-one replicas: 1 template: metadata: labels: app: web-one spec: containers: - image: nginx name: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: web-one spec: type: ClusterIP selector: app: web-one ports: - port: 80 --- apiVersion: apps/v1 kind: Deployment metadata: name: web-two labels: app: web-two spec: selector: matchLabels: app: web-two replicas: 1 template: metadata: labels: app: web-two spec: containers: - image: httpd name: httpd ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: web-two spec: type: ClusterIP selector: app: web-two ports: - port: 80 EOFcat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test spec: ingressClassName: nginx rules: - host: www.external.com http: paths: - backend: service: name: web-one port: number: 80 path: / pathType: ImplementationSpecific EOFkubectl get ingress ingress-testkubectl get pod -l app.kubernetes.io/name=ingress-nginx -o widecurl INGRESS_CONTROLLER_POD_IPcurl $(kubectl get pod -l app.kubernetes.io/name=ingress-nginx -o=jsonpath='{.items[0].status.podIP}')kubectl get svc ingress-nginx-controllercurl INGRESS_CONTROLLER_SERVICE_IPcurl $(kubectl get svc ingress-nginx-controller -o=jsonpath='{.spec.clusterIP}')curl -H "Host: www.external.com" INGRESS_CONTROLLER_SERVICE_IPcurl -H "Host: www.external.com" \ $(kubectl get svc ingress-nginx-controller -o=jsonpath='{.spec.clusterIP}')kubectl get ds ingress-nginx-controller -o yaml \ | linkerd inject --ingress - | kubectl apply -f -cat <<EOF | kubectl apply -f - apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test spec: ingressClassName: nginx rules: - host: www.external.com http: paths: - backend: service: name: web-one port: number: 80 path: / pathType: ImplementationSpecific - host: internal.org http: paths: - backend: service: name: web-two port: number: 80 path: / pathType: ImplementationSpecific EOFcurl -H "Host: internal.org" \ $(kubectl get svc ingress-nginx-controller -o=jsonpath='{.spec.clusterIP}')helm uninstall ingress-nginx{ kubectl delete deployment web-one web-two kubectl delete svc web-one web-two kubectl delete ing ingress-test linkerd viz uninstall | kubectl delete -f - linkerd uninstall | kubectl delete -f - pkill linkerd cd }
Last updated