一、自动注入的前提条件
-
自动注入功能需要kubernetes 1.9或更高版本;
-
kubernetes环境需支持MutatingAdmissionWebhook;

二、在namespace中设置自动注入,这样所有在该namespace的创建的pod都会自动注入sidecar代理
以default命名空间为例:
kubectl label namespace default istio-injection=enabled

在default里面创建一个deployment
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: nginx-app
spec:
replicas: 1
template:
metadata:
annotations:
sidecar.istio.io/inject: "true"
labels:
app: nginx-app
spec:
containers:
- name: nginx-app
image: nginx
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
[root@master test-yaml]# kubectl get po NAME READY STATUS RESTARTS AGE nfs-provisioner-6d58b69bf7-k7pq5 1/1 Running 3 10d nginx-app-576db66b4d-6vb8m 2/2 Running 0 11s
以上可知nginx的pod里面有两个容器,一个是nginx本身,另一个就是sidecar代理
kubectl describe po nginx-app-576db66b4d-6vb8m

如果不想让上面的nginx自动注入:只要:
sidecar.istio.io/inject: "true"
来源:https://www.cnblogs.com/boshen-hzb/p/10631789.html