Istio Polit-agent & Envoy 啟動流程
阿新 • • 發佈:2020-05-27
## 開篇
通過上一篇 [Istio Sidecar注入原理](https://www.cnblogs.com/haoyunlaile/p/12960441.html) 文章可以發現,在應用提交到kubernate部署時已經同時注入了Sidecar應用。
細心的話應該還可以發現,除了注入了`istio-proxy`應用外,另外還有注入一個`istio-init`的 `Init Containers`。接下來一起來看看在這兩個注入的容器中分別都有做一些什麼操作。
## istio-init
`istio-init` [init 容器]( https://kubernetes.io/zh/docs/concepts/workloads/pods/init-containers/)用於設定 iptables 規則,以便將入站/出站流量通過 sidecar 代理。初始化容器與應用程式容器在以下方面有所不同:
- 它在啟動應用容器之前執行,並一直執行直至完成。
- 如果有多個初始化容器,則每個容器都應在啟動下一個容器之前成功完成
我們可以看下sleep對應的pod
```
kubectl describe pod sleep-54f94cbff5-jmwtf
Name: sleep-54f94cbff5-jmwtf
Namespace: default
Priority: 0
Node: minikube/172.17.0.3
Start Time: Wed, 27 May 2020 12:14:08 +0800
Labels: app=sleep
istio.io/rev=
pod-template-hash=54f94cbff5
security.istio.io/tlsMode=istio
Annotations: sidecar.istio.io/interceptionMode: REDIRECT
sidecar.istio.io/status:
{"version":"d36ff46d2def0caba37f639f09514b17c4e80078f749a46aae84439790d2b560","initContainers":["istio-init"],"containers":["istio-proxy"]...
traffic.sidecar.istio.io/excludeInboundPorts: 15020
traffic.sidecar.istio.io/includeOutboundIPRanges: *
Status: Running
IP: 172.18.0.11
IPs:
IP: 172.18.0.11
Controlled By: ReplicaSet/sleep-54f94cbff5
Init Containers:
istio-init:
Container ID: docker://f5c88555b666c18e5aa343b3f452355f96d66dc4268fa306f93432e0f98c3950
Image: docker.io/istio/proxyv2:1.6.0
Image ID: docker-pullable://istio/proxyv2@sha256:821cc14ad9a29a2cafb9e351d42096455c868f3e628376f1d0e1763c3ce72ca6
Port: