Istio 注入原理
Istio通過注入邊車使得本身的應(yīng)用獲取了一些高級能力,是如何完成邊車的注入的呢?
工作原理: 通過改寫yaml文件植入Istio-proxy容器,以及init-container用于修改iptables規(guī)則。
配置方法:istioctl kube-inject [app.yaml] -o [inject.yaml] | kubectl apply -f -
工作原理: 通過webhook機制監(jiān)聽apiserver提交的請求從而自動的修改對應(yīng)的資源對象。
配置方法:kubectl label namespace
通過webhook配置見到如果命名空間如果有對應(yīng)的標(biāo)簽就會被選中執(zhí)行自動注入
kubectl get mutatingwebhookconfiguration istio-sidecar-injector -o yaml
原始的資源定義清單
apiVersion: v1 kind: Namespace metadata: name: demo --- apiVersion: apps/v1 kind: Deployment metadata: labels: app: nginx-deployment name: nginx-deployment namespace: demo spec: replicas: 2 selector: matchLabels: app: nginx-deployment strategy: rollingUpdate: maxSurge: 25% maxUnavailable: 25% type: RollingUpdate template: metadata: labels: app: nginx-deployment spec: containers: - image: 'nginx:latest' name: nginx-deployment
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
運行手動注入命令生成新的資源定義清單
istioctl kube-inject -f nginx-deployment.yaml -o nginx-deployment-inject.yaml
1
此時會發(fā)現(xiàn)新增了一個proxy的容器以及init容器。
通過應(yīng)用注入后的資源定義清單完成注入
kubectl apply -f nginx-deployment-inject.yaml
1
注入前 只有應(yīng)用的容器
注入后 多出一個容器
注入前 應(yīng)用只監(jiān)聽自身的套接字
注入后 Nginx 應(yīng)用 與 Istio-Proxy 共享網(wǎng)絡(luò)命名空間
Istio
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。