Istio 注入 Sidecar 的模板在 istio-sidecar-injector ConfigMap 中。通过 annotations 可以对 Sidecar 的各种参数进行自定义配置,比如 CPU 使用、proxyImage 等。下面主要整理的是 Sidecar 的注入方式。
1. 给命名空间添加标签 -> 整个命名空间生效
1
| kubectl label namespace default istio-injection=enabled --overwrite
|
重启应用之后,会自动注入 Sidecar 容器。此时,访问流量将通过 envoy 转发至服务,查看响应头可验证。
1
| kubectl label namespace default istio-injection-
|
2. 给 Pod 添加标签 -> 单个负载生效
1
| kubectl patch deployments blog -p '{"spec":{"template":{"metadata":{"labels":{"sidecar.istio.io/inject":"true"}}}}}' --type merge
|
Pod 会自动重启。
1
| kubectl patch deployments blog -p '{"spec":{"template":{"metadata":{"labels":{"sidecar.istio.io/inject":""}}}}}' --type merge
|
sidecar.istio.io/inject
为 false 含义是拒绝注入,因此这里需要设置为空。
3. istioctl kube-inject 注入 -> 指定的负载生效
1
| istioctl kube-inject -f deployment.yaml -o deployment-injected.yaml
|
或者
1
| kubectl get deployment blog -o yaml | istioctl kube-inject -f -
|
1
| istioctl kube-inject -f deployment.yaml | kubectl apply -f -
|
1
| kubectl get deployment blog -o yaml | istioctl kube-inject -f - | kubectl apply -f -
|