其他分享
首页 > 其他分享> > Istio 自动注入 sidecar 不成功及k8s安装istio后pod无法创建解决方案

Istio 自动注入 sidecar 不成功及k8s安装istio后pod无法创建解决方案

作者:互联网

环境

Istio v1.2.5 Helm 安装

问题

安装完后,做官方 bookinfo 实验 kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml 出现 sidecar 自动注入不成功。

解决方法

安装 Istio 时,配置了 enableNamespacesByDefault: false

sidecarInjectorWebhook:
  enabled: true
  # 变量为true,就会为所有命名空间开启自动注入功能。如果赋值为false,则只有标签为istio-injection的命名空间才会开启自动注入功能
  enableNamespacesByDefault: false
  rewriteAppHTTPProbe: false
解决方法:
# 设置标签
$ kubectl label namespace default istio-injection=enabled

# 查看
$ kubectl get namespace -L istio-injection

NAME                   STATUS   AGE    ISTIO-INJECTION
default                Active   374d   enabled

安装 Istio 时,设置 autoInject: disabled

proxy:
  includeIPRanges: 192.168.16.0/20,192.168.32.0/20
  # 是否开启自动注入功能,取值enabled则该pods只要没有被注解为sidecar.istio.io/inject: "false",就会自动注入。如果取值为disabled,则需要为pod设置注解sidecar.istio.io/inject: "true"才会进行注入
  autoInject: disabled
kube-apiserver --enable-admission-plugins` 没有配置 `MutatingAdmissionWebhook,ValidatingAdmissionWebhook
解决方法:
$ vim kube-apiserver

--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorag
k8s安装istio后pod无法创建

报错:istio-sidecar-injector.istio-system.svc:443 Client.Timeout

# 设置标签
kubectl label namespace default istio-injection=disabled
kubectl label namespace dmgeo istio-injection=disabled
kubectl label namespace dmgeo-lib istio-injection=disabled
kubectl label namespace dmgeo-ync-branch istio-injection=disabled
kubectl label namespace dmgeo-ync-trunk istio-injection=disabled
kubectl label namespace kuboard istio-injection=disabled
kubectl label namespace kube-public istio-injection=disabled
kubectl label namespace kube-public istio-injection=disabled


# 查看标签
kubectl get namespace -L istio-injection

参考链接

 

标签:kubectl,namespace,istio,Istio,disabled,pod,label,injection
来源: https://blog.51cto.com/u_7692005/2967950