idou老師教你學Istio 09: 如何用Istio實現K8S Ingress流量管理
應用上雲,怎能沒有容器!點擊上方
容器魔方
關注我前言
在
Istio
的世界裡,如果想把外部的請求流量引入網格,你需要認識並會學會配置
Istio Ingress Gateway
什麼是Ingress Gateway
由於
Kubernetes Ingress API
只能支持最基本的
HTTP
路由,使用
Kubernetes Ingress
資源來配置外部流量的方式不能滿足需求。因此
Istio v1alpha3 routing API
引入新的
Istio Ingress Gateway
取代
Kubernetes Ingress。
Gateway為HTTP/TCP流量配置了一個負載均衡,用於承載網格邊緣的進入和發出連接。在同一個網格中可以有多個不同的gateway存在。這一規範中描述了一系列開放埠,以及這些埠所使用的協議、負載均衡的 SNI 配置等內容。用戶可以利用標準的Istio 路由規則控制HTTP和TCP請求進入網格。
從下圖可以看到
Istio gateway
在整個網格中的使用情況:
如何配置Gateway控制Ingress流量
如果你已經安裝好了bookinfo的應用,為了能在外部訪問bookinfo中的productpage服務,只需要配置Gateway和相關的VirtualService。
用一個簡單的gateway配置一個負載均衡使訪問bookinfo.com的外部http流量能夠進入網格:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- bookinfo.com
port:
number: 80
name: http
protocol: HTTP
為了配置相應的路由,需要為相同的host定義一個VirtualService 並且用配置中gateways的欄位綁定到剛才創建的Gateway:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: bookinfo
spec:
hosts:
- bookinfo.com
gateways:
- bookinfo-gateway # <---- 綁定gateway
- mesh # <----對內部通信進行流量控制
http:
- match:
- uri:
exact: /productpage
route:
- destination:
host: productpage
port:
number: 9080
這樣就達到了在外網開放productpage服務的目的。
如何用HTTPS加密Gateway?
我們也可以為服務啟用TLS保護,以HTTPS的形式對網格外提供服務。
首先需要使用工具生成客戶端和伺服器端的證書和密鑰。然後使用密鑰和證書作為輸入,創建一個Secret。
$ kubectl create -n istio-system secret tls istio-ingressgateway-certs --key key.pem --cert cert.pem
接下來修改Gateway對象,為Ingress gateway開放一個443埠,用於提供HTTPS服務:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: bookinfo-gateway
spec:
selector:
istio: ingressgateway
servers:
- hosts:
- bookinfo.com
port:
number: 80
name: http
protocol: HTTP
- hosts:
- "*"
port:
number: 443
name: https
protocol: HTTPS
tls:
mode: SIMPLE
serverCertificate: /etc/istio/ingressgateway-certs/tls.crt
privateKey: /etc/istio/ingressgateway-certs/tls.key
這樣簡單的配置就可以通過HTTPS協議訪問bookinfo.com了。
推薦閱讀
idou老師教你學Istio 08: 調用鏈埋點是否真的「零修改」?
idou老師教你學Istio 07: 如何用istio實現請求超時管理
idou老師教你學Istio06: 如何用istio實現流量遷移
CKA第二課材料下載請點擊公眾號菜單欄:
CKA培訓—>往期
推薦閱讀: