Try   HackMD

[k8s] ingress controller

tags: kubernetes ingress
  • evaluate all rules
  • manages redirections
  • entrypoint to cluster
  • many third-party implementations

In order for the Ingress resource to work, the cluster must have an ingress controller running.

  • Controller 就只是個管理眾多 Ingress resource 的集大成而已,真正做事情還是要依靠 Ingress resource 去做 Service 的串接
  • 目前支援的有GCP HTTP(s) Load Balancer (GCE)、nginx、Contour、haproxy、traefik、istio

architecture

  • Ingress-Server 普遍上來說,就是一個能夠接受 HTTP/HTTPS 連線的網路伺服器
  • Ingress-Controller 是一種轉換者,能夠將 Ingress Resource 的設定轉換成 Ingress-Server (Nginx) 所能夠處理的格式
    1. 使用者透過 yaml 部署 ingress 設定到 kubernetes 裡面
    2. Ingress-Controller 偵測到 Ingress Resource 的更動,讀取該設定後產生對應的 Nginx.conf 供 Ingress-Server 使用
    3. 外部使用者嘗試存取服務,該封包會先到達 Ingress-Server(Nginx)
    4. Ingrss-Server(Nginx) 根據 nginx.conf 的設定決定將該封包轉發到後段的服務器 backend server.

how to install

use helm

helm install stable/nginx-ingress \ --name nginx-ingress \ --set rbac.create=true \ --namespace=kube-system

resource