<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      「Bug」刪除 replicaset 時,Pod 不會被級聯刪除

      2020-07-17

      問題描述

      Kubernetes 的級聯管理功能失效:

      1. 刪除 Replicaset 時,Pod 不會被級聯刪除
      2. 刪除 Cronjob 時不會級聯刪除 Job
      3. 刪除 Job 時,也不會自動刪除對應的 Pod

      問題排查

      搜索資料,確認級聯刪除是垃圾收集器提供的。排查 kubelet gc 日志(清理容器和鏡像的 gc),未找到明確的問題。

      replicaset/cronjob 都是 controller 類型,查看 controller 日志,發現三個主節點上的 controller 日志各不相同。并且有明顯報錯:

      主節點1 controller-manager 報錯:

      I0703 17:42:50.697659       1 serving.go:319] Generated self-signed cert in-memory
      I0703 17:42:52.253742       1 controllermanager.go:161] Version: v1.16.0
      I0703 17:42:52.258189       1 secure_serving.go:123] Serving securely on 127.0.0.1:10257
      I0703 17:42:52.261809       1 deprecated_insecure_serving.go:53] Serving insecurely on [::]:10252
      I0703 17:42:52.261993       1 leaderelection.go:241] attempting to acquire leader lease  kube-system/kube-controller-manager...
      E0703 20:39:10.062914       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: rpc error: code = Unavailable desc = etcdserver: leader changed
      E0706 10:37:12.396567       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: net/http: TLS handshake timeout
      E0706 10:37:16.441577       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: endpoints "kube-controller-manager" is forbidden: User "system:kube-controller-manager" cannot get resource "endpoints" in API group "" in the namespace "kube-system"
      E0706 10:37:18.598949       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: dial tcp 192.168.1.90:6443: connect: connection refused
      E0706 10:37:21.205271       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: dial tcp 192.168.1.90:6443: connect: connection refused
      E0706 10:37:24.042719       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: dial tcp 192.168.1.90:6443: connect: connection refused
      E0706 10:37:26.528240       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: dial tcp 192.168.1.90:6443: connect: connection refused
      E0706 10:37:29.040759       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: dial tcp 192.168.1.90:6443: connect: connection refused
      E0706 10:37:31.755211       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: dial tcp 192.168.1.90:6443: connect: connection refused
      E0706 10:37:43.769537       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: Get https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/endpoints/kube-controller-manager?timeout=10s: context deadline exceeded (Client.Timeout exceeded while awaiting headers)
      E0706 10:37:46.599186       1 leaderelection.go:330] error retrieving resource lock kube-system/kube-controller-manager: endpoints "kube-controller-manager" is forbidden: User "system:kube-controller-manager" cannot get resource "endpoints" in API group "" in the namespace "kube-system"
      

      主節點2 controller-manager 報錯:

      /apis/monitoring.coreos.com/v1/prometheusrules?limit=500&resourceVersion=0: stream error: stream ID 304059; INTERNAL_ERROR
      E0707 16:05:15.833656       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/thanosrulers?limit=500&resourceVersion=0: stream error: stream ID 304063; INTERNAL_ERROR
      E0707 16:05:16.067473       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/servicemonitors?limit=500&resourceVersion=0: stream error: stream ID 304065; INTERNAL_ERROR
      E0707 16:05:16.718849       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/prometheusrules?limit=500&resourceVersion=0: stream error: stream ID 304071; INTERNAL_ERROR
      E0707 16:05:16.841991       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/thanosrulers?limit=500&resourceVersion=0: stream error: stream ID 304073; INTERNAL_ERROR
      E0707 16:05:17.070573       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/servicemonitors?limit=500&resourceVersion=0: stream error: stream ID 304075; INTERNAL_ERROR
      E0707 16:05:17.721035       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/prometheusrules?limit=500&resourceVersion=0: stream error: stream ID 304077; INTERNAL_ERROR
      E0707 16:05:17.850094       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/thanosrulers?limit=500&resourceVersion=0: stream error: stream ID 304079; INTERNAL_ERROR
      E0707 16:05:18.073291       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/servicemonitors?limit=500&resourceVersion=0: stream error: stream ID 304081; INTERNAL_ERROR
      E0707 16:05:18.224933       1 shared_informer.go:200] unable to sync caches for garbage collector
      E0707 16:05:18.224983       1 garbagecollector.go:230] timed out waiting for dependency graph builder sync during GC sync (attempt 803)
      E0707 16:05:18.388394       1 namespace_controller.go:148] deletion of namespace monitoring failed: [Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/servicemonitors: stream error: stream ID 1728289; INTERNAL_ERROR, Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/prometheusrules: stream error: stream ID 1728343; INTERNAL_ERROR, Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/thanosrulers: stream error: stream ID 1728381; INTERNAL_ERROR]
      E0707 16:05:18.723249       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/prometheusrules?limit=500&resourceVersion=0: stream error: stream ID 304087; INTERNAL_ERROR
      E0707 16:05:18.859193       1 reflector.go:123] k8s.io/client-go/metadata/metadatainformer/informer.go:89: Failed to list *v1.PartialObjectMetadata: Get https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/thanosrulers?limit=500&resourceVersion=0: stream error: stream ID 304089; INTERNAL_ERROR
      

      主節點3 controller manager 日志:

      I0706 21:13:58.923131       1 serving.go:319] Generated self-signed cert in-memory
      I0706 21:13:59.235491       1 controllermanager.go:161] Version: v1.16.0
      I0706 21:13:59.235870       1 secure_serving.go:123] Serving securely on 127.0.0.1:10257
      I0706 21:13:59.236162       1 deprecated_insecure_serving.go:53] Serving insecurely on [::]:10252
      I0706 21:13:59.236201       1 leaderelection.go:241] attempting to acquire leader lease  kube-system/kube-controller-manager...
      

      查看到 controller manager 訪問 apiserver,報錯 Internal Error. 于是再查看 apiserver 信息。在主節點2 的 apiserver 上發現明顯錯誤日志:

      goroutine 9351585 [running]:
      k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime.logPanic(0x3a32ce0, 0xc01f4aa850)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:74 +0xa3
      k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0xc029cfdcd8, 0x1, 0x1)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/util/runtime/runtime.go:48 +0x82
      panic(0x3a32ce0, 0xc01f4aa850)
              /usr/local/go/src/runtime/panic.go:522 +0x1b5
      k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.(*timeoutHandler).ServeHTTP(0xc00ca32240, 0x7b10de0, 0xc02014a310, 0xc0340b7d00)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters/timeout.go:118 +0x3ef
      k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.WithWaitGroup.func1(0x7b10de0, 0xc02014a310, 0xc0340b7c00)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters/waitgroup.go:47 +0xf3
      net/http.HandlerFunc.ServeHTTP(0xc004f981e0, 0x7b10de0, 0xc02014a310, 0xc0340b7c00)
              /usr/local/go/src/net/http/server.go:1995 +0x44
      k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithRequestInfo.func1(0x7b10de0, 0xc02014a310, 0xc0340b7b00)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters/requestinfo.go:39 +0x2b8
      net/http.HandlerFunc.ServeHTTP(0xc004f98210, 0x7b10de0, 0xc02014a310, 0xc0340b7b00)
              /usr/local/go/src/net/http/server.go:1995 +0x44
      k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters.WithCacheControl.func1(0x7b10de0, 0xc02014a310, 0xc0340b7b00)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/endpoints/filters/cachecontrol.go:31 +0xa8
      net/http.HandlerFunc.ServeHTTP(0xc00ca32260, 0x7b10de0, 0xc02014a310, 0xc0340b7b00)
              /usr/local/go/src/net/http/server.go:1995 +0x44
      k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/httplog.WithLogging.func1(0x7b04720, 0xc013c82c18, 0xc0340b7a00)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/httplog/httplog.go:89 +0x29c
      net/http.HandlerFunc.ServeHTTP(0xc00ca32280, 0x7b04720, 0xc013c82c18, 0xc0340b7a00)
              /usr/local/go/src/net/http/server.go:1995 +0x44
      k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters.withPanicRecovery.func1(0x7b04720, 0xc013c82c18, 0xc0340b7a00)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/filters/wrap.go:51 +0x105
      net/http.HandlerFunc.ServeHTTP(0xc00ca322a0, 0x7b04720, 0xc013c82c18, 0xc0340b7a00)
              /usr/local/go/src/net/http/server.go:1995 +0x44
      k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server.(*APIServerHandler).ServeHTTP(0xc004f98240, 0x7b04720, 0xc013c82c18, 0xc0340b7a00)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/server/handler.go:189 +0x51
      net/http.serverHandler.ServeHTTP(0xc00172a0d0, 0x7b04720, 0xc013c82c18, 0xc0340b7a00)
              /usr/local/go/src/net/http/server.go:2774 +0xa8
      net/http.initNPNRequest.ServeHTTP(0xc0169cee00, 0xc00172a0d0, 0x7b04720, 0xc013c82c18, 0xc0340b7a00)
              /usr/local/go/src/net/http/server.go:3323 +0x8d
      k8s.io/kubernetes/vendor/golang.org/x/net/http2.(*serverConn).runHandler(0xc00a8e1080, 0xc013c82c18, 0xc0340b7a00, 0xc0004b9be0)
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/golang.org/x/net/http2/server.go:2125 +0x89
      created by k8s.io/kubernetes/vendor/golang.org/x/net/http2.(*serverConn).processHeaders
              /workspace/anago-v1.16.0-rc.2.1+2bd9643cee5b3b/src/k8s.io/kubernetes/_output/dockerized/go/src/k8s.io/kubernetes/vendor/golang.org/x/net/http2/server.go:1859 +0x4f4
      E0707 16:00:11.468119       1 wrap.go:39] apiserver panic'd on GET /apis/monitoring.coreos.com/v1/servicemonitors?limit=500&resourceVersion=0
      I0707 16:00:11.468205       1 log.go:172] http2: panic serving 192.168.1.91:37280: runtime error: invalid memory address or nil pointer dereference
      ...
      

      錯誤信息顯示,在處理 GET /apis/monitoring.coreos.com/v1/servicemonitors?limit=500&resourceVersion=0 這個請求時,報錯:runtime error: invalid memory address or nil pointer dereference

      看起來是監控相關的 api,在集群中查找監控相關信息,找到 monitoring 名字空間:

      [root@192-168-1-90 ~]# kubectl get ns
      NAME                   STATUS        AGE
      ......  # 省略若干名字空間
      default                Active        86d
      istio-system           Active        69d
      kube-node-lease        Active        86d
      kube-public            Active        86d
      kube-system            Active        86d
      kubernetes-dashboard   Active        86d
      monitoring             Terminating   30h
      

      monitoring 處于 Terminating 狀態,查看該名字空間的詳細信息:

      apiVersion: v1
      kind: Namespace
      metadata:
        annotations:
          kubectl.kubernetes.io/last-applied-configuration: |
            {"apiVersion":"v1","kind":"Namespace","metadata":{"annotations":{},"name":"monitoring"}}
        creationTimestamp: "2020-07-06T02:33:50Z"
        deletionTimestamp: "2020-07-06T02:36:59Z"
        name: monitoring
        resourceVersion: "56322781"
        selfLink: /api/v1/namespaces/monitoring
        uid: 2a41ac04-d86c-4086-9325-5c87dd2a15ac
      spec:
        finalizers:
        - kubernetes
      status:
        conditions:
        - lastTransitionTime: "2020-07-06T02:37:50Z"
          message: All resources successfully discovered
          reason: ResourcesDiscovered
          status: "False"
          type: NamespaceDeletionDiscoveryFailure
        - lastTransitionTime: "2020-07-06T02:37:50Z"
          message: All legacy kube types successfully parsed
          reason: ParsedGroupVersions
          status: "False"
          type: NamespaceDeletionGroupVersionParsingFailure
        - lastTransitionTime: "2020-07-06T02:37:50Z"
          message: 'Failed to delete all resource types, 3 remaining: Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/prometheusrules:
            stream error: stream ID 190291; INTERNAL_ERROR, Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/servicemonitors:
            stream error: stream ID 190119; INTERNAL_ERROR, Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/thanosrulers:
            stream error: stream ID 190153; INTERNAL_ERROR'
          reason: ContentDeletionFailed
          status: "True"
          type: NamespaceDeletionContentFailure
        phase: Terminating
      

      按網上介紹的方法,修改 spec.finalizers 以刪除該名字空間,沒有任何效果。

      # 手動編輯該名字空間的配置,刪除 spec.finalizers 屬性,沒有任何效果。
      kubectl edit ns monitoring
      
      # 直接 delete 無效
      [root@192-168-1-90 ~]# kubectl delete ns monitoring  --grace-period=0 --force
      warning: Immediate deletion does not wait for confirmation that the running resource has been terminated. The resource may continue to run on the cluster indefinitely.
      Error from server (Conflict): Operation cannot be fulfilled on namespaces "monitoring": The system is ensuring all content is removed from this namespace.  Upon completion, this namespace will automatically be purged by the system.
      

      仔細查看上面的錯誤信息,在 status.conditions 有如下內容:

        - lastTransitionTime: "2020-07-06T02:37:50Z"
          message: 'Failed to delete all resource types, 3 remaining: Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/prometheusrules:
            stream error: stream ID 190291; INTERNAL_ERROR, Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/servicemonitors:
            stream error: stream ID 190119; INTERNAL_ERROR, Delete https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/thanosrulers:
            stream error: stream ID 190153; INTERNAL_ERROR'
      

      從這些日志看,刪除名字空間也需要調用 apiserver 的 https://apiserver.cluster.local:6443/apis/monitoring.coreos.com/v1/namespaces/monitoring/servicemonitors 接口。
      但是該接口報 INTERNAL_ERROR,導致名字空間無法刪除。

      在 Github 上提了 Issue: https://github.com/kubernetes/kubernetes/issues/92858

      等待后續反饋。

      ===========

      更新:根據 k8s 官方人員提示,直接改用 1.16.2+ 的 kuberntes,到目前沒出過問題。

      總結

      總的來說,是因為在刪除 monitoring 名字空間時,級聯刪除 coreos 的 crd 報錯,直接導致整個 Kubernetes 的級聯管理功能徹底失效。。。
      蝴蝶效應hhh

      參考

      posted @ 2020-11-23 08:47  於清樂  閱讀(1542)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品一区二区传媒蜜臀| 国产真人无码作爱免费视频app| 97久久精品人人做人人爽| 我要看亚洲黄色太黄一级黄| 精品久久久久久无码中文字幕 | 在线天堂中文新版www| 99riav国产精品视频| 波多野结衣久久一区二区| 国产精品一区中文字幕| 99久久精品午夜一区二区| 国产成人精品亚洲日本在线观看| 曰本丰满熟妇xxxx性| 久久涩综合一区二区三区| 在线 欧美 中文 亚洲 精品| 精品在免费线中文字幕久久| 国产福利精品一区二区| 国产日产欧产系列| 狠狠色丁香婷婷综合尤物| 蜜臀91精品国产高清在线| 少妇性l交大片| 亚洲国产精品久久无人区| 亚洲码和欧洲码一二三四| 人成午夜免费视频无码| 成人AV无码一区二区三区| 国语精品国内自产视频| 五月天免费中文字幕av| 亚洲aⅴ天堂av天堂无码麻豆| 欧美成人www免费全部网站| 亚洲国产中文在线有精品| 蜜臀午夜一区二区在线播放| 亚洲精中文字幕二区三区| 在线观看国产成人AV天堂| 国产av一区二区不卡| 欧美性猛交xxxx免费看| 亚洲欧美一区二区成人片 | 亚洲国产成人久久精品软件| 少妇熟女视频一区二区三区| 国产女同一区二区在线| 亚洲精品人成网线在线| 最近中文国语字幕在线播放| 中文字幕人妻有码久视频|