1 介紹
1.1 概念
??Ingress意為進入或進入的行為;進入的權利;進入的手段或地點;入口,
??Ingress支持L7(網路第七層,HTTP/HTTPS)負載均衡,
1.2 Ingress的需求
??每個LoadBalancer服務都需要自己的負載均衡器,以及獨有的公有IP地址,而Ingress只需要一個公網IP就能為許多服務提供訪問,當客戶端向Ingress發送HTTP請求時,Ingress會根據請求的主機名和路徑決定請求轉發到的服務,
1.3 Ingress暴露服務

只有Ingress控制器在集群中運行,Ingress資源才能正常作業,
2 Ingress使用
2.1 創建Ingress資源
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress_name
spec:
rules:
- host: ingress.example.com
http:
paths:
- path: /
backend:
serviceName: service_name
servicePort: 80
$ kubectl create -f xxx.yaml
2.2 查詢
$ kubectl get ingresses

其中,ADDRESS為服務暴露出來的IP地址,
3 Ingress作業原理

1)客戶端首先對ingress.example.com執行DNS查找;
2)DNS服務器(或本地作業系統)回傳Ingress控制器的IP;
3)客戶端向Ingress控制器發送HTTP請求,并在Host頭中指定ingress.example.com;
4)控制器從該頭部確定客戶端嘗試訪問哪個服務,通過與該服務關聯的Endpoint物件查看pod IP;
5)將客戶端的請求轉發給其中一個pod,
4 服務映射方式
4.1 將不同的服務映射到相同主機的不同路徑
...
- host: service_name.example.com
http:
paths:
- path: /service_path1
backend:
serviceName: service_name1
servicePort: 80
- path: /service_path2
backend:
serviceName: service_name2
servicePort: 80
??對service_name.example.com/service_path1的請求轉發到service_name1服務上;service_name.example.com/service_path2的請求轉發到service_name2服務上,
??請求將發送到了兩個不同的服務上,客戶端可以通過一個IP地址訪問兩種不同的服務,
4.2 將不同的服務映射到不同的主機上
...
spec:
rules:
- host: service_name1.example.com
http:
paths:
- path: /
backend:
serviceName: service_name1
servicePort: 80
- host: service_name2.example.com
http:
paths:
- path: /
backend:
serviceName: service_name2
servicePort: 80
??對service_name1.example.com的請求轉發至service_name1服務上;對service_name2.example.com的請求轉發至service_name2服務上;
??根據請求中的Host頭,控制器收到的請求將被轉發到service_name1或service_name2服務,DNS需要將service_name1.example.com和service_name2.example.com域名指向Ingress控制器和IP地址,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/38897.html
標籤:其他
上一篇:求!!!!華為ensp(1.3及以上版本)+virtualBox + USG6000V設備包
下一篇:ssh反向動態代理
