Istio实现sidecar自动注入
Istio实现sidecar自动注入
Sidecar模式
在Sidecar部署方式中,你会为每个应用的容器部署一个伴生容器。对于Service Mesh,Sidecar接管进出应用程序容器的所有网络流量。
Sidecar有利于工作审计,特别是在一些与安全相关的方面。
原理解析
- 原理图
自动注入是通过 kube-apiserver 准入控制实现的。简单来说,istio-sidecar-injector 服务提供一个 webservice 用于提供自动注入服务(该服务使用 istio-sidecar-injector ConfigMap 作为注入配置),而定义在何种情况下 kube-apiserver 需要向 istio-sidecar-injector 服务发送请求进行注入的是 istio-sidecar-injector MutatingAdmissionWebhook。
查看配置
- 查看现有(默认)istio-sidecar-injector的MutatingAdmissionWebhook配置
kubectl describe mutatingwebhookconfiguration istio-sidecar-injector
默认配置只包含istio-injection=enabled标签的命名空间内的pod在创建时才能调用istio-sidecar-injector服务完成自动注入。
单个命名空间设置自动注入
- 指定demo命名空间设置自动注入
kubectl label namespace demo istio-injection=enabled
- 注入结果查看
kubectl get namespace -L istio-injection
所有命名空间设置自动注入
- 修改配置
kubectl edit mutatingwebhookconfiguration istio-sidecar-injector
修改namespaceSelector配置,如果某个命名空间不想自动注入,则加上istio-injection=disabled标签即可。
测试自动注入
- 创建一个简单的deployment
- vim nginx.yaml
--- apiVersion: apps/v1 kind: Deployment metadata: annotations: deployment.kubernetes.io/revision: '1' k8s.kuboard.cn/displayName: nginx k8s.kuboard.cn/workload: nginx generation: 1 labels: k8s.kuboard.cn/layer: '' k8s.kuboard.cn/name: nginx name: nginx namespace: demo spec: progressDeadlineSeconds: 600 replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: k8s.kuboard.cn/layer: '' k8s.kuboard.cn/name: nginx template: metadata: labels: k8s.kuboard.cn/layer: '' k8s.kuboard.cn/name: nginx spec: containers: - image: nginx:1.19.10-alpine imagePullPolicy: IfNotPresent name: nginx
- 创建pod
kubectl apply -f nginx.yaml
一个pod生成了两个容器,一个为nginx本身容器,另一个就是Sidecar代理容器。
- 查看pod详情
kubectl describe po nginx-5bbcd878cf-q2l5s -n demo
- 也可以在kuboard中查看到
自动注入配置成功
本文来自博客园,作者:xiao智,转载请注明原文链接:https://www.cnblogs.com/yuwen01/p/16885568.html
标签:
Istio实现sidecar自动注入
, Istio
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具