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中查看到
自动注入配置成功
Istio实现sidecar自动注入的更多相关文章
- 1.深入Istio:Sidecar自动注入如何实现的?
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 本文使用的Istio源码是 release 1.5. 这篇文章打算讲一下sidecar, ...
- istio sidecar自动注入过程分析
目录 istio sidecar自动注入过程分析 sidecar自动注入检查 检查kube-apiserver 检查sidecar-injector的configmap 检查namespace标签 s ...
- Kubernetes-Istio之Sidecar自动注入
前提: (官方提供) 1):确认使用的是Kubernetes服务器的受支持版本( 1.13.1.14.1.15):kubectl (官方提供,应该是1.13版本以上,我的是1.16版本) kubect ...
- istio实现自动sidecar自动注入(k8s1.13.3+istio1.1.1)
一.自动注入的前提条件 自动注入功能需要kubernetes 1.9或更高版本: kubernetes环境需支持MutatingAdmissionWebhook: 二.在namespace中设置自动注 ...
- Istio技术与实践03:最佳实践之sidecar自动注入
Istio通过对serviceMesh中的每个pod注入sidecar,来实现无侵入式的服务治理能力.其中,sidecar的注入是其能力实现的重要一环(本文主要介绍在kubernetes集群中的注入方 ...
- istio部署-sidecar注入
参考 fleeto/sleep fleeto/flaskapp 1. Sidecar注入 1.1 对工作负载的一些要求 支持的工作负载类型:Job,DaemonSet,ReplicaSet,Pod,D ...
- istio的sidecar原理学习
目的 从内嵌到应用的SDK模式转成istio servicemesh,再到最新提出来的proxyless可谓是发展太快了.刚开始我只是围绕着服务注册和发现是怎么转变来展开研究,但是发现这个话题有点大, ...
- 自己实现简单的AOP(五)使Demo适应webApi、亦可完成属性自动注入
在前文的Demo中,webApi的Controller是不能自动注入的,原因是 IHttpController 和 IController 是通过两个不同的途径进行激活的. IHttpControll ...
- ASP.NET MVC Autofac自动注入
依赖注入容器有很多插件,我用过Unity和Autofac,这两个插件给我最明显的感觉就是Autofac很快,非常的快,毕竟是第三方开发的,而Unity相对而言性能比较稳定 下面附上Autofac自动注 ...
- Autofac手动注入及自动注入示例
参考:http://www.cnblogs.com/xinchuang/archive/2013/05/07/3065433.html#2911661 一.环境 vs2012.mvc4..Net Fr ...
随机推荐
- Java-Session服务器端会话技术
Session 概念:服务器端会话技术,在一次对话的多次请求间共享数据,将数据保存在服务器端的对象中.HttpSession 快速入门: 获取Session对象 * HttpSession sessi ...
- C#事件总结(二)
续接上一篇文<C#事件总结>,那是通过一个结合例子的文字描述,接下来我将通过图文形式展现. 现在VS开发环境中看看事件是什么样子的: 再来看看我的笔记,希望对你的理解有帮助. 哦,顺便提醒 ...
- redis基本数据结构-列表
redis基本数据结构-列表list 特性 每个列表键最多存储 2^32 - 1个字符串元素 元素在列表中有序 元素在列表中不唯一 向列表左侧添加元素 lpush key value lpush nu ...
- C# Winform与JS交互
一.C#调用JS函数 1.JS代码 < script language = "javascript" > function Hello(msg) { alert('我是 ...
- 整数-笔记C
实际情况也确实如此,C语言并没有严格规定 short.int.long 的长度,只做了宽泛的限制: short 至少占用 2 个字节. int 建议为一个机器字长.32 位环境下机器字长为 4 字节, ...
- vue项目 回到顶部功能 定位在头部
'backBox'是外层容器类名, 根据传入的index,定位在不同的位置 组件: <template> <div class="toTop" @click=&q ...
- python_xecel
移动并重命名工作簿 1 from pathlib import Path # 导入pathlib模块的path类 2 import time 3 4 # Press the green button ...
- adb对安卓app进行抓包(ip连接设备)
adb对安卓app进行抓包(ip连接设备) 一,首先将安卓设备的开发者模式打开,提示允许adb调试 二,自己的笔记本要和安卓设备在同一个网段下(同连一个WiFi就可以了) 三,在笔记本上根据ip来连接 ...
- 【郝斌C ST】 指针入门
#include <stdio.h> int main() { printf("Hello, World!\n"); int i = 3; int * p = & ...
- Human-centric Computing and Information Sciences期刊基本信息
letpub 地址: https://www.letpub.com.cn/index.php?page=journalapp&view=detail&journalid=10450&a ...