Istio 注入原理

网友投稿 555 2022-05-30

Istio通过注入边车使得本身的应用获取了一些高级能力,是如何完成边车的注入的呢?

工作原理: 通过改写yaml文件植入Istio-proxy容器,以及init-container用于修改iptables规则。

配置方法:istioctl kube-inject [app.yaml] -o [inject.yaml] | kubectl apply -f -

工作原理: 通过webhook机制监听apiserver提交的请求从而自动的修改对应的资源对象。

配置方法:kubectl label namespace istio-injection=enabled

通过webhook配置见到如果命名空间如果有对应的标签就会被选中执行自动注入

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

Istio 注入原理

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

此时会发现新增了一个proxy的容器以及init容器。

通过应用注入后的资源定义清单完成注入

kubectl apply -f nginx-deployment-inject.yaml

1

注入前 只有应用的容器

注入后 多出一个容器

注入前 应用只监听自身的套接字

注入后 Nginx 应用 与 Istio-Proxy 共享网络命名空间

Istio

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:简单三步操作实现任意用户连接云服务器中的MYSQL数据库
下一篇:华为云平台通过国标GB28181协议级联EasyGBS视频平台的步骤及注意事项
相关文章