日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/1/21 编程问答 65 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Istio 自动注入 sidecar 不成功及k8s安装istio后pod无法创建解决方案 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

環(huán)境

  • Kubernetes v1.15.6 源碼安裝
  • Istio v1.2.5 Helm 安裝

Istio v1.2.5 Helm 安裝

  • Istio Helm安裝

問(wèn)題

安裝完后,做官方 bookinfo 實(shí)驗(yàn) kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml 出現(xiàn) sidecar 自動(dòng)注入不成功。

解決方法

  • 第一種可能:

安裝 Istio 時(shí),配置了 enableNamespacesByDefault: false

sidecarInjectorWebhook:enabled: true# 變量為true,就會(huì)為所有命名空間開(kāi)啟自動(dòng)注入功能。如果賦值為false,則只有標(biāo)簽為istio-injection的命名空間才會(huì)開(kāi)啟自動(dòng)注入功能enableNamespacesByDefault: falserewriteAppHTTPProbe: false 解決方法: # 設(shè)置標(biāo)簽 $ kubectl label namespace default istio-injection=enabled# 查看 $ kubectl get namespace -L istio-injectionNAME STATUS AGE ISTIO-INJECTION default Active 374d enabled
  • 第二種可能:

安裝 Istio 時(shí),設(shè)置 autoInject: disabled

proxy:includeIPRanges: 192.168.16.0/20,192.168.32.0/20# 是否開(kāi)啟自動(dòng)注入功能,取值enabled則該pods只要沒(méi)有被注解為sidecar.istio.io/inject: "false",就會(huì)自動(dòng)注入。如果取值為disabled,則需要為pod設(shè)置注解sidecar.istio.io/inject: "true"才會(huì)進(jìn)行注入autoInject: disabled
  • 解決方法:
    • 第一個(gè)方法:設(shè)置 autoInject: enabled
    • 第二個(gè)方法:在 Pod 或者 Deployment 聲明 sidecar.istio.io/inject: "true"
  • 第三種可能:

kube-apiserver --enable-admission-plugins` 沒(méi)有配置 `MutatingAdmissionWebhook,ValidatingAdmissionWebhook 解決方法: $ vim kube-apiserver--enable-admission-plugins=NamespaceLifecycle,LimitRanger,ServiceAccount,DefaultStorag
  • 第四種可能: 如果自動(dòng)注入時(shí),報(bào)如下錯(cuò)誤信息: Error creating: Internal error occurred: failed calling webhook "sidecar-injector.istio.io": Post https://istio-sidecar-injector.istio-system.svc:443/inject?timeout=30s: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 原因: Master 節(jié)點(diǎn)沒(méi)安裝 flanneld、docker、kube-proxy,會(huì)導(dǎo)致 Master 節(jié)點(diǎn)訪(fǎng)問(wèn)不了集群內(nèi)部的 Service(istio-sidecar-injector),導(dǎo)致自動(dòng)注入失敗。 解決方法: Master 安裝 flanneld、docker、kube-proxy,并且針對(duì) Master 節(jié)點(diǎn)上的 node 設(shè)置 SchedulingDisabled

  • 第五種可能: 沒(méi)有配置

    Aggregation

    (一定要安裝

    metrics-server

    ,收集監(jiān)控?cái)?shù)據(jù)。提供

    HPA

    伸縮數(shù)據(jù))

    解決方法:
    • 第一個(gè)方法:在 Master 節(jié)點(diǎn)安裝 kube-proxy 服務(wù)(推薦直接把 master 節(jié)點(diǎn)安裝一個(gè) node,并設(shè)置成不可調(diào)度)
    • 第二個(gè)方法:kube-apiserver 配置中啟用 --enable-aggregator-routing=true (允許在不修改 Kubernetes 核心代碼的同時(shí)擴(kuò)展 Kubernetes API)

k8s安裝istio后pod無(wú)法創(chuàng)建

報(bào)錯(cuò):istio-sidecar-injector.istio-system.svc:443 Client.Timeout

# 設(shè)置標(biāo)簽 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# 查看標(biāo)簽 kubectl get namespace -L istio-injection

參考鏈接

  • https://kubernetes.io/docs/tasks/access-kubernetes-api/configure-aggregation-layer/
  • https://www.okcode.net/article/62009
  • https://cloud.tencent.com/developer/article/1638611

總結(jié)

以上是生活随笔為你收集整理的Istio 自动注入 sidecar 不成功及k8s安装istio后pod无法创建解决方案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。