Please enable Javascript to view the contents

Istio 注入 Sidecar 的几种方式

 ·  ☕ 1 分钟

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 注入 -> 指定的负载生效

  • dry-run 仅查看
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 -

微信公众号
作者
微信公众号