欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Istio 自動注入 sidecar 失敗導致無法訪問webhook服務的解決方法

 更新時間:2023年10月26日 10:37:21   作者:張志翔的博客  
最近工作中在部署Istio環(huán)境的過程中發(fā)現(xiàn)官方示例啟動的pod不能訪問不到Istio的webhook,這個問題也是困擾了我一天,我把他歸類到sidecar注入失敗的情況下,本文給大家分享問題解決方法,感興趣的朋友跟隨小編一起看看吧

最近工作中在部署Istio環(huán)境的過程中發(fā)現(xiàn)官方示例啟動的pod不能訪問不到Istio的webhook,這個問題也是困擾了我一天,我把他歸類到sidecar注入失敗的情況下,特此記錄,便于日后查閱。

1、第一種可能(我遇到的情況)

如果自動注入時,報如下錯誤信息:

Error from server (InternalError): error when creating "STDIN": Internal error occurred: failed calling webhook "rev.validation.istio.io": failed to call webhook: Post "https://istiod.istio-system.svc:443/validate?timeout=10s": dial tcp 10.101.106.199:443: i/o timeout

造成上述問題的原因是 kube-apiserver 的 --enable-admission-plugins 沒有配置 MutatingAdmissionWebhook,ValidatingAdmissionWebhook參數(shù),所以解決問題的方法就是找到 kube-apiserver.yaml 配置文件,我是通過kubeadm安裝的,所以路徑在 /etc/kubernetes/manifests 下,把 --enable-admission-plugins 修改為 NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook 后保存文件,刪掉 kube-apiserver 的pod,讓他自己根據新的配置文件重新啟動(注意:如果是用kubeadm安裝的修改內容如果錯誤,可能會導致k8s集群中的kube-apiserver全部掛掉,導致無法訪問集群,這時就需要從官網下載kube-apiserver二進制文件,重新拉起一個進程,再執(zhí)行刪除pod的操作),修改后文件內容如下:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: 192.168.1.61:6443
  creationTimestamp: null
  labels:
    component: kube-apiserver
    tier: control-plane
  name: kube-apiserver
  namespace: kube-system
spec:
  containers:
  - command:
    - kube-apiserver
    - --advertise-address=192.168.1.61
    - --allow-privileged=true
    - --authorization-mode=Node,RBAC
    - --client-ca-file=/etc/kubernetes/pki/ca.crt
    - --enable-admission-plugins=NodeRestriction,MutatingAdmissionWebhook,ValidatingAdmissionWebhook
    - --enable-bootstrap-token-auth=true
    - --etcd-cafile=/etc/kubernetes/pki/etcd/ca.crt
    - --etcd-certfile=/etc/kubernetes/pki/apiserver-etcd-client.crt
    - --etcd-keyfile=/etc/kubernetes/pki/apiserver-etcd-client.key
    - --etcd-servers=https://127.0.0.1:2379
    - --kubelet-client-certificate=/etc/kubernetes/pki/apiserver-kubelet-client.crt
    - --kubelet-client-key=/etc/kubernetes/pki/apiserver-kubelet-client.key
    - --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
    - --proxy-client-cert-file=/etc/kubernetes/pki/front-proxy-client.crt
    - --proxy-client-key-file=/etc/kubernetes/pki/front-proxy-client.key
    - --requestheader-allowed-names=front-proxy-client
    - --requestheader-client-ca-file=/etc/kubernetes/pki/front-proxy-ca.crt
    - --requestheader-extra-headers-prefix=X-Remote-Extra-
    - --requestheader-group-headers=X-Remote-Group
    - --requestheader-username-headers=X-Remote-User
    - --secure-port=6443
    - --service-account-issuer=https://kubernetes.default.svc.cluster.local
    - --service-account-key-file=/etc/kubernetes/pki/sa.pub
    - --service-account-signing-key-file=/etc/kubernetes/pki/sa.key
    - --service-cluster-ip-range=10.96.0.0/12
    - --tls-cert-file=/etc/kubernetes/pki/apiserver.crt
    - --tls-private-key-file=/etc/kubernetes/pki/apiserver.key
    - --feature-gates=RemoveSelfLink=false
    image: registry.aliyuncs.com/google_containers/kube-apiserver:v1.23.0
    imagePullPolicy: IfNotPresent
    livenessProbe:
      failureThreshold: 8
      httpGet:
        host: 192.168.1.61
        path: /livez
        port: 6443
        scheme: HTTPS
      initialDelaySeconds: 10
      periodSeconds: 10
      timeoutSeconds: 15
    name: kube-apiserver
    readinessProbe:
      failureThreshold: 3
      httpGet:
        host: 192.168.1.61
        path: /readyz
        port: 6443
        scheme: HTTPS
      periodSeconds: 1
      timeoutSeconds: 15
    resources:
      requests:
        cpu: 250m
    startupProbe:
      failureThreshold: 24
      httpGet:
        host: 192.168.1.61
        path: /livez
        port: 6443
        scheme: HTTPS
      initialDelaySeconds: 10
      periodSeconds: 10
      timeoutSeconds: 15
    volumeMounts:
    - mountPath: /etc/ssl/certs
      name: ca-certs
      readOnly: true
    - mountPath: /etc/pki
      name: etc-pki
      readOnly: true
    - mountPath: /etc/kubernetes/pki
      name: k8s-certs
      readOnly: true
  hostNetwork: true
  priorityClassName: system-node-critical
  securityContext:
    seccompProfile:
      type: RuntimeDefault
  volumes:
  - hostPath:
      path: /etc/ssl/certs
      type: DirectoryOrCreate
    name: ca-certs
  - hostPath:
      path: /etc/pki
      type: DirectoryOrCreate
    name: etc-pki
  - hostPath:
      path: /etc/kubernetes/pki
      type: DirectoryOrCreate
    name: k8s-certs
status: {}

2、第二種可能

安裝 Istio 時,配置了 enableNamespacesByDefault: false

sidecarInjectorWebhook:
  enabled: true
  # 變量為true,就會為所有命名空間開啟自動注入功能。如果賦值為false,則只有標簽為istio-injection的命名空間才會開啟自動注入功能
  enableNamespacesByDefault: false
  rewriteAppHTTPProbe: false

解決方法:

# 設置標簽
$ kubectl label namespace default istio-injection=enabled --overwrite
# 查看
$ kubectl get namespace -L istio-injection
NAME                   STATUS   AGE    ISTIO-INJECTION
default                Active   374d   enabled

如果要重新禁用注入istio sidecar,執(zhí)行下面命令:

$ kubectl label namespace default istio-injection=disabled --overwrite

3、第三種可能

安裝 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

解決方法:

  • 第一個方法:設置 autoInject: enabled
  • 第二個方法:在 Pod 或者 Deployment 聲明 sidecar.istio.io/inject: "true"  

到此這篇關于Istio 自動注入 sidecar 失敗導致無法訪問webhook服務的文章就介紹到這了,更多相關Istio 自動注入 sidecar 失敗內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • k8s?pod如何使用sriov

    k8s?pod如何使用sriov

    這篇文章主要介紹了k8s?pod如何使用sriov問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • MinIO使用基礎教程(最新整理)

    MinIO使用基礎教程(最新整理)

    文章介紹了MinIO云存儲服務的快速安裝和使用,并通過SpringBoot實現(xiàn)文件上傳和查詢的功能,感興趣的朋友跟隨小編一起看看吧
    2025-03-03
  • kubernetes(k8s)安裝metrics-server實現(xiàn)資源使用情況監(jiān)控方式詳解

    kubernetes(k8s)安裝metrics-server實現(xiàn)資源使用情況監(jiān)控方式詳解

    這篇文章主要介紹了kubernetes(k8s)安裝metrics-server實現(xiàn)資源使用情況監(jiān)控,包括Metrics?Server下載方式,?k8s集群安裝部署metrics的問題,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • 基于云服務MRS構建DolphinScheduler2調度系統(tǒng)的案例詳解

    基于云服務MRS構建DolphinScheduler2調度系統(tǒng)的案例詳解

    這篇文章主要介紹了基于云服務MRS構建DolphinScheduler2調度系統(tǒng),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • 在K8S中使用ArgoCD做持續(xù)部署的方案

    在K8S中使用ArgoCD做持續(xù)部署的方案

    ArgoCD是一個基于Kubernetes的GitOps持續(xù)交付工具,應用的部署和更新都可以在Git倉庫上同步實現(xiàn),并自帶一個可視化界面,本文介紹如何使用Git+Argocd方式來實現(xiàn)在k8s中部署和更新應用服務,感興趣的朋友一起看看吧
    2025-03-03
  • K8s搭建Jenkins的詳細教程(附源代碼)

    K8s搭建Jenkins的詳細教程(附源代碼)

    Jenkins 是一個開源的自動化服務器,主要用于持續(xù)集成和持續(xù)交付,這篇文章主要來和大家介紹一下如何在K8s中搭建Jenkins,有需要的可以了解下
    2025-03-03
  • 云原生技術kubernetes之volumes容器的使用

    云原生技術kubernetes之volumes容器的使用

    這篇文章主要為大家介紹了云原生技術kubernetes之volumes容器使用方式,?有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • 基于openEuler的Ceph分布式存儲集群部署指南

    基于openEuler的Ceph分布式存儲集群部署指南

    本文詳細介紹了如何在openEuler22.03LTS操作系統(tǒng)上部署Ceph分布式存儲集群,包括環(huán)境準備、軟件倉庫配置、集群初始化、存儲節(jié)點部署、存儲池創(chuàng)建、監(jiān)控集成和性能優(yōu)化等步驟,感興趣的朋友一起看看吧
    2025-03-03
  • 阿里云kubernetes查找鏡像中jar包的方法(docker查看鏡像中的jar)

    阿里云kubernetes查找鏡像中jar包的方法(docker查看鏡像中的jar)

    這篇文章主要給大家介紹了關于阿里云kubernetes查找鏡像中jar包的方法,也就是在docker查看鏡像中的jar,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • K8S內部pod之間相互調用案例以及詳解

    K8S內部pod之間相互調用案例以及詳解

    這篇文章主要給大家介紹了關于K8S內部pod之間相互調用案例的相關資料,Pod是Kubernetes中最小的可部署單元,它是一個或多個容器的集合,它們共享網絡和存儲資源,并在同一節(jié)點上運行,需要的朋友可以參考下
    2023-08-08

最新評論