Ingress
介紹
- Ingress 為外部訪問集群提供了一個 統一 入口,避免了對外暴露集群端口;
- 功能類似 Nginx,可以根據域名、路徑把請求轉發到不同的 Service。
- 可以配置 https
跟 LoadBalancer 有什么區別?
- `LoadBalancer`` 需要對外暴露端口,不安全;
- 無法根據域名、路徑轉發流量到不同 Service,多個 Service 則需要開多個 LoadBalancer;
- 功能單一,無法配置 https
Ingress 規則圖
使用
- 要使用 Ingress,需要一個負載均衡器 + Ingress Controller
如果是裸機(bare metal) 搭建的集群,你需要自己安裝一個負載均衡插件,可以安裝 METALLB
如果是云服務商,會自動給你配置,否則你的外部 IP 會是 “pending” 狀態,無法使用。
文檔
https://kubernetes.io/zh/docs/concepts/services-networking/ingress/
-
Minikube
中部署Ingress Controller
:nginx
https://kubernetes.io/zh/docs/tasks/access-application-cluster/ingress-minikube/ -
Helm
安裝: Nginx
https://kubernetes.github.io/ingress-nginx/deploy/#quick-start
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: simple-example
spec:ingressClassName: nginxrules:- host: tools.funhttp:paths:- path: /easydocpathType: Prefixbackend:service:name: service1port:number: 4200- path: /svnbucketpathType: Prefixbackend:service:name: service2port:number: 8080