2023低碳技术白皮书-数字技术应用
06-18
通常我们在部署istio时,会配置集群命名空间中的哪些服务需要由istio管理。其实就是需要将哪些pod注入到envoy sidecar中。
如果我们想要命名空间A,A命名空间中的所有pod都注入了sidecar。我们可以配置命名空间自动注入 sidecar,这样 A 命名空间中的所有 pod 都会默认注入 sidecar。
TCM 将 sidecar 注入命名空间的方式与原生还是有一点不同。今天我将讲解如何将TCM的sidecar容器自动注入到tke集群的命名空间中。
原生 istio 通过直接标记命名空间来配置自动注入命名空间。代码语言:javascript copy kubectl label namespace default istio-injection=enabled。
如果需要取消sidecar的自动注入,去掉命名空间和代码语言下的标签:javascript copy kubectl label namespace default istio-injection——但是tcm上配置自动注入的方式有点不同。由于tcm有自己的一些定制,给namespace的标签不一样 1.控制台配置sidecar自动注入 可以在TCM控制台进入service mesh实例,然后选择服务,点击sidecar自动注入,选择对应的命名空间。
2、使用命令配置sidecar自动注入。您需要根据您的 istio 版本来标记命名空间。
现在 tcm 提供了 2 个版本的 istio,1.6.9 和 1.8.1。如果你的 istio 版本是 1.6.9 的话,需要对命名空间进行如下标注,才能完成代码语言的自动注入: javascript copy kubectl label ns xxxx istio.io/rev=1-6-9 如果你的 istio 版本是1.8.1,需要将其命名为Label空间,完成代码语言的自动注入: javascript copy kubectl label ns xxxx istio.io/rev=1-8-1 但是这里有一个问题,那就是,有时命名空间被标记了,但仍然无法注入。
,这是因为我们一开始会下意识地将标签 istio-injection=enabled 注入到命名空间中,然后添加标签 istio.io/rev=1-x-x。这里有一个问题,就是这两个标签同时存在。
有时自动注入不会生效。您需要删除 istio-injection=enabled。
这里你需要注意。 3、自动sidecar注入原理。
为什么 tcm 需要对命名空间进行与原生 isito 不同的标记?这里面的原因是什么呢?其实这里需要对istio中自动注入的原理进行解释和分析。事实上,当应用admissionregistration配置时,这里的自动注入会调用istio webhook。
默认配置将 sidecar 注入到具有 istio.io/rev=1-x-x 标签的命名空间下的所有 pod 中。 istio-sidecar-injector 配置字典指定注入 sidecar 配置。
要更改指定要注入的命名空间,您可以使用以下命令编辑 MutatingWebhookConfiguration 代码: javascript copy [root@VM-0-13-centos kube]# kubectl get mutatingwebhookconfiguration istio-sidecar-injector-1-8-1 | grep istioistio-sidecar-injector-1-8-1 1 31d[root@VM-0-13-centos kube]# kubectl get mutatingwebhookconfiguration istio-sidecar-injector-1-8-1 -o yamlapiVersion:admissionregistration.k8s.io / v1kind:MutatingWebhookConfigurationmetadata:creationTimestamp:“03-19T05:48:20Z”生成:4个标签:app:sidecar-injector install.operator.istio.io/owning-resource:tcm istio.io/rev:1-8-1 Operator .istio.io/component:试点版本:istio 经理:mesh-manager 操作:更新时间:“03-19T05:48:20Z” 经理:pilot-discovery 操作:更新时间:“03-19T05:49:10Z”名称:istio-sidecar-injector-1-8-1 资源版本:“43” 自链接:/apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/istio-sidecar-injector-1-8-1 uid:f4d6f61a-e0c8-bbcfwebhooks:-admissionReviewVersions:-v1beta1-v1 clientConfig:caBundle:LS0tLS1CRVNPVmhKT05EZnhmb2xNWExYUGd3RFFZSktvWklodmNOQVdBMVVURZeQpORFV3 V2hjTk16QXhNakkxTVRZEU5EVXdXakFpTVE0d0RBWURWUVFLRXdWSmMzUnBiekVRTUE0R0ExVUVBeE1IClVtOXZkQ0JEUVRDQ0FpSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnSVBBRENDQWdvQ2dnSUJBTFlscTJrVjJY dE4KMXIwb0VaZkdrRzloYmdlaFhFSzI0MWNDSDhwTkFxZndBdkZBZWFMYVNZTkNZblRsd3lLTXRPSE NqQW81NEQvcApmNytRU21TSFUra3JBOHNRczA4ZWFhR2JaWU5GNFZJeEl1UVlnS1ltM3R4NWx6N1Jz cjBuU3FPRzBLTVUzYlhwClBQZDhSOWMxVXRFZWM0dHVmdFQwRXNSUWtDNnJETVd3RE1NbEFjMGhFTlRtZmtlN1U5c1kwcEdTYllGSTRGejMKa0ZNdFBnM1djUVVnOE5WTFQzdm93YWtpUGFnaHgzVVQ vdTZFT0xrcStQekJMCWt2ZFdMdEJLZFlYelJQd3NhagpuKZTV2YStOUHRQd2xBMGw1c1VtWHluUldHOC9idUt5bDVObTdaZkpZQkI1VURkamE1U0lxZEcyYzEwQ3JaClU5NWpqTUVNaE4rdDNMZlVOOHBK QVU1THlPRk10a1JmanhWcktscEcxeWRtNUVIWmJmbUF2dG9DS05DQkxhdWkKL3RnUmJTSnRDUGlQZHB2amZyUTFnemo0SWdiQ2lkZ1FOalMrcVduai9MRTVBQ0dGK3cxcVdIbXM5bzV4SUV6Tgo5aXBaQ1g4ZTMroDBUSy9vUDlRSjhGc2Uwc0RwR2ljcHDYTW1iYTlhM21KSFpwSjg3NGlEbHN6bVM5bytsMlV1CnNUM0hMT0FGVmJSKzh6bkJOdkxPaTIwZk ZhUm1MeFF0WTQ4eFdBdjJ3V0NtVDhFU1daV2R1MDQxODhDekNJWnoKR0l6SG9PcGN2VlVFTRHBDWW sxOHk3LzUyb2swMkFHdWxPTkZ1WULGUWRmaS95Z1lVbjdScndkNFhWTU94bwo3UmhKanNZWkpjaFp即WxNR2VFVlZ6TjJVT3dIV3B4TkFnTUJBQUdqUWpCQU1BNEdBMVVkRHdFQi93UUVBd0lDCjVEQVBC Z05WSFJNQkFmOECVEFEQVFIL01CMEDBMVVkRGdRV0JCUWV1QzZHL1djaUt4RXFnZktPMjkwcG85Kz EKTWpBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQWdFQUZwU1NpMHZlbzUzQ0lpVEFBcTJRY2JUdk1qN29FMFNvaXRscwpieFE3ZjRpbGdvQnVRUjJGQzBReEZMOVJjc3FsV0Z2bitnYnZWM2ZloEZkNW trdTJSZ3lTYk5wcllLTmpmZVRsCjdxSTJ4Y2ZWNUtWMXdvSnhERDQ1UVdTMVU3VjczajVhcmdvOHBLNF JUEkxIMkxIREVXN2M1YzJJN2d6amlHMUMKenp0ZnJseTh3ZjdhTGZMZjNFOGM0YTBrVXZHMkxJOE5mOEl PSkpiTDE1L0N4ZDk5Ynh6V0JQd01peVNyc2RuYQppSnQyc2E2ck56VUpJRWVVWEgxT0tvSm81dHVBTHBzbFRNT1Y5QXZvWnliSFFXY0hqRXVGUWdnSXcrRUw0VTIxCjVlQ3JzU2l5Kzc3YitFK2x zTEDCaW5VULUyMUJRckVRcDdMeGtVSEtOWnk5dml4Tk0ydDVHb05ur1ZtUWFWcEgKcHgxNlhrUHg4MTRoQlRPb0VHVThvNERKc0xZTHpxcGUxUWFZSi9jQ2ZDckgrOU5rQ1ZFdS81OXQ1a01RNDBHOApWaUJMSTd3VXVFU1phbEhxUHEREGFTanVReVNReUN3OTZ3NjE3WEI 3TlRxdTM4Vml6SnNCb1RBZ2xvU0xESVYzCm13V2V2RjMzZ1l0bGRSZXZQSEpRTlNxeVlWcklW BMRsUnpMVURtZkF2dmpNdERuUi9UTmdHWUTZc0o1TjRSRUCKZU5TT1JOWERhWDNoZzZXWlpyQ lyysmsxenE0eUgreVdTd3RrMUNOK0JMYzBMdGRCcGdic2xibWhJaDdPakpyRApxL0R1Z09IRWJwSnNJRXoyenFKempTOUV2MXJGbmxPcFFyL1NCdTlmTTZzeDZJb3M1cUwyc1RZTVY0V3lQTW1OClRPTFoxRGM9Ci0t LS0tRU5EIENFUlRJRklDQVRFLS0tLS0K 服务:名称:istiod-1-8-1 命名空间:istio-system 路径:/inject 端口:failurePolicy:失败 matchPolicy:确切名称:sidecar-injector.istio.io namespaceSelector:matchExpressions: - key:istio-injection 运算符: doesNotExist - key: istio.io/rev 操作符:In 值: - 1-8-1 objectSelector: {} revokingPolicy: Never 规则: - apiGroups: - "" apiVersions: - v1 操作: - CREATE resources: - pods range: '*' sideEffects: None timeoutSeconds: 30 从上面的 webhook 配置 yaml 中,我们可以看到为什么 tcm 上自动注入的标签与原生的不同。其实是由于namespaceSelector字段配置导致的,tcm的webhook需要匹配namespace的标签必须是istio.io/rev:1-8-1才能被webhook拦截。
通过指定namespaceSelector,Webhook可以根据具有命名空间的资源所在的命名空间的标签来选择拦截哪些资源操作。 。
namespaceSelector 根据命名空间标签是否与选择器匹配,确定是否对命名空间资源(或命名空间对象)的请求运行 Webhook。如果对象是命名空间以外的集群范围资源,则namespaceSelector 标记无效。
所以这里需要标记命名空间 istio.io/rev:1-8-1 来实现自动注入。 4. 将 sidecar 单独注入 pod 中。
如果我们标记命名空间,那么该命名空间中的所有 pod 都会自动注入 sidecar。不过,有时候我们希望命名空间中的某些 pod 不被 istio 管理,那么我们可以在单独的工作负载配置下,在 spec.template.metadata.annotations 中添加这个配置 sidecar.istio.io/inject:"false"场地。
如果要注入sidecar,可以将false改为true。这里我们进行了一个测试,pod默认注入到sidecar中。
现在我们取消 sidecar 注入。我们修改yaml文件,添加这个字段,设置为false,然后应用yaml文件。
Pod启动成功后,我们查看日志,发现只有一个容器。日志中,sidecar 已被删除。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-08
06-18
06-08
06-17
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用