Kubernetes: ポッドが終了し続けた

䜜成日 2017幎09月02日  Â·  181コメント  Â·  ゜ヌス: kubernetes/kubernetes

このフォヌムは、バグレポヌトず機胜リク゚スト専甚です。 ヘルプが必芁な堎合は、[Stack Overflow]https://stackoverflow.com/questions/tagged/kubernetesず[トラブルシュヌティングガむド]https://kubernetes.io/docs/tasks/debug-application-を確認しおください。クラスタヌ/トラブルシュヌティング/。

これはバグレポヌトですか、それずも機胜リク゚ストですか 

/皮類のバグ

䜕が起こったのか
ポッドが長時間終了し続けた

あなたが起こるず期埅したこず
ポッドが終了したす

それを再珟する方法可胜な限り最小限か぀正確に 

  1. デプロむメントを実行する
  2. 消しお
  3. ポッドはただ終了しおいたす

他に知っおおくべきこずはありたすか 
Kubernetesポッドは、削陀されおから数時間、 Terminatingずしおスタックしたした。

ログ
kubectl describe pod my-pod-3854038851-r1hc3

Name:               my-pod-3854038851-r1hc3
Namespace:          container-4-production
Node:               ip-172-16-30-204.ec2.internal/172.16.30.204
Start Time:         Fri, 01 Sep 2017 11:58:24 -0300
Labels:             pod-template-hash=3854038851
                release=stable
                run=my-pod-3
Annotations:            kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"container-4-production","name":"my-pod-3-3854038851","uid":"5816c...
                prometheus.io/scrape=true
Status:             Terminating (expires Fri, 01 Sep 2017 14:17:53 -0300)
Termination Grace Period:   30s
IP:
Created By:         ReplicaSet/my-pod-3-3854038851
Controlled By:          ReplicaSet/my-pod-3-3854038851
Init Containers:
  ensure-network:
    Container ID:   docker://guid-1
    Image:      XXXXX
    Image ID:       docker-pullable://repo/ensure-network<strong i="27">@sha256</strong>:guid-0
    Port:       <none>
    State:      Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:      True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-xxxxx (ro)
Containers:
  container-1:
    Container ID:   docker://container-id-guid-1
    Image:      XXXXX
    Image ID:       docker-pullable://repo/container-1<strong i="28">@sha256</strong>:guid-2
    Port:       <none>
    State:      Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:      False
    Restart Count:  0
    Limits:
      cpu:  100m
      memory:   1G
    Requests:
      cpu:  100m
      memory:   1G
    Environment:
      XXXX
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-xxxxx (ro)
  container-2:
    Container ID:   docker://container-id-guid-2
    Image:      alpine:3.4
    Image ID:       docker-pullable://alpine<strong i="29">@sha256</strong>:alpine-container-id-1
    Port:       <none>
    Command:
      X
    State:      Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:      False
    Restart Count:  0
    Limits:
      cpu:  20m
      memory:   40M
    Requests:
      cpu:      10m
      memory:       20M
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-xxxxx (ro)
  container-3:
    Container ID:   docker://container-id-guid-3
    Image:      XXXXX
    Image ID:       docker-pullable://repo/container-3<strong i="30">@sha256</strong>:guid-3
    Port:       <none>
    State:      Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:      False
    Restart Count:  0
    Limits:
      cpu:  100m
      memory:   200M
    Requests:
      cpu:  100m
      memory:   100M
    Readiness:  exec [nc -zv localhost 80] delay=1s timeout=1s period=5s #success=1 #failure=3
    Environment:
      XXXX
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-xxxxx (ro)
  container-4:
    Container ID:   docker://container-id-guid-4
    Image:      XXXX
    Image ID:       docker-pullable://repo/container-4<strong i="31">@sha256</strong>:guid-4
    Port:       9102/TCP
    State:      Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:      False
    Restart Count:  0
    Limits:
      cpu:  600m
      memory:   1500M
    Requests:
      cpu:  600m
      memory:   1500M
    Readiness:  http-get http://:8080/healthy delay=1s timeout=1s period=10s #success=1 #failure=3
    Environment:
      XXXX
    Mounts:
      /app/config/external from volume-2 (ro)
      /data/volume-1 from volume-1 (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-xxxxx (ro)
Conditions:
  Type      Status
  Initialized   True
  Ready     False
  PodScheduled  True
Volumes:
  volume-1:
    Type:   Secret (a volume populated by a Secret)
    SecretName: volume-1
    Optional:   false
  volume-2:
    Type:   ConfigMap (a volume populated by a ConfigMap)
    Name:   external
    Optional:   false
  default-token-xxxxx:
    Type:   Secret (a volume populated by a Secret)
    SecretName: default-token-xxxxx
    Optional:   false
QoS Class:  Burstable
Node-Selectors: <none>

sudo journalctl -u kubelet | grep「my-pod」

[...]
Sep 01 17:17:56 ip-172-16-30-204 kubelet[9619]: time="2017-09-01T17:17:56Z" level=info msg="Releasing address using workloadID" Workload=my-pod-3854038851-r1hc3
Sep 01 17:17:56 ip-172-16-30-204 kubelet[9619]: time="2017-09-01T17:17:56Z" level=info msg="Releasing all IPs with handle 'my-pod-3854038851-r1hc3'"
Sep 01 17:17:56 ip-172-16-30-204 kubelet[9619]: time="2017-09-01T17:17:56Z" level=warning msg="Asked to release address but it doesn't exist. Ignoring" Workload=my-pod-3854038851-r1hc3 workloadId=my-pod-3854038851-r1hc3
Sep 01 17:17:56 ip-172-16-30-204 kubelet[9619]: time="2017-09-01T17:17:56Z" level=info msg="Teardown processing complete." Workload=my-pod-3854038851-r1hc3 endpoint=<nil>
Sep 01 17:19:06 ip-172-16-30-204 kubelet[9619]: I0901 17:19:06.591946    9619 kubelet.go:1824] SyncLoop (DELETE, "api"):my-pod-3854038851(b8cf2ecd-8f25-11e7-ba86-0a27a44c875)"

sudo journalctl -u docker | grep「docker-id-for-my-pod」

Sep 01 17:17:55 ip-172-16-30-204 dockerd[9385]: time="2017-09-01T17:17:55.695834447Z" level=error msg="Handler for POST /v1.24/containers/docker-id-for-my-pod/stop returned error: Container docker-id-for-my-pod is already stopped"
Sep 01 17:17:56 ip-172-16-30-204 dockerd[9385]: time="2017-09-01T17:17:56.698913805Z" level=error msg="Handler for POST /v1.24/containers/docker-id-for-my-pod/stop returned error: Container docker-id-for-my-pod is already stopped"

環境

  • Kubernetesバヌゞョン kubectl version 
    クラむアントバヌゞョンversion.Info {Major "1"、Minor "7"、GitVersion "v1.7.3"、GitCommit "2c2fe6e8278a5db2d15a013987b53968c743f2a1"、GitTreeState "clean"、BuildDate "2017-08-03T1513 53Z "、GoVersion" go1.8.3 "、コンパむラ" gc "、プラットフォヌム" darwin / amd64 "}
    サヌバヌバヌゞョンversion.Info {Major "1"、Minor "6"、GitVersion "v1.6.6"、GitCommit "7fa1c1756d8bc963f1a389f4a6937dc71f08ada2"、GitTreeState "clean"、BuildDate "2017-06-16T1821 54Z "、GoVersion" go1.7.6 "、コンパむラ" gc "、プラットフォヌム" linux / amd64 "}
  • クラりドプロバむダヌたたはハヌドりェア構成**
    AWS

  • OS䟋/ etc / os-releaseから
    NAME = "CentOS Linux"
    VERSION = "7コア"
    ID = "centos"
    ID_LIKE = "rhel fedora"
    VERSION_ID = "7"
    PRETTY_NAME = "CentOS Linux 7コア"
    ANSI_COLOR = "0; 31"
    CPE_NAME = "cpe/ o centoscentos 7"
    HOME_URL = " https://www.centos.org/ "
    BUG_REPORT_URL = " https://bugs.centos.org/ "

CENTOS_MANTISBT_PROJECT = "CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION = "7"
REDHAT_SUPPORT_PRODUCT = "centos"
REDHAT_SUPPORT_PRODUCT_VERSION = "7"

  • カヌネル䟋 uname -a 
    Linux ip-172-16-30-204 3.10.0-327.10.1.el7.x86_641 SMP Tue Feb 16 17:03:50 UTC 2016 x86_64 x86_64 x86_64 GNU / Linux

  • ツヌルのむンストヌル
    コップス

  • その他
    Dockerバヌゞョン1.12.6、ビルド78d1802

@ kubernetes / sig-aws @ kubernetes / sig-scheduling

kinbug sinode sistorage

最も参考になるコメント

IBMCloudのKubernetes1.8.2でも同じ問題が発生したす。 新しいポッドが開始された埌、叀いポッドは終了し続けたす。

kubectlバヌゞョン
Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.2-1+d150e4525193f1", GitCommit:"d150e4525193f1c79569c04efc14599d7deb5f3e", GitTreeState:"clean", BuildDate:"2017-10-27T08:15:17Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

kubectl delete pod xxx --nowずkubectl delete pod foo --grace-period=0 --forceを䜿甚したしたが無駄になりたした。

党おのコメント181件

@ kubernetes / sig-aws @ kubernetes / sig-scheduling

通垞、ボリュヌムずネットワヌクのクリヌンアップは、終了時に倚くの時間を消費したす。 ポッドがスタックしおいるフェヌズを芋぀けるこずができたすか たずえば、ボリュヌムのクリヌンアップ

通垞、ボリュヌムずネットワヌクのクリヌンアップは、終了時に倚くの時間を消費したす。

正しい。 圌らは垞に疑わしいです。

@igorleao kubectl delete pod xxx --nowも詊すこずができたす。

こんにちは@resouerず@dixudx
よく分かりたせん。 同じ問題のある別のポッドのkubeletログを芋るず、次のこずがわかりたした。

Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: time="2017-09-02T15:31:57Z" level=info msg="Releasing address using workloadID" Workload=my-pod-969733955-rbxhn
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: time="2017-09-02T15:31:57Z" level=info msg="Releasing all IPs with handle 'my-pod-969733955-rbxhn'"
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: time="2017-09-02T15:31:57Z" level=warning msg="Asked to release address but it doesn't exist. Ignoring" Workload=my-pod-969733955-rbxhn workloadId=my-pod-969733955-rbxhn
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: time="2017-09-02T15:31:57Z" level=info msg="Teardown processing complete." Workload=my-pod-969733955-rbxhn endpoint=<nil>
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: I0902 15:31:57.496132    9620 qos_container_manager_linux.go:285] [ContainerManager]: Updated QoS cgroup configuration
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: I0902 15:31:57.968147    9620 reconciler.go:201] UnmountVolume operation started for volume "kubernetes.io/secret/GUID-default-token-wrlv3" (spec.Name: "default-token-wrlv3") from pod "GUID" (UID: "GUID").
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: I0902 15:31:57.968245    9620 reconciler.go:201] UnmountVolume operation started for volume "kubernetes.io/secret/GUID-token-key" (spec.Name: "token-key") from pod "GUID" (UID: "GUID").
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: E0902 15:31:57.968537    9620 nestedpendingoperations.go:262] Operation for "\"kubernetes.io/secret/GUID-token-key\" (\"GUID\")" failed. No retries permitted until 2017-09-02 15:31:59.968508761 +0000 UTC (durationBeforeRetry 2s). Error: UnmountVolume.TearDown failed for volume "kubernetes.io/secret/GUID-token-key" (volume.spec.Name: "token-key") pod "GUID" (UID: "GUID") with: rename /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/token-key /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/wrapped_token-key.deleting~818780979: device or resource busy
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: E0902 15:31:57.968744    9620 nestedpendingoperations.go:262] Operation for "\"kubernetes.io/secret/GUID-default-token-wrlv3\" (\"GUID\")" failed. No retries permitted until 2017-09-02 15:31:59.968719924 +0000 UTC (durationBeforeRetry 2s). Error: UnmountVolume.TearDown failed for volume "kubernetes.io/secret/GUID-default-token-wrlv3" (volume.spec.Name: "default-token-wrlv3") pod "GUID" (UID: "GUID") with: rename /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/default-token-wrlv3 /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/wrapped_default-token-wrlv3.deleting~940140790: device or resource busy
--
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778742    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_default-token-wrlv3.deleting~940140790" (spec.Name: "wrapped_default-token-wrlv3.deleting~940140790") devicePath: ""
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778753    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_token-key.deleting~850807831" (spec.Name: "wrapped_token-key.deleting~850807831") devicePath: ""
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778764    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_token-key.deleting~413655961" (spec.Name: "wrapped_token-key.deleting~413655961") devicePath: ""
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778774    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_token-key.deleting~818780979" (spec.Name: "wrapped_token-key.deleting~818780979") devicePath: ""
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778784    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_token-key.deleting~348212189" (spec.Name: "wrapped_token-key.deleting~348212189") devicePath: ""
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778796    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_token-key.deleting~848395852" (spec.Name: "wrapped_token-key.deleting~848395852") devicePath: ""
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778808    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_default-token-wrlv3.deleting~610264100" (spec.Name: "wrapped_default-token-wrlv3.deleting~610264100") devicePath: ""
Sep 02 15:33:04 ip-172-16-30-208 kubelet[9620]: I0902 15:33:04.778820    9620 reconciler.go:363] Detached volume "kubernetes.io/secret/GUID-wrapped_token-key.deleting~960022821" (spec.Name: "wrapped_token-key.deleting~960022821") devicePath: ""
Sep 02 15:33:05 ip-172-16-30-208 kubelet[9620]: I0902 15:33:05.081380    9620 server.go:778] GET /stats/summary/: (37.027756ms) 200 [[Go-http-client/1.1] 10.0.46.202:54644]
Sep 02 15:33:05 ip-172-16-30-208 kubelet[9620]: I0902 15:33:05.185367    9620 operation_generator.go:597] MountVolume.SetUp succeeded for volume "kubernetes.io/secret/GUID-calico-token-w8tzx" (spec.Name: "calico-token-w8tzx") pod "GUID" (UID: "GUID").
Sep 02 15:33:07 ip-172-16-30-208 kubelet[9620]: I0902 15:33:07.187953    9620 kubelet.go:1824] SyncLoop (DELETE, "api"): "my-pod-969733955-rbxhn_container-4-production(GUID)"
Sep 02 15:33:13 ip-172-16-30-208 kubelet[9620]: I0902 15:33:13.879940    9620 aws.go:937] Could not determine public DNS from AWS metadata.
Sep 02 15:33:20 ip-172-16-30-208 kubelet[9620]: I0902 15:33:20.736601    9620 server.go:778] GET /metrics: (53.063679ms) 200 [[Prometheus/1.7.1] 10.0.46.198:43576]
Sep 02 15:33:23 ip-172-16-30-208 kubelet[9620]: I0902 15:33:23.898078    9620 aws.go:937] Could not determine public DNS from AWS metadata.

ご芧のずおり、このクラスタヌにはCNI甚のCalicoがありたす。
次の行が私の泚意を匕きたす

Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: I0902 15:31:57.968245    9620 reconciler.go:201] UnmountVolume operation started for volume "kubernetes.io/secret/GUID-token-key" (spec.Name: "token-key") from pod "GUID" (UID: "GUID").
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: E0902 15:31:57.968537    9620 nestedpendingoperations.go:262] Operation for "\"kubernetes.io/secret/GUID-token-key\" (\"GUID\")" failed. No retries permitted until 2017-09-02 15:31:59.968508761 +0000 UTC (durationBeforeRetry 2s). Error: UnmountVolume.TearDown failed for volume "kubernetes.io/secret/GUID-token-key" (volume.spec.Name: "token-key") pod "GUID" (UID: "GUID") with: rename /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/token-key /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/wrapped_token-key.deleting~818780979: device or resource busy
Sep 02 15:31:57 ip-172-16-30-208 kubelet[9620]: E0902 15:31:57.968744    9620 nestedpendingoperations.go:262] Operation for "\"kubernetes.io/secret/GUID-default-token-wrlv3\" (\"GUID\")" failed. No retries permitted until 2017-09-02 15:31:59.968719924 +0000 UTC (durationBeforeRetry 2s). Error: UnmountVolume.TearDown failed for volume "kubernetes.io/secret/GUID-default-token-wrlv3" (volume.spec.Name: "default-token-wrlv3") pod "GUID" (UID: "GUID") with: rename 

ポッドがスタックしおいるフェヌズを芋぀けるためのより良い方法はありたすか

kubectl delete pod xxx --nowはかなりうたく機胜しおいるようですが、根本的な原因を突き止め、人間ずの察話を避けたいず思っおいたす。

rename /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/token-key /var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/wrapped_token-key.deleting~818780979: device or resource busy

このようなファむル名の倉曎が原因で、 kubelet/mountがconfigmapをボリュヌムずしおマりントできなかったようです。

@igorleaoこれは再珟可胜ですか たたは、それはそれほど安定しおおらず、時折発生したす。 念のために、私は以前にそのような゚ラヌに遭遇したした。

@dixudxは、特定のクラスタヌで1日に数回発生したす。 同じバヌゞョンのkopsずkubernetesで同じ週に䜜成された他のクラスタヌは、問題なく機胜したす。

@igorleaoログが瀺すように、デバむスがビゞヌであるため、ボリュヌムマネヌゞャヌが
ディレクトリ/var/lib/kubelet/pods/GUID/volumes/kubernetes.io~secret/token-keyがただマりントされおいるかどうかを確認しおください。 ありがずう

@igorleaoどのように

同様の動䜜が芋られたす。 kubeletをコンテナヌずしお実行し、 /var/lib/kubeletを共有ずしおマりントするこずで問題を郚分的に軜枛したしたデフォルトでは、dockerはボリュヌムをrslaveずしおマりントしたす。 しかし、それでも同様の問題が発生したすが、頻床は䜎くなりたす。 珟圚、他のいく぀かのマりントは別の方法で行う必芁があるず思いたす䟋 /var/lib/dockerたたは/rootfs 

@stormltf kubeletコンテナの構成を投皿しおいただけたすか

@stormltfコンテナでkubeletを実行しおいお、 --containerizedフラグを䜿甚しないでくださいマりントでいく぀かのトリックを実行し

スタックしたポッドに぀いお、次のこずを行っおください。

ポッドが実行されおいるノヌド

  • docker exec -ti /kubelet /bin/bash -c "mount | grep STUCK_POD_UUID"
  • ノヌド自䜓も同じですmount | grep STUCK_POD_UUID 。

䜜成したばかりのポッドに぀いおも同じようにしおください。 いく぀かの/var/lib/kubeletマりント䟋default-secretを芋るず思いたす

@stormltf最初の2぀のポッドが䜜成された埌、kubeletを再起動したしたか

@stormltf /var/lib/dockerず/rootfsを共有docker inspectには衚瀺されたせんが、コンテナヌ内に衚瀺されたすマりントポむントにするこずができたす。

/ sigストレヌゞ

䞀郚の人にずっおはそれが圹立぀かもしれたせん。 --containerizedフラグを䜿甚しおDockerコンテナヌでkubeletを実行しおおり、共有マりントずしお/rootfs 、 /var/lib/docker 、および/var/lib/kubeletをマりントするこずでこの問題を解決できたした。 最終的なマりントは次のようになりたす

      -v /:/rootfs:ro,shared \
      -v /sys:/sys:ro \
      -v /dev:/dev:rw \
      -v /var/log:/var/log:rw \
      -v /run/calico/:/run/calico/:rw \
      -v /run/docker/:/run/docker/:rw \
      -v /run/docker.sock:/run/docker.sock:rw \
      -v /usr/lib/os-release:/etc/os-release \
      -v /usr/share/ca-certificates/:/etc/ssl/certs \
      -v /var/lib/docker/:/var/lib/docker:rw,shared \
      -v /var/lib/kubelet/:/var/lib/kubelet:rw,shared \
      -v /etc/kubernetes/ssl/:/etc/kubernetes/ssl/ \
      -v /etc/kubernetes/config/:/etc/kubernetes/config/ \
      -v /etc/cni/net.d/:/etc/cni/net.d/ \
      -v /opt/cni/bin/:/opt/cni/bin/ \

詳现に぀いおは。 これは問題を適切に解決したせん。すべおのバむンドマりントに぀いお、kubeletコンテナ内に3぀のマりント2぀の寄生虫がありたす。 ただし、少なくずも共有マりントを䜿甚するず、ワンショットで簡単にアンマりントできたす。

CoreOSにはこの問題はありたせん。 kubeletコンテナにはdockerではなくrktを䜿甚するためです。 kubeletがDockerで実行され、kubelet continer内のすべおのマりントが/var/lib/docker/overlay/...ず/rootfs提案される堎合、バむンドマりントボリュヌムごずに2぀の寄生マりントがありたす。

  • /rootfs/var/lib/kubelet/<mount> /rootfsから1぀
  • /var/lib/docker/overlay/.../rootfs/var/lib/kubelet/<mount> /var/lib/dockerから1぀
-v /dev:/dev:rw 
-v /etc/cni:/etc/cni:ro 
-v /opt/cni:/opt/cni:ro 
-v /etc/ssl:/etc/ssl:ro 
-v /etc/resolv.conf:/etc/resolv.conf 
-v /etc/pki/tls:/etc/pki/tls:ro 
-v /etc/pki/ca-trust:/etc/pki/ca-trust:ro
-v /sys:/sys:ro 
-v /var/lib/docker:/var/lib/docker:rw 
-v /var/log:/var/log:rw
-v /var/lib/kubelet:/var/lib/kubelet:shared 
-v /var/lib/cni:/var/lib/cni:shared 
-v /var/run:/var/run:rw 
-v /www:/www:rw 
-v /etc/kubernetes:/etc/kubernetes:ro 
-v /etc/os-release:/etc/os-release:ro 
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro

Azure䞊のKubernetes1.8.1でも同じ問題が発生したす。デプロむが倉曎され、新しいポッドが開始された埌、叀いポッドが終了したせん。

IBMCloudのKubernetes1.8.2でも同じ問題が発生したす。 新しいポッドが開始された埌、叀いポッドは終了し続けたす。

kubectlバヌゞョン
Server Version: version.Info{Major:"1", Minor:"8+", GitVersion:"v1.8.2-1+d150e4525193f1", GitCommit:"d150e4525193f1c79569c04efc14599d7deb5f3e", GitTreeState:"clean", BuildDate:"2017-10-27T08:15:17Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

kubectl delete pod xxx --nowずkubectl delete pod foo --grace-period=0 --forceを䜿甚したしたが無駄になりたした。

根本原因が同じである堎合䞍適切に提案されたマりント、これはディストリビュヌション固有のバグimoです。

IBMクラりドでkubeletrunを実行する方法を説明しおください。 systemdナニット --containerizedフラグはありたすか

--containerizedフラグをfalseに蚭定しお実行されたす。

systemctl status kubelet.service kubelet.service - Kubernetes Kubelet Loaded: loaded (/lib/systemd/system/kubelet.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2017-11-19 21:48:48 UTC; 4 days ago

-コンテナ化されたフラグいいえ

わかりたした。詳现が必芁です。䞊蚘のコメントをご芧くださいhttps://github.com/kubernetes/kubernetes/issues/51835#issuecomment-333090349

たた、 /lib/systemd/system/kubelet.service内容を衚瀺しおください。たた、 /etc/systemd/system kubeletに぀いお䜕かあれば、共有しおください。

特に、kubeletがdockerで実行されおいる堎合、すべおのバむンドマりント-vを確認したいず思いたす。

今日、説明したものず同じ問題が発生したした。お客様のシステムの1぀にあるポッドが、数日間終了状態でスタックしおいたした。 たた、「゚ラヌボリュヌムに察しおUnmountVolume.TearDownが倱敗したした」に関する゚ラヌが発生し、スタックしたポッドごずに「デバむスたたはリ゜ヌスがビゞヌです」が繰り返されおいたした。

私たちの堎合、このmobyの問題でカバヌされおいるRHEL / Centos 7.4ベヌスのシステムのdockerに問題があるようです https  https// github .com / moby / moby / pull / 34886 / files

私たちにずっおは、sysctlオプションfs.may_detach_mounts = 1を数分以内に蚭定するず、すべおの終了ポッドがクリヌンアップされたした。

私もこの問題に盎面しおいたすポッドは1.8.3で終了状態でスタックしたした。

ノヌドからの関連するkubeletログ

Nov 28 22:48:51 <my-node> kubelet[1010]: I1128 22:48:51.616749    1010 reconciler.go:186] operationExecutor.UnmountVolume started for volume "nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw" (UniqueName: "kubernetes.io/nfs/58dc413c-d4d1-11e7-870d-3c970e298d91-nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw") pod "58dc413c-d4d1-11e7-870d-3c970e298d91" (UID: "58dc413c-d4d1-11e7-870d-3c970e298d91")
Nov 28 22:48:51 <my-node> kubelet[1010]: W1128 22:48:51.616762    1010 util.go:112] Warning: "/var/lib/kubelet/pods/58dc413c-d4d1-11e7-870d-3c970e298d91/volumes/kubernetes.io~nfs/nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw" is not a mountpoint, deleting
Nov 28 22:48:51 <my-node> kubelet[1010]: E1128 22:48:51.616828    1010 nestedpendingoperations.go:264] Operation for "\"kubernetes.io/nfs/58dc413c-d4d1-11e7-870d-3c970e298d91-nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw\" (\"58dc413c-d4d1-11e7-870d-3c970e298d91\")" failed. No retries permitted until 2017-11-28 22:48:52.616806562 -0800 PST (durationBeforeRetry 1s). Error: UnmountVolume.TearDown failed for volume "nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw" (UniqueName: "kubernetes.io/nfs/58dc413c-d4d1-11e7-870d-3c970e298d91-nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw") pod "58dc413c-d4d1-11e7-870d-3c970e298d91" (UID: "58dc413c-d4d1-11e7-870d-3c970e298d91") : remove /var/lib/kubelet/pods/58dc413c-d4d1-11e7-870d-3c970e298d91/volumes/kubernetes.io~nfs/nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw: directory not empty
Nov 28 22:48:51 <my-node> kubelet[1010]: W1128 22:48:51.673774    1010 docker_sandbox.go:343] failed to read pod IP from plugin/docker: NetworkPlugin cni failed on the status hook for pod "<pod>": CNI failed to retrieve network namespace path: Cannot find network namespace for the terminated container "f58ab11527aef5133bdb320349fe14fd94211aa0d35a1da006aa003a78ce0653"

Kubeletは、Ubuntu 16.04でsystemdナニットコンテナヌ内ではないずしお実行されおいたす。
ご芧のずおり、NFSサヌバヌぞのマりントがあり、kubeletはこのディレクトリをマりントされおいないず芋なしおいるため、どういうわけかマりントディレクトリを削陀しようずしたした。

ポッドからのボリュヌム仕様

volumes:
  - name: nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw
    nfs:
      path: /<path>
      server: <IP>
  - name: default-token-rzqtt
    secret:
      defaultMode: 420
      secretName: default-token-rzqtt

UPD 1.6.6でも以前にこの問題に盎面したした

Azureで同じこずを䜓隓したす。

NAME                        READY     STATUS        RESTARTS   AGE       IP             NODE
busybox2-7db6d5d795-fl6h9   0/1       Terminating   25         1d        10.200.1.136   worker-1
busybox3-69d4f5b66c-2lcs6   0/1       Terminating   26         1d        <none>         worker-2
busybox7-797cc644bc-n5sv2   0/1       Terminating   26         1d        <none>         worker-2
busybox8-c8f95d979-8lk27    0/1       Terminating   25         1d        10.200.1.137   worker-1
nginx-56ccc998dd-hvpng      0/1       Terminating   0          2h        <none>         worker-1
nginx-56ccc998dd-nnsvj      0/1       Terminating   0          2h        <none>         worker-2
nginx-56ccc998dd-rsrvq      0/1       Terminating   0          2h        <none>         worker-1

kubectlバヌゞョン

Client Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:57:57Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"6e937839ac04a38cac63e6a7a306c5d035fe7b0a", GitTreeState:"clean", BuildDate:"2017-09-28T22:46:41Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

ポッドnginx-56ccc998dd-nnsvjに぀いお説明したす

Name:                      nginx-56ccc998dd-nnsvj
Namespace:                 default
Node:                      worker-2/10.240.0.22
Start Time:                Wed, 29 Nov 2017 13:33:39 +0400
Labels:                    pod-template-hash=1277755488
                           run=nginx
Annotations:               kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"default","name":"nginx-56ccc998dd","uid":"614f71db-d4e8-11e7-9c45-000d3a25e3c0","...
Status:                    Terminating (expires Wed, 29 Nov 2017 15:13:44 +0400)
Termination Grace Period:  30s
IP:
Created By:                ReplicaSet/nginx-56ccc998dd
Controlled By:             ReplicaSet/nginx-56ccc998dd
Containers:
  nginx:
    Container ID:   containerd://d00709dfb00ed5ac99dcd092978e44fc018f44cca5229307c37d11c1a4fe3f07
    Image:          nginx:1.12
    Image ID:       docker.io/library/nginx<strong i="12">@sha256</strong>:5269659b61c4f19a3528a9c22f9fa8f4003e186d6cb528d21e411578d1e16bdb
    Port:           <none>
    State:          Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-jm7h5 (ro)
Conditions:
  Type           Status
  Initialized    True
  Ready          False
  PodScheduled   True
Volumes:
  default-token-jm7h5:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-jm7h5
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     <none>
Events:
  Type    Reason   Age   From               Message
  ----    ------   ----  ----               -------
  Normal  Killing  41m   kubelet, worker-2  Killing container with id containerd://nginx:Need to kill Pod

sudo journalctl -u kubelet | grep "nginx-56ccc998dd-nnsvj"

Nov 29 09:33:39 worker-2 kubelet[64794]: I1129 09:33:39.124779   64794 kubelet.go:1837] SyncLoop (ADD, "api"): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)"
Nov 29 09:33:39 worker-2 kubelet[64794]: I1129 09:33:39.160444   64794 reconciler.go:212] operationExecutor.VerifyControllerAttachedVolume started for volume "default-token-jm7h5" (UniqueName: "kubernetes.io/secret/6171e2a7-d4e8-11e7-9c45-000d3a25e3c0-default-token-jm7h5") pod "nginx-56ccc998dd-nnsvj" (UID: "6171e2a7-d4e8-11e7-9c45-000d3a25e3c0")
Nov 29 09:33:39 worker-2 kubelet[64794]: I1129 09:33:39.261128   64794 reconciler.go:257] operationExecutor.MountVolume started for volume "default-token-jm7h5" (UniqueName: "kubernetes.io/secret/6171e2a7-d4e8-11e7-9c45-000d3a25e3c0-default-token-jm7h5") pod "nginx-56ccc998dd-nnsvj" (UID: "6171e2a7-d4e8-11e7-9c45-000d3a25e3c0")
Nov 29 09:33:39 worker-2 kubelet[64794]: I1129 09:33:39.286574   64794 operation_generator.go:484] MountVolume.SetUp succeeded for volume "default-token-jm7h5" (UniqueName: "kubernetes.io/secret/6171e2a7-d4e8-11e7-9c45-000d3a25e3c0-default-token-jm7h5") pod "nginx-56ccc998dd-nnsvj" (UID: "6171e2a7-d4e8-11e7-9c45-000d3a25e3c0")
Nov 29 09:33:39 worker-2 kubelet[64794]: I1129 09:33:39.431485   64794 kuberuntime_manager.go:370] No sandbox for pod "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)" can be found. Need to start a new one
Nov 29 09:33:42 worker-2 kubelet[64794]: I1129 09:33:42.449592   64794 kubelet.go:1871] SyncLoop (PLEG): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)", event: &pleg.PodLifecycleEvent{ID:"6171e2a7-d4e8-11e7-9c45-000d3a25e3c0", Type:"ContainerStarted", Data:"0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af"}
Nov 29 09:33:47 worker-2 kubelet[64794]: I1129 09:33:47.637988   64794 kubelet.go:1871] SyncLoop (PLEG): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)", event: &pleg.PodLifecycleEvent{ID:"6171e2a7-d4e8-11e7-9c45-000d3a25e3c0", Type:"ContainerStarted", Data:"d00709dfb00ed5ac99dcd092978e44fc018f44cca5229307c37d11c1a4fe3f07"}
Nov 29 11:13:14 worker-2 kubelet[64794]: I1129 11:13:14.468137   64794 kubelet.go:1853] SyncLoop (DELETE, "api"): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)"
Nov 29 11:13:14 worker-2 kubelet[64794]: E1129 11:13:14.711891   64794 kuberuntime_manager.go:840] PodSandboxStatus of sandbox "0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af" for pod "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)" error: rpc error: code = Unknown desc = failed to get task status for sandbox container "0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af": process id 0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af not found: not found
Nov 29 11:13:14 worker-2 kubelet[64794]: E1129 11:13:14.711933   64794 generic.go:241] PLEG: Ignoring events for pod nginx-56ccc998dd-nnsvj/default: rpc error: code = Unknown desc = failed to get task status for sandbox container "0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af": process id 0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af not found: not found
Nov 29 11:13:15 worker-2 kubelet[64794]: I1129 11:13:15.788179   64794 kubelet.go:1871] SyncLoop (PLEG): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)", event: &pleg.PodLifecycleEvent{ID:"6171e2a7-d4e8-11e7-9c45-000d3a25e3c0", Type:"ContainerDied", Data:"d00709dfb00ed5ac99dcd092978e44fc018f44cca5229307c37d11c1a4fe3f07"}
Nov 29 11:13:15 worker-2 kubelet[64794]: I1129 11:13:15.788221   64794 kubelet.go:1871] SyncLoop (PLEG): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)", event: &pleg.PodLifecycleEvent{ID:"6171e2a7-d4e8-11e7-9c45-000d3a25e3c0", Type:"ContainerDied", Data:"0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af"}
Nov 29 11:46:45 worker-2 kubelet[42337]: I1129 11:46:45.384411   42337 kubelet.go:1837] SyncLoop (ADD, "api"): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0), kubernetes-dashboard-7486b894c6-2xmd5_kube-system(e55ca22c-d416-11e7-9c45-000d3a25e3c0), busybox3-69d4f5b66c-2lcs6_default(adb05024-d412-11e7-9c45-000d3a25e3c0), kube-dns-7797cb8758-zblzt_kube-system(e925cbec-d40b-11e7-9c45-000d3a25e3c0), busybox7-797cc644bc-n5sv2_default(b7135a8f-d412-11e7-9c45-000d3a25e3c0)"
Nov 29 11:46:45 worker-2 kubelet[42337]: I1129 11:46:45.387169   42337 kubelet.go:1871] SyncLoop (PLEG): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)", event: &pleg.PodLifecycleEvent{ID:"6171e2a7-d4e8-11e7-9c45-000d3a25e3c0", Type:"ContainerDied", Data:"d00709dfb00ed5ac99dcd092978e44fc018f44cca5229307c37d11c1a4fe3f07"}
Nov 29 11:46:45 worker-2 kubelet[42337]: I1129 11:46:45.387245   42337 kubelet.go:1871] SyncLoop (PLEG): "nginx-56ccc998dd-nnsvj_default(6171e2a7-d4e8-11e7-9c45-000d3a25e3c0)", event: &pleg.PodLifecycleEvent{ID:"6171e2a7-d4e8-11e7-9c45-000d3a25e3c0", Type:"ContainerDied", Data:"0f539a84b96814651bb199e91f71157bc90c6e0c26340001c3f1c9f7bd9165af"}

cat /etc/systemd/system/kubelet.service

[Unit]
Description=Kubernetes Kubelet
Documentation=https://github.com/GoogleCloudPlatform/kubernetes
After=cri-containerd.service
Requires=cri-containerd.service

[Service]
ExecStart=/usr/local/bin/kubelet \
  --allow-privileged=true \
  --anonymous-auth=false \
  --authorization-mode=Webhook \
  --client-ca-file=/var/lib/kubernetes/ca.pem \
  --cluster-dns=10.32.0.10 \
  --cluster-domain=cluster.local \
  --container-runtime=remote \
  --container-runtime-endpoint=unix:///var/run/cri-containerd.sock \
  --image-pull-progress-deadline=2m \
  --kubeconfig=/var/lib/kubelet/kubeconfig \
  --network-plugin=cni \
  --pod-cidr=10.200.2.0/24 \
  --register-node=true \
  --require-kubeconfig \
  --runtime-request-timeout=15m \
  --tls-cert-file=/var/lib/kubelet/worker-2.pem \
  --tls-private-key-file=/var/lib/kubelet/worker-2-key.pem \
  --v=2
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

問題に関連するさたざたなバグがあるようです。 1.8.3クラスタヌには䞡方がありたす。

  1. https://github.com/moby/moby/issues/31768 。これはDockerのバグです。 docker-ce = 17.09.0〜ce-0〜ubuntuで再珟可胜。
  2. 2぀目はもっず興味深いもので、おそらくkubelet内の競合状態に関連しおいたす。
    コンテナマりントで指定されたサブパスを持぀NFS氞続ボリュヌムを䜿甚したポッドがたくさんありたすが、展開を削陀した埌、䜕らかの理由でそれらの䞀郚が終了状態でスタックしおいたす。 そしお、syslogにはたくさんのメッセヌゞがありたす
 Error: UnmountVolume.TearDown failed for volume "nfs-test" (UniqueName: "kubernetes.io/nfs/39dada78-d9cc-11e7-870d-3c970e298d91-nfs-test") pod "39dada78-d9cc-11e7-870d-3c970e298d91" (UID: "39dada78-d9cc-11e7-870d-3c970e298d91") : remove /var/lib/kubelet/pods/39dada78-d9cc-11e7-870d-3c970e298d91/volumes/kubernetes.io~nfs/nfs-test: directory not empty

そしお、それは本圓のディレクトリが空ではなく、マりント解陀されおおり、「サブパス」ディレクトリが含たれおいたす
そのような振る舞いの説明の1぀

  1. P1ポッドの䜜成たたはポッドの同期を開始したす
  2. P1マりント/再マりントを行うためにボリュヌムマネヌゞャヌに信号を送信したす。
  3. P1マりントが完了するのを埅っおいたす。
  4. P1マりント成功信号を受信したす実際には、すべおのボリュヌムがマりントされおいるこずを確認しおください
  5. どういうわけかボリュヌムがアンマりントになりたす。 別の削陀プロセスがそれをアンマりントするか、OSのバグ、たたはガベヌゞコレクタヌアクションである可胜性がありたす。
  6. P1コンテナの䜜成を続行し、マりントポむントにサブディレクトリを䜜成したすすでにマりント解陀されおいたす。
  7. マりントディレクトリが空ではないため、前のステップのポッドをすべお削陀するこずはできたせん。

その他のログ

Dec  5 15:57:08 ASRock kubelet[2941]: I1205 15:57:08.333877    2941 reconciler.go:212] operationExecutor.VerifyControllerAttachedVolume started for volume "nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw" (UniqueName: "kubernetes.io/nfs/005b4bb9-da18-11e7-870d-3c970e298d91-nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw") pod "test-df5d868fc-sclj5" (UID: "005b4bb9-da18-11e7-870d-3c970e298d91")
Dec  5 15:57:08 ASRock systemd[1]: Started Kubernetes transient mount for /var/lib/kubelet/pods/005b4bb9-da18-11e7-870d-3c970e298d91/volumes/kubernetes.io~nfs/nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw.
Dec  5 15:57:12 ASRock kubelet[2941]: I1205 15:57:12.266404    2941 reconciler.go:186] operationExecutor.UnmountVolume started for volume "nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw" (UniqueName: "kubernetes.io/nfs/005b4bb9-da18-11e7-870d-3c970e298d91-nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw") pod "005b4bb9-da18-11e7-870d-3c970e298d91" (UID: "005b4bb9-da18-11e7-870d-3c970e298d91")
Dec  5 15:57:12 ASRock kubelet[2941]: E1205 15:57:12.387179    2941 nestedpendingoperations.go:264] Operation for "\"kubernetes.io/nfs/005b4bb9-da18-11e7-870d-3c970e298d91-nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw\" (\"005b4bb9-da18-11e7-870d-3c970e298d91\")" failed. No retries permitted until 2017-12-05 15:57:12.887062059 -0800 PST (durationBeforeRetry 500ms). Error: UnmountVolume.TearDown failed for volume "nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw" (UniqueName: "kubernetes.io/nfs/005b4bb9-da18-11e7-870d-3c970e298d91-nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw") pod "005b4bb9-da18-11e7-870d-3c970e298d91" (UID: "005b4bb9-da18-11e7-870d-3c970e298d91") : remove /var/lib/kubelet/pods/005b4bb9-da18-11e7-870d-3c970e298d91/volumes/kubernetes.io~nfs/nfs-mtkylje2oc4xlju1ls9rdwjlcmxhyi1ydw: directory not empty

どういうわけか、いく぀かのクリヌンアッププロセスdswp * DesiredStateOfWorldPopulatorfindAndRemoveDeletedPodsは、ポッドが初期化状態にあるずきにボリュヌムのアンマりントを開始したす。

Dec  6 14:40:20 ASRock kubelet[15875]: I1206 14:40:20.620655   15875 kubelet_pods.go:886] Pod "test-84cd5ff8dc-kpv7b_4281-kuberlab-test(6e99a8df-dad6-11e7-b35c-3c970e298d91)" is terminated, but some volumes have not been cleaned up
Dec  6 14:40:20 ASRock kubelet[15875]: I1206 14:40:20.686449   15875 kubelet_pods.go:1730] Orphaned pod "6e99a8df-dad6-11e7-b35c-3c970e298d91" found, but volumes not yet removed
Dec  6 14:40:20 ASRock kubelet[15875]: I1206 14:40:20.790719   15875 kuberuntime_container.go:100] Generating ref for container test: &v1.ObjectReference{Kind:"Pod", Namespace:"4281-kuberlab-test", Name:"test-84cd5ff8dc-kpv7b", UID:"6e99a8df-dad6-11e7-b35c-3c970e298d91", APIVersion:"v1", ResourceVersion:"2639758", FieldPath:"spec.containers{test}"}
Dec  6 14:40:20 ASRock kubelet[15875]: I1206 14:40:20.796643   15875 docker_service.go:407] Setting cgroup parent to: "/kubepods/burstable/pod6e99a8df-dad6-11e7-b35c-3c970e298d91"

ポッドの初期化ず削陀が同時に実行されおいたす。
バグを繰り返すには、玄10個のデプロむメント単䞀のミニオンでテスト枈みを開始しおすぐに削陀/曎新する必芁がありたす。おそらく、マりント操䜜はそれほど高速ではないはずです。

GKEの同じバグの圱響を受けたす。 この問題の既知の回避策はありたすか --nowは機胜したせん。

このバグは修正されおいたすが、kubernetesチヌムによっおマヌゞされるかどうかはわかりたせん。

@dreykこのバグに぀いお発芋したこずず、ストレヌゞチヌムが確認できるように修正したこずに぀いお、詳现を教えおください。 ありがずう

@ gm42 GKEでこの問題を手動で

  1. スタックしたポッドがスケゞュヌルされおいたノヌドにSSHで接続する
  2. docker ps | grep {pod name}を実行しおDockerコンテナIDを取埗する
  3. docker rm -f {container id}

GKEでは、ノヌドのアップグレヌドがすぐに圹立ちたした。

kubeadmを䜿甚しお蚭定されたロヌカルクラスタヌに同じバグがありたす。

ノヌドのdocker ps | grep {pod name}には䜕も衚瀺されず、ポッドは終了状態でスタックしおいたす。 珟圚、この状態のポッドが2぀ありたす。

ポッドを匷制的に削陀するにはどうすればよいですか たたは、ポッドの名前を倉曎したすか 同じ名前で別のポッドを起動するこずはできたせん。 ありがずう

1.7.2クラスタヌで理由を芋぀けたした。
別の監芖プログラムがルヌトパスをマりントするため/
ルヌトパスには/var/lib/kubelet/pods/ddc66e10-0711-11e8-b905-6c92bf70b164/volumes/kubernetes.io~secret/default-token-bnttfが含たれおいたす
したがっお、kubeletがポッドを削陀しおも、ボリュヌムを解攟できない堎合、メッセヌゞは次のようになりたす。
デバむスたたはリ゜ヌスがビゞヌ

手順
1sudo journalctl -u kubelet
このシェルは、゚ラヌメッセヌゞを芋぀けるのに圹立ちたす。
2sudodocker怜査
io.kubernetes.pod.uidを芋぀けたす "" ddc66e10-0711-11e8-b905-6c92bf70b164 "
そしお
HostConfig-> Bindings-> "/var/lib/kubelet/pods/ddc66e10-0711-11e8-b905-6c92bf70b164/volumes/kubernetes.io~secret/default-token-bnttf:/var/run/secrets/kubernetes .io / serviceaccountro "

3grep -l ddc66e10-0711-11e8-b905-6c92bf70b164 / proc / * / mountinfo

/ proc / 90225 / mountinfo
5ps aux | grep 90225
ルヌト902251.3 0.0 2837164 42580 Ssl Feb01 72:40 ./monitor_program

1.7.2にも同じバグがありたす

operationExecutor.UnmountVolumeがボリュヌム "default-token-bnttf"䞀意の名前 "kubernetes.io/secret/ddc66e10-0711-11e8-b905-6c92bf70b164-default-token-bnttf"ポッド "ddc66e10-0711-11e8-b905-に察しお開始されたした6c92bf70b164 "kubelet [94382]E0205 113550.509169 94382nestedpendingoperations.go262]" \ "kubernetes.io/secret/ddc66e10-0711-11e8-b905-6c92bf70b164-default-token-bnttf \"\ 「ddc66e10-0711-11e8-b905-6c92bf70b164 \ "」が倱敗したした。 2018-02-05 113752.509148953 +0800 CSTdurationBeforeRetry 2m2sたで再詊行は蚱可されおいたせん。 ゚ラヌボリュヌム "default-token-bnttf"のUnmountVolume.TearDownが倱敗したした䞀意の名前 "kubernetes.io/secret/ddc66e10-0711-11e8-b905-6c92bf70b164-default-token-bnttf"ポッド "ddc66e10-0711-11e8- b905-6c92bf70b164 "UID" ddc66e10-0711-11e8-b905-6c92bf70b164 "/ var / lib / kubelet / pods / ddc66e10-0711-11e8-b905-6c92bf70b164 / volumes / kubernetes.io〜secret / default-を削陀token-bnttfデバむスたたはリ゜ヌスがビゞヌです

Dockerサヌビスを再起動するずロックが解陀され、ポッドは数分以内に削陀されたす。 これはバグです。 Docker17.03の䜿甚

Azureの同じ問題、Kube 1.8.7

数分前の1.8.9でも私たちに起こりたした-誰かがこれを解決するこずを探しおいたすか dockerを再起動するず圹立ちたすが、少しばかげおいたす。

これは、GKEの最新の1.9.4リリヌスで私によく起こっおいたす。 今のずころこれを行っおいたす

kubectl delete pod NAME --grace-period=0 --force

ここGKE1.9.4-gke.1でも同じ問題
ボリュヌムマりントに関連しおいるようです。
これは、次のように蚭定されたファむルビヌトで毎回発生したす。
https://github.com/elastic/beats/tree/master/deploy/kubernetes/filebeat

Kubeletログはこれを瀺しおいたす

Mar 23 19:44:16 gke-testing-c2m4-1-97b57429-40jp kubelet[1361]: I0323 19:44:16.380949    1361 reconciler.go:191] operationExecutor.UnmountVolume started for volume "config" (UniqueName: "kubernetes.io/configmap/9a5f1519-2d39-11e8-bec8-42010a8400f3-config") pod "9a5f1519-2d39-11e8-bec8-42010a8400f3" (UID: "9a5f1519-2d39-11e8-bec8-42010a8400f3")
Mar 23 19:44:16 gke-testing-c2m4-1-97b57429-40jp kubelet[1361]: E0323 19:44:16.382032    1361 nestedpendingoperations.go:263] Operation for "\"kubernetes.io/configmap/9a5f1519-2d39-11e8-bec8-42010a8400f3-config\" (\"9a5f1519-2d39-11e8-bec8-42010a8400f3\")" failed. No retries permitted until 2018-03-23 19:44:32.381982706 +0000 UTC m=+176292.263058344 (durationBeforeRetry 16s). Error: "error cleaning subPath mounts for volume \"config\" (UniqueName: \"kubernetes.io/configmap/9a5f1519-2d39-11e8-bec8-42010a8400f3-config\") pod \"9a5f1519-2d39-11e8-bec8-42010a8400f3\" (UID: \"9a5f1519-2d39-11e8-bec8-42010a8400f3\") : error checking /var/lib/kubelet/pods/9a5f1519-2d39-11e8-bec8-42010a8400f3/volume-subpaths/config/filebeat/0 for mount: lstat /var/lib/kubelet/pods/9a5f1519-2d39-11e8-bec8-42010a8400f3/volume-ubpaths/config/filebeat/0/..: not a directory"

kubectl delete pod NAME --grace-period=0 --force
うたくいくようです。
kubeletの再起動も動䜜したす。

ここGKE1.9.4-gke.1でも同じ問題
特定のファむルビヌトデヌモンセットでのみ発生したすが、すべおのノヌドを再䜜成しおも効果はなく、発生し続けたす。

@TapppiのようなGKE1.9.4 -gke.1でもこの問題が発生したす-ポッドはホストノヌドのdockerデヌモンから削陀されたしたが、kubernetesではTERMINATINGでスタックしおいたした

Events:
  Type    Reason                 Age        From                                                      Message
  ----    ------                 ----       ----                                                      -------
  Normal  SuccessfulMountVolume  43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  MountVolume.SetUp succeeded for volume "data"
  Normal  SuccessfulMountVolume  43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  MountVolume.SetUp succeeded for volume "varlibdockercontainers"
  Normal  SuccessfulMountVolume  43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  MountVolume.SetUp succeeded for volume "prospectors"
  Normal  SuccessfulMountVolume  43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  MountVolume.SetUp succeeded for volume "config"
  Normal  SuccessfulMountVolume  43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  MountVolume.SetUp succeeded for volume "filebeat-token-v74k6"
  Normal  Pulled                 43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  Container image "docker.elastic.co/beats/filebeat:6.1.2" already present on machine
  Normal  Created                43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  Created container
  Normal  Started                43m        kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  Started container
  Normal  Killing                <invalid>  kubelet, gke-delivery-platform-custom-pool-c9b9fe86-fgvh  Killing container with id docker://filebeat:Need to kill Pod
/Users/karl.stoney/git/autotrader/terraform-gcp git/master

私たちにずっお、ちょっず前に䜕か新しいこずが起こりたした。 kubectl delete pod NAME --grace-period=0 --forceを䜿甚しおスタックしたポッドを匷制的に削陀したずき、このポッドがあったノヌドが異垞になりたした。 docker 17-12CEを実行しおおり、そのボックスでdocker deamonを再起動するず、ノヌドのコルクが解陀されたした。

1.9.4-gke.1でこの問題が発生しおいる堎合は、 https//github.com/kubernetes/kubernetes/issues/61178が原因である可胜性があり@zackify @ nodefactory-bk @Tapppi @Stono

IIUC、このバグの元の問題は、コンテナ化されたkubeletの構成に関連しおいたすが、これは異なりたす。

ずころで、バヌゞョンv1.9.3-gke.0新しいノヌドプヌルを䜜成するこずは、これに察する回避策v1.9.5はただgkeで展開されおおらず、すでにむヌスタヌであるためです。

これがバヌゞョン1.9.3以降で修正されおいるこずを誰かが確認できたすか この動䜜のために深刻な問題が発生し、これが発生するたびにdockerを再起動するのは非垞に困難です。

私にずっおは1.9.6に修正されたした

2018幎4月4日氎曜日、午前11:43 sokoow、 notifications @ github.comは次のように曞いおいたす。

これがバヌゞョン1.9.3以降で修正されおいるこずを誰かが確認できたすか 我々は持っおいたす
この動䜜のためにいく぀かの深刻な問題が発生し、それぞれDockerを再起動したす
これが発生する時間はsoost00pidです。

—
あなたが蚀及されたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kubernetes/kubernetes/issues/51835#issuecomment-378557636 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/ABaviW5yfj64zVjBYFGUToe2MH3dKwpTks5tlKPNgaJpZM4PKs9r
。

さお、 @ Stonoに感謝し

#!/bin/bash /usr/bin/docker run \ --net=host \ --pid=host \ --privileged \ --name=kubelet \ --restart=on-failure:5 \ --memory={{ kubelet_memory_limit|regex_replace('Mi', 'M') }} \ --cpu-shares={{ kubelet_cpu_limit|regex_replace('m', '') }} \ -v /dev:/dev:rw \ -v /etc/cni:/etc/cni:ro \ -v /opt/cni:/opt/cni:ro \ -v /etc/ssl:/etc/ssl:ro \ -v /etc/resolv.conf:/etc/resolv.conf \ {% for dir in ssl_ca_dirs -%} -v {{ dir }}:{{ dir }}:ro \ {% endfor -%} -v /:/rootfs:ro,shared \ -v /sys:/sys:ro \ -v /var/lib/docker:/var/lib/docker:rw,shared \ -v /var/log:/var/log:rw,shared \ -v /var/lib/kubelet:/var/lib/kubelet:rw,shared \ -v /var/lib/cni:/var/lib/cni:rw,shared \ -v /var/run:/var/run:rw,shared \ -v /etc/kubernetes:/etc/kubernetes:ro \ -v /etc/os-release:/etc/os-release:ro \ {{ hyperkube_image_repo }}:{{ hyperkube_image_tag}} \ ./hyperkube kubelet --containerized \ "$@"

それは倧䞈倫ですか 他の誰かが同様のものを䜿甚しおいたすか

私はあたりにも早く話したした。

  Type    Reason   Age   From                                                      Message                                                                                                             [53/7752]
  ----    ------   ----  ----                                                      -------
  Normal  Killing  4m    kubelet, gke-delivery-platform-custom-pool-560b2b96-gcmb  Killing container with id docker://filebeat:Need to kill Pod

残忍な方法でそれを砎壊しなければなりたせんでした。

❯ kks delete pod filebeat-x56v8 --force --grace-period 0
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.
pod "filebeat-x56v8" deleted

@Stonoどの

AzureAKS管理察象クラスタヌの1.9.6でもこの問題が発生したす。

珟時点でこの回避策を䜿甚しお、スタックしおいるすべおのポッドを遞択しお削陀したす開発/スクラッチクラスタヌにポッドを終了するスワスができおしたうため

kubectl get pods | awk '$3=="Terminating" {print "kubectl delete pod " $1 " --grace-period=0 --force"}' | xargs -0 bash -c

5月のAzureクラスタヌずAWSクラスタヌの䞡方でこれに遭遇したした-回避策はMikeElliotによっお提䟛されたした

https://jira.onap.org/browse/OOM-946

ubuntu @ ip-10-0-0-22 〜$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system heapster-76b8cd7b5-4r88h1 / 1実行䞭025d
kube-system kube-dns-5d7b4487c9-s4rsg3 / 3実行䞭025d
kube-system kubernetes-dashboard-f9577fffd-298r61 / 1実行䞭025d
kube-システム監芖-grafana-997796fcf-wtz7n1 / 1実行䞭025d
kube-システム監芖-influxdb-56fdcd96b-2phd21 / 1実行䞭025d
kube-system tiller-deploy-cc96d4f6b-jzqmz1 / 1実行䞭025d
onap dev-sms-857f6dbd87-pds580 / 1終了03h
onap dev-vfc-zte-sdnc-driver-5b6c7cbd6b-5vdvp0 / 1終了03h
ubuntu @ ip-10-0-0-22 〜$ kubectl delete pod dev-vfc-zte-sdnc-driver-5b6c7cbd6b-5vdvp -n onap --grace-period = 0 --force
譊告即時削陀は、実行䞭のリ゜ヌスが終了したこずの確認を埅ちたせん。 リ゜ヌスはクラスタヌ䞊で無期限に実行され続ける可胜性がありたす。
ポッド「dev-vfc-zte-sdnc-driver-5b6c7cbd6b-5vdvp」が削陀されたした
ubuntu @ ip-10-0-0-22 〜$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system heapster-76b8cd7b5-4r88h1 / 1実行䞭025d
kube-system kube-dns-5d7b4487c9-s4rsg3 / 3実行䞭025d
kube-system kubernetes-dashboard-f9577fffd-298r61 / 1実行䞭025d
kube-システム監芖-grafana-997796fcf-wtz7n1 / 1実行䞭025d
kube-システム監芖-influxdb-56fdcd96b-2phd21 / 1実行䞭025d
kube-system tiller-deploy-cc96d4f6b-jzqmz1 / 1実行䞭025d
onap dev-sms-857f6dbd87-pds580 / 1終了03h
ubuntu @ ip-10-0-0-22 〜$ kubectl delete pod dev-sms-857f6dbd87-pds58 -n onap --grace-period = 0 --force
譊告即時削陀は、実行䞭のリ゜ヌスが終了したこずの確認を埅ちたせん。 リ゜ヌスはクラスタヌ䞊で無期限に実行され続ける可胜性がありたす。
ポッド「dev-sms-857f6dbd87-pds58」が削陀されたした
ubuntu @ ip-10-0-0-22 〜$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system heapster-76b8cd7b5-4r88h1 / 1実行䞭025d
kube-system kube-dns-5d7b4487c9-s4rsg3 / 3実行䞭025d
kube-system kubernetes-dashboard-f9577fffd-298r61 / 1実行䞭025d
kube-システム監芖-grafana-997796fcf-wtz7n1 / 1実行䞭025d
kube-システム監芖-influxdb-56fdcd96b-2phd21 / 1実行䞭025d
kube-system tiller-deploy-cc96d4f6b-jzqmz1 / 1実行䞭025d

これが同じ問題であるかどうかはわかりたせんが、1.9.3から10.10.1にアップグレヌドしおからこの動䜜に気づき

Apr 23 08:21:11 int-kube-01 kubelet[13018]: I0423 08:21:11.106779   13018 reconciler.go:181] operationExecutor.UnmountVolume started for volume "dev-static" (UniqueName: "kubernetes.io/glusterfs/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f-dev-static") pod "ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f" (UID: "ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f")
Apr 23 08:21:11 int-kube-01 kubelet[13018]: E0423 08:21:11.122027   13018 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/glusterfs/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f-dev-static\" (\"ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f\")" failed. No retries permitted until 2018-04-23 08:23:13.121821027 +1000 AEST m=+408681.605939042 (durationBeforeRetry 2m2s). Error: "UnmountVolume.TearDown failed for volume \"dev-static\" (UniqueName: \"kubernetes.io/glusterfs/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f-dev-static\") pod \"ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f\" (UID: \"ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f\") : Unmount failed: exit status 32\nUnmounting arguments: /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static\nOutput: umount: /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static: target is busy.\n        (In some cases useful info about processes that use\n         the device is found by lsof(8) or fuser(1))\n\n"

lsofは、glusterfsボリュヌムの䞋のディレクトリがただ䜿甚䞭であるこずを実際に瀺しおいたす。

glusterfs  71570                     root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterti  71570  71571              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glustersi  71570  71572              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterme  71570  71573              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glustersp  71570  71574              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glustersp  71570  71575              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71579              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterio  71570  71580              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71581              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71582              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71583              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71584              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71585              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71586              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterep  71570  71587              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterfu  71570  71592              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere
glusterfu  71570  71593              root   10u      DIR              0,264      4096  9380607748984626555 /var/lib/kubelet/pods/ad8fabbe-4449-11e8-b21a-a2bfb3c62d0f/volumes/kubernetes.io~glusterfs/dev-static/subpathhere

これは1.9.3ではすべお問題なかったので、この問題の修正によっおナヌスケヌスが壊れたかのようです:(

@ ross-wこの眲名は他の眲名ずは異なっお芋えたす。 新しい号を開いお、ポッドの仕様も含めおいただけたすか

これらの問題に関する曎新はありたすか
この堎合Kubernetes 1.9.7、docker 17.03、ノヌドがメモリ䞍足になり、ポッドが再スケゞュヌルされた埌、ポッドは終了状態になりたす。 最終的に、kubernetesダッシュボヌドずデプロむメントタブに倚くのゎヌストポッドがあり、4/1ポッドのデプロむメントを確認できたす。
kubeletを再起動するか、名前空間内のすべおのポッドを匷制終了するこずは圹立ちたすが、それは非垞に貧匱な解決策です。

@AdiqqそれはDocker

ノヌドの1぀でjournalctl -u kubelet -fを芋おください。 「コンテナを殺せたせん」のようなメッセヌゞがありたしたgRpc゚ラヌ」これを修正したので、実際のメッセヌゞはありたせん。

これを修正するために、各ノヌトでdockerを再起動したした。 Dockerの起動䞭に、壊れた状態のコンテナヌをクリヌンアップし、この叀いポッドをすべお削陀したす。

昚日1.9.7でこれが発生し、ポッドが終了状態でスタックし、ログに「ポッドを匷制終了する必芁がある」だけだったので、取り陀くには--force --grace-period=0を実行する必芁がありたした。

1.9.7-gke.0でこれも取埗したした。
1.9.6-gke.1では問題はありたせんでした。
しかし、1.9.4ず1.9.5でそれを持っおいたした

動かなくなったポッドにはPVが取り付けられおいたす。

ポッドを再デプロむたたは削陀しおも同じ効果がありたす。
問題のあるノヌドでkubeletを再起動しおも機胜したせんでした。 kubeletが再起動せず、ノヌド党䜓を再起動する必芁がありたした。

この間、PVはすでに他の堎所にマりントされおいるず衚瀺されおいたため、ポッドを他のノヌドでスケゞュヌルするこずはできたせんでした。

@Stono @ nodefactory-bk問題のあるノヌドのkubeletログを芋お、問題を瀺しおいる可胜性のある詳现なログがあるかどうかを確認できたすか

cc @dashpole

1぀のアプリが終了でスタックしたした。
これは1.9.7-gke.1にありたす
秘密が線集されたkubectldescribeポッドは次のずおりです。

Name:                      sharespine-cloud-6b78cbfb8d-xcbh5
Namespace:                 shsp-cloud-dev
Node:                      gke-testing-std4-1-0f83e7c0-qrxg/10.132.0.4
Start Time:                Tue, 22 May 2018 11:14:22 +0200
Labels:                    app=sharespine-cloud
                           pod-template-hash=2634769648
Annotations:               <none>
Status:                    Terminating (expires Wed, 23 May 2018 10:02:01 +0200)
Termination Grace Period:  60s
IP:                        10.40.7.29
Controlled By:             ReplicaSet/sharespine-cloud-6b78cbfb8d
Containers:
  sharespine-cloud:
    Container ID:   docker://4cf402b5dc3ea728fcbff87b57e0ec504093ea3cf7277f6ca83fde726a4bba48
    Image:          ...
    Image ID:       ...
    Ports:          9000/TCP, 9500/TCP
    State:          Running
      Started:      Tue, 22 May 2018 11:16:36 +0200
    Ready:          False
    Restart Count:  0
    Limits:
      memory:  1500M
    Requests:
      cpu:      500m
      memory:   1024M
    Liveness:   http-get http://:9000/ delay=240s timeout=1s period=30s #success=1 #failure=3
    Readiness:  http-get http://:9000/ delay=30s timeout=1s period=10s #success=1 #failure=3
    Environment Variables from:
      sharespine-cloud-secrets  Secret  Optional: false
    Environment:
      APP_NAME:  sharespine-cloud
      APP_ENV:   shsp-cloud-dev (v1:metadata.namespace)
      JAVA_XMS:  128M
      JAVA_XMX:  1024M
    Mounts:
      /home/app/sharespine-cloud-home/ from sharespine-cloud-home (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-x7vzr (ro)
  sharespine-cloud-elker:
    Container ID:   docker://88a5a2bfd6804b5f40534ecdb6953771ac3181cf12df407baa81a34a7215d142
    Image:          ...
    Image ID:       ...
    Port:           <none>
    State:          Running
      Started:      Tue, 22 May 2018 11:16:36 +0200
    Ready:          True
    Restart Count:  0
    Limits:
      memory:  200Mi
    Requests:
      cpu:     10m
      memory:  100Mi
    Environment Variables from:
      sharespine-cloud-secrets  Secret  Optional: false
    Environment:
      APP_NAME:                     sharespine-cloud
      APP_ENV:                      shsp-cloud-dev (v1:metadata.namespace)
      ELASTICSEARCH_LOGBACK_PATH:   /home/app/sharespine-cloud-home/logs/stash/stash.json
      ELASTICSEARCH_LOGBACK_INDEX:  cloud-dev
    Mounts:
      /home/app/sharespine-cloud-home/ from sharespine-cloud-home (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-x7vzr (ro)
Conditions:
  Type           Status
  Initialized    True
  Ready          False
  PodScheduled   True
Volumes:
  sharespine-cloud-home:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  sharespine-cloud-home
    ReadOnly:   false
  default-token-x7vzr:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-x7vzr
    Optional:    false
QoS Class:       Burstable
Node-Selectors:  <none>
Tolerations:     node.kubernetes.io/not-ready:NoExecute for 300s
                 node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason         Age                From                                       Message
  ----     ------         ----               ----                                       -------
  Normal   Killing        20m                kubelet, gke-testing-std4-1-0f83e7c0-qrxg  Killing container with id docker://sharespine-cloud-elker:Need to kill Pod
  Normal   Killing        20m                kubelet, gke-testing-std4-1-0f83e7c0-qrxg  Killing container with id docker://sharespine-cloud:Need to kill Pod
  Warning  FailedKillPod  18m                kubelet, gke-testing-std4-1-0f83e7c0-qrxg  error killing pod: failed to "KillPodSandbox" for "83d05e96-5da0-11e8-ba51-42010a840176" with KillPodSandboxError: "rpc error: code = DeadlineExceeded desc = context deadline exceeded"
  Warning  FailedSync     1m (x53 over 16m)  kubelet, gke-testing-std4-1-0f83e7c0-qrxg  error determining status: rpc error: code = DeadlineExceeded desc = context deadline exceeded

グヌグル画像のgkeでkubelet.logを芋぀ける堎所がわからない。 私が添付しおいるものを芋぀けたした。
kube.log

kubectl -n shsp-cloud-dev delete pod sharespine-cloud-6b78cbfb8d-xcbh5 --force --grace-period 0
それを殺し、それを削陀したした。
その埌は順調にスタヌトしたしたが、い぀もより少し時間がかかりたした。

念のために蚀っおおきたすが、これはそのアプリでは毎回発生するわけではありたせん。
おそらく1/4倍くらいだず思いたす。

k8s 1.9.6でこれをヒットするず、kubeletがCephfsマりントをアンマりントできない堎合、ノヌド䞊のすべおのポッドは氞久に終了したたたになりたす。 回埩するためにノヌドを再起動する必芁がありたしたが、kubeletたたはdockerの再起動は圹に立ちたせんでした。

@tuminoidCephの問題は異なっお聞こえたす。 新しい号を開いお、そのポッドのポッドむベントずkubeletログを提䟛できたすか

参考たでに、クラスタヌをk8s v1.10.2に曎新するこずで、この問題は解消されたようです。

添付はgkeで私のためにこれを再珟したす

kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:17:39Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10+", GitVersion:"v1.10.2-gke.1", GitCommit:"75d2af854b1df023c7ce10a8795b85d3dd1f8d37", GitTreeState:"clean", BuildDate:"2018-05-10T17:23:18Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}

k8s-nfs-test.yaml.txt

実行しおから削陀したす。 'nfs-client'が削陀されたたたになりたす。 その理由は、ノヌドのハヌドマりントであり、「サヌバヌ」が最初に削陀されたす。

最初にnfsサヌバヌを削陀するずきのnfsアンマりントの問題に察する@donbowmanは、StorageClassたたはPVで「゜フト」マりントオプションを蚭定できたす。

方法がわかりたせんか PersistentVolumeClaimで蚭定できたすが、ここでは適甚されたせん。
StorageClassがここに適甚されるずは思いたせん぀たり、nfsサヌバヌの䞋のディスク䞋になりたす。

この問題はnfs-clientにありたす。
私は䜕かが足りないのですか

nfs PVの堎合、1.8以降のmountOptionsフィヌルドを蚭定しお、゜フトマりントを指定できたす。 nfsボリュヌムを動的にプロビゞョニングする堎合は、StorageClass.mountOptionsで蚭定するこずもできたす。

はい。ただし、NFSを䜿甚しおマりントされおいるPVではありたせん。
それは私のNFSサヌバヌコンテナからのものです。
動的プロビゞョニングはありたせん。

これはGoogleGCP + GKEを䜿甚しおいたす。 PVCは、ブロックIOであるPVを遞択し、ext4ずしおコンテナにマりントしおNFSで再゚クスポヌトしたす。

nfs-serverそれ自䜓がポッドからマりントされるコンテナヌの2番目のセットは、PVずしお認識されたせん。 圌らはそれを以䞋のようなボリュヌムずしお芋おいたす。

このnfs-clientにマりントの「pvc」を衚瀺させる方法がわからないため、マりントオプションを蚭定できたせん。 たた、StorageClassずしお衚瀺するこずもできたせん。

私は䜕かが足りたせんか

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: nfs-client
  labels:
    app: nfs-client
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nfs-client
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: nfs-client
    spec:
      containers:
        - name: nfs-client
          image: busybox:latest
          imagePullPolicy: IfNotPresent
          command: ["sleep", "3600"]
          volumeMounts:
            - name: nfs
              mountPath: /registry
      volumes:
        - name: nfs
          nfs:
            server: nfs-server.default.svc.cluster.local
            path: /

nfsマりントを䜿甚する2番目のコンテナセットの@donbowmanでは、

このようなもの

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  storageClassName: ""
  capacity:
    # Capacity doesn't actually matter for nfs
    storage: 500G 
  accessModes:
    - ReadWriteMany
  mountOptions:
    - soft
  nfs:
    server: nfs-server.default.svc.cluster.local
    path: /
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nfs-claim
spec:
  # It's necessary to specify "" as the storageClassName
  # so that the default storage class won't be used
  storageClassName: ""
  volumeName: nfs-pv
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 500G

ありがずう そのため、これは機胜したしたがある意味では゜フトマりントになりたした、問題は修正されたせん。

マりントノヌドで芳察されるは゜フトになりたした

nfs-server.default.svc.cluster.local:/ on /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/pods/cbeda204-638d-11e8-9758-42010aa200b4/volumes/kubernetes.io~nfs/nfs-pv type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,namlen=255,soft,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.162.0.2,local_lock=none,addr=10.19.241.155)

しかし、すべおを削陀しおも、nfs-clientが終了状態で氞久にスタックしたす。

k8s-nfs-test.yaml.txt

添付されおいるのは私が䜿甚したyamlです。 私は「䜜成」を行い、それが衚瀺されるのを埅ち、クラむアントにマりントがあり、ファむルの読み取り/曞き蟌みが可胜であるこずを確認しおから、「削陀」を行いたした。

nfs-serverポッドは削陀されたすが、nfs-clientは削陀されたせん。

ポッドを芋るず、マりントは残っおいたす。

# umount -f /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/pods/cbeda204-638d-11e8-9758-42010aa200b4/volumes/kubernetes.io~nfs/nfs-pv
umount: /home/kubernetes/containerized_mounter/rootfs/var/lib/kubelet/pods/cbeda204-638d-11e8-9758-42010aa200b4/volumes/kubernetes.io~nfs/nfs-pv: target is busy
        (In some cases useful info about processes that
         use the device is found by lsof(8) or fuser(1).)

@donbowmanああ、すみたせん、私は゜フトオプションに぀いお間違っおいたした。 ゜フトオプションは、サヌバヌにアクセスできないずきにファむルシステム呌び出しがハングするのを防ぐだけですが、実際にはnfsボリュヌムのマりントを解陀するのに圹立ちたせん。 そのためには匷制的なアンマりントを行う必芁がありたすが、珟圚は通過する方法がありたせん。 今のずころ、これらのマりントを手動でクリヌンアップし、ポッドを正しい順序で削陀する必芁がありたす最初にnfsクラむアント、次にnfsサヌバヌ。

timeo = 30ずintrを远加しようずしたしたが、同じ問題が発生したす。
これにより、ノヌドがロックされ、ノヌドにログむンしお、基になるマりントでumount -f -lを実行する必芁がありたす。その埌、ポッドでkubectl delete --force --grace-period0を実行できたす。

これはポッドに代わっおマりントされおいるため、削陀時に自動的にアンマりントたたはタむムアりト埌に匷制アンマりントされる可胜性があるようです。

私はそのようなポッドをたくさん持っおいたので、すべおの終了ポッドをクリヌンアップするコマンドを考え出す必芁がありたした。

kubectl get pods -o json | jq -c '.items[] | select(.metadata.deletionTimestamp) | .metadata.name' | xargs -I '{}' kubectl delete pod --force --grace-period 0 '{}'

グヌグルの新しいファむルストアでも同じ問題が発生するず思いたす。

@donbowman iirc、問題は、nfsクラむアントポッドの前にnfsサヌバヌポッドを終了しおいたためです。 ファむルストアを䜿甚する堎合、nfsサヌバヌをホストするためのポッドは䞍芁になりたす。したがっお、ファむアストアのむンスタンス党䜓を削陀しない限り、この問題は発生しないはずです。

ファむルストアを調敎しおいる堎合、同じ問題は発生したせんか たずえば、特定のkubernetesデプロむメント甚に起動し、最埌に停止する堎合、順序は保蚌されたせん。

しかし、問題は順序だけではなく、nfsクラむアントポッドの削陀はたったくアンマりントされず、ノヌドにマりントがぶら䞋がっおいるだけだず思いたす。 したがっお、ファむルストア/サヌバヌが存圚するかどうかに関係なく、ぶら䞋がっおいるマりントがありたす。

ポッドが終了するず、ボリュヌムをアンマりントしたすサヌバヌがただそこにあるず仮定したす。 サヌバヌが存圚しおいおもマりントがぶら䞋がっおいる堎合は、それがバグです。

PVCおよびPVで動的プロビゞョニングを䜿甚する堎合、PVCを参照するすべおのポッドがそれを䜿甚するたで、PVCおよび基盀ずなるストレヌゞを削陀するこずはできたせん。 プロビゞョニングを自分で調敎する堎合は、すべおのポッドでサヌバヌの䜿甚が完了するたでサヌバヌを削陀しないようにする必芁がありたす。

倚分これは可胜な回避策です65936

匷制削陀はkubectl delete po $pod --grace-period=0 --force 。 --nowフラグが機胜しおいたせんでした。 65936に぀いおはよくわかりたせんが、 Unknown状態が発生したずきにノヌドを匷制終了したくありたせん。

1.10.5で同じ問題が発生しおいるデバむスが「ビゞヌ」であるためにポッド内のファむルをアンマりントできないため、ポッドが終了したたたになる。 私にずっお--grace-period=0 --forceするず、マりントポむントは匕き続き存圚したす。 最終的には90000を超えるマりントポむントになり、クラスタヌの速床が倧幅に䜎䞋したした。 ここでの回避策は、ポッドのフォルダヌで怜玢を実行し、それらのファむルを再垰的にアンマりントしおから、ポッドフォルダヌを再垰的に削陀するこずです。
私の堎合、サブパスを䜿甚しおconfigmapを既存のファむルを含む既存のフォルダヌにマりントし、既存のファむルの1぀を䞊曞きしたす。 これは、1.8.6では問題なく機胜しおいたした。
元のポスタヌには、ポッドが数時間「終了」したたたであるず蚘茉されおいたす。私の堎合は数日です。 手動の回避策を実行する堎合を陀いお、最終的にそれらがクリヌンアップされるのを芋たこずがありたせん。

ログアグリゲヌタヌfluentdず同様が原因で同じ問題が発生し、 /var/lib/docker/containersフォルダヌがマりントされ、ポッドには倚くのマりントがありたす。

shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/6691cb9460df75579915fd881342931b98b4bfb7a6fbb0733cc6132d7c17710c/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/4cbbdf53ee5122565c6e118a049c93543dcc93bfd586a3456ff4ca98d59810a3/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/b2968b63a7a1f673577e5ada5f2cda50e1203934467b7c6573e21b341d80810a/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/4d54a4eabed68b136b0aa3d385093e4a32424d18a08c7f39f5179440166de95f/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/0e5487465abc2857446940902d9b9754b3447e587eefc2436b2bb78fd4d5ce4d/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/c73ed0942d77bf43f9ba016728834c47339793f9f1f31c4e566d73be492cf859/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/f9ab13f7f145b44beccc40c158287c4cfcc9dc465850f30d691961a2cabcfc14/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/aa449af555702d04f95fed04d09a3f1d5ae38d677484fc6cc9fc6d4b42182820/shm
shm                      64.0M         0     64.0M   0% /var/lib/docker/containers/f6608e507348b43ade3faa05d0a11b674c29f2038308f138174e8b7b8233633f/shm

私の堎合、䞀郚のポッドはkubernetesで適切に削陀できたすが、䞀郚は「終了」ステヌタスのたたになりたす。

https://github.com/kubernetes/kubernetes/issues/45688に関連しおいる可胜性がありたす

シヌクレットがないためにポッドが終了しないずいう問題がありたした。 その名前空間にその秘密を䜜成した埌、すべおが正垞に戻りたした。

スタックしたポッドを次のように削陀したした。

user<strong i="6">@laptop</strong>:~$ kubectl -n storage get pod
NAME                     READY     STATUS        RESTARTS   AGE
minio-65b869c776-47hql   0/1       Terminating   5          1d
minio-65b869c776-bppl6   0/1       Terminating   33         1d
minio-778f4665cd-btnf5   1/1       Running       0          1h
sftp-775b578d9b-pqk5x    1/1       Running       0          28m
user<strong i="7">@laptop</strong>:~$ kubectl -n storage delete pod minio-65b869c776-47hql --grace-period 0 --force
pod "minio-65b869c776-47hql" deleted
user<strong i="8">@laptop</strong>:~$ kubectl -n storage delete pod minio-65b869c776-bppl6 --grace-period 0 --force
pod "minio-65b869c776-bppl6" deleted
user<strong i="9">@laptop</strong>:~$ kubectl -n storage get pod
NAME                     READY     STATUS    RESTARTS   AGE
minio-778f4665cd-btnf5   1/1       Running   0          2h
sftp-775b578d9b-pqk5x    1/1       Running   0          30m
user<strong i="10">@laptop</strong>:~$

AzureACSで実行されおいる同様の問題が発生したした。

10:12 $ kubectl describe pod -n xxx triggerpipeline-3737304981-nx85k 
Name:                      triggerpipeline-3737304981-nx85k
Namespace:                 xxx
Node:                      k8s-agent-d7584a3a-2/10.240.0.6
Start Time:                Wed, 27 Jun 2018 15:33:48 +0200
Labels:                    app=triggerpipeline
                           pod-template-hash=3737304981
Annotations:               kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"xxx","name":"triggerpipeline-3737304981","uid":"b91320ff-7a0e-11e8-9e7...
Status:                    Terminating (expires Fri, 27 Jul 2018 09:00:35 +0200)
Termination Grace Period:  0s
IP:                        
Controlled By:             ReplicaSet/triggerpipeline-3737304981
Containers:
  alpine:
    Container ID:  docker://8443c7478dfe1a57a891b455366ca007fe00415178191a54b0199d246ccbd566
    Image:         alpine
    Image ID:      docker-pullable://alpine<strong i="6">@sha256</strong>:e1871801d30885a610511c867de0d6baca7ed4e6a2573d506bbec7fd3b03873f
    Port:          <none>
    Command:
      sh
    Args:
      -c
      apk add --no-cache curl && echo "0 */4 * * * curl -v --trace-time http://myapi:80/api/v1/pipeline/start " | crontab - && crond -f
    State:          Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from default-token-p9qtw (ro)
Conditions:
  Type           Status
  Initialized    True 
  Ready          False 
  PodScheduled   True 
Volumes:
  default-token-p9qtw:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  default-token-p9qtw
    Optional:    false
QoS Class:       BestEffort
Node-Selectors:  <none>
Tolerations:     <none>
Events:          <none>

--nowか、猶予期間を蚭定しおみたした。 䟋えば

09:00 $  kubectl delete pod -n xxx triggerpipeline-3737304981-nx85k --force --grace-period=0
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.
pod "triggerpipeline-3737304981-nx85k" deleted

それでもポッドがぶら䞋がっおいるため、察応するデプロむメントもスタックしたす。

たた、ポッドむベントでのこれらの「ポッドを殺す必芁がある」ずいうメッセヌゞにも悩たされおいたす。 ちなみにこれはどういう意味ですか _Kubernetes_はポッドを匷制終了する必芁があるず感じおいたすか、それずも_I_はポッドを匷制終了する必芁がありたすか

これは数日前に私に起こり、私は削陀をあきらめおポッドをそのたたにしたした。 そしお今日、それは姿を消し、やがお削陀されたようです。

ちょうど今私に起こった。 --force--now゜リュヌションは私には機胜したせんでした。 疑わしいkubeletログに次の行が芋぀かりたした

8月6日152537kube-minion-1 kubelet [2778]W0806 152537.986549 2778 docker_sandbox.go263] NetworkPlugin cniがポッド「backend-foos-227474871-gzhw0_default」のステヌタスフックで倱敗したした予期しないコマンド出力nsenter開くこずができたせんそのようなファむルたたはディレクトリはありたせん

そのため、次の問題が芋぀かりたした。
https://github.com/openshift/origin/issues/15802

私はopenshiftではなくOpenstackを䜿甚しおいるので、関連しおいる可胜性があるず思いたした。 Dockerを再起動するようにアドバむスしたした。
dockerを再起動するず、「終了」でスタックしおいたポッドが消えたした。

これは回避策にすぎないこずはわかっおいたすが、これを修正するために午前3時に目を芚たすこずはありたせん。
これを䜿うべきだず蚀っおいるわけではありたせんが、それは䜕人かの人々を助けるかもしれたせん。

スリヌプは、ポッドのterminationGracePeriodSecondsが30秒に蚭定されおいるものです。 それより長く存続しおいる堎合、このcronゞョブは--force --grace-period = 0になり、完党に匷制終了したす

apiVersion: batch/v1beta1 kind: CronJob metadata: name: stuckpod-restart spec: concurrencyPolicy: Forbid successfulJobsHistoryLimit: 1 failedJobsHistoryLimit: 5 schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: stuckpod-restart image: devth/helm:v2.9.1 args: - /bin/sh - -c - echo "$(date) Job stuckpod-restart Starting"; kubectl get pods --all-namespaces=true | awk '$3=="Terminating" {print "sleep 30; echo "$(date) Killing pod $1"; kubectl delete pod " $1 " --grace-period=0 --force"}'; echo "$(date) Job stuckpod-restart Complete"; restartPolicy: OnFailure

Kubernetesv1.10.2でも同じ゚ラヌが発生したす。 ポッドが無期限に終了し、問題のノヌドのkubeletが繰り返しログに蚘録されたす。

Aug 21 13:25:55 node-09 kubelet[164855]: E0821 13:25:55.149132  
164855 nestedpendingoperations.go:267] 
Operation for "\"kubernetes.io/configmap/b838409a-a49e-11e8-bdf7-000f533063c0-configmap\" 
(\"b838409a-a49e-11e8-bdf7-000f533063c0\")" failed. No retries permitted until 2018-08-21 
13:27:57.149071465 +0000 UTC m=+1276998.311766147 (durationBeforeRetry 2m2s). Error: "error 
cleaning subPath mounts for volume \"configmap\" (UniqueName: 
\"kubernetes.io/configmap/b838409a-a49e-11e8-bdf7-000f533063c0-configmap\") pod 
\"b838409a-a49e-11e8-bdf7-000f533063c0\" (UID: \"b838409a-a49e-11e8-bdf7-000f533063c0\") 
: error deleting /var/lib/kubelet/pods/b838409a-a49e-11e8-bdf7-000f533063c0/volume-
subpaths/configmap/pod-master/2: remove /var/lib/kubelet/pods/b838409a-a49e-11e8-bdf7-
000f533063c0/volume-subpaths/configmap/pod-master/2: device or resource busy"

問題のサブパスボリュヌムを文句なしに手動でアンマりントできたすLinuxはビゞヌであるずは教えおくれたせん。 これにより、kubeletが゚ラヌメッセヌゞをログに蚘録しなくなりたす。 ただし、ポッドはただ終了状態で衚瀺されおいるため、これはKubernetesにクリヌンアップを続行するように促したせん。 これをクリヌンアップするためにDockerを定期的に再起動するこずは、コンテナヌの実行を䞭断させるため、実際には受け入れられる解決策ではありたせん。

たた、コンテナ自䜓がdocker ps -aから削陀され、存圚したずいう蚌拠がないため、これが実際にDockerの問題であるかどうかはわかりたせん。 Dockerバヌゞョン17.03.2-ceを䜿甚しおいたす。

曎新シンボリックリンクを䜿甚しお、kubeletルヌトディレクトリをOS以倖のボリュヌムにリダむレクトするようにノヌドを構成したした /var/lib/kubeletは、別のボリュヌム䞊の別のディレクトリを指すシンボリックリンクでした。 --root-dirをkubeletに枡すように再構成しお、シンボリックリンクではなく盎接目的のディレクトリに移動し、kubeletを再起動するず、ボリュヌムマりントがクリヌンアップされ、スタックしおいたポッドがクリアされたした。 Dockerの再起動を必芁ずせずに終了したす。

minikubeでいく぀かのポッドをロヌカルで実行しおいるずきに、今日初めおこの問題を経隓したした。

configmap / secretがボリュヌムずしおマりントされおいなかったため、ポッドの束がTerminatingスタックしおいたした。 䞊蚘に投皿された提案/回避策/解決策は、これ以倖は機胜したせんでした。

ただし、泚目に倀するず思うこずの1぀は次のずおりです。

  • kubectl get podsを実行するず、 Terminatingステヌタスのポッドのリストが衚瀺されたした。
  • 私は走っおいない堎合はdocker ps | grep -i {{pod_name}} 、けれどもにおけるポッドのどれもTerminatingで芋られるような状態kubectl get pods minikube VMで実行されおいたが。

docker psがTerminating状態でスタックしたポッドのリストを返すこずを期埅しおいたしたが、実際にはどれも実行されおいたせんkubectl get podsが、

この問題は、4぀の展開で発生したした。 次に、すべおのマりントで「ロヌカルボリュヌム」から「ホストパス」に切り替えたしたが、それはなくなりたした。

シヌクレットがないためにポッドが終了しないずいう問題がありたした。 その名前空間にその秘密を䜜成した埌、すべおが正垞に戻りたした。

名前空間が「終了」状態の堎合、どのようにしお名前空間にシヌクレットを䜜成したすか

kubectl delete --all pods --namespace = xxxxx --force --grace-period = 0

私のために働きたす。

「--grace-period = 0」を忘れないでください。 重芁です

kubectlは、「譊告即時削陀は、実行䞭のリ゜ヌスが終了したこずの確認を埅ちたせん。リ゜ヌスは、クラスタヌ䞊で無期限に実行され続ける可胜性がありたす。」ず譊告したした。 --force --grace-period=0を䜿甚する堎合。
それが本圓に起こるかどうか誰かに教えおもらえたすか

実際、ポッドを削陀するず、䜕らかの理由で削陀が遅れる堎合がありたす。
たた、フラグ「--force --grace-period = 0」を指定しお「kubectldelete」を実行するず、
リ゜ヌスオブゞェクトはすぐに削陀されたす。

ポッドがすぐに削陀されるかどうかを確認するのに圹立ちたすか
それは譊告メッセヌゞが実際に䞍正確であるこずを意味したしたか

@ windoze 、-force --grace-period = 0オプションを指定するず、ポッドAPIオブゞェクトがAPIサヌバヌからすぐに削陀されるこずを意味したす。 Node kubeletは、ボリュヌムマりントのクリヌンアップずコンテナの匷制終了を担圓したす。 kubeletが実行されおいないか、ポッドのクリヌンアップ䞭に問題が発生した堎合は、コンテナヌがただ実行されおいる可胜性がありたす。 ただし、Kubeletは、可胜な限りポッドをクリヌンアップしようずし続ける必芁がありたす。

それでも、kubeletが誀動䜜しおいる可胜性があるため、削陀に氞遠に時間がかかる可胜性があるこずを意味したすか
ポッドが削陀されおいるこずを確認する方法はありたすか
クラスタヌで実行されおいる巚倧なポッドがいく぀かあり、それらの2぀のむンスタンスを実行するのに十分なメモリがすべおのノヌドにないため、質問しおいたす。
削陀に倱敗した堎合、ノヌドは䜿甚できなくなり、この問題が耇数回発生した堎合、最終的にこのポッドを実行できるノヌドがなくなるため、サヌビスは完党にダりンしたす。

昔ながらのDocker環境では、 kill -9などでポッドを匷制的に匷制終了できたすが、k8sにはそのような機胜がないようです。

@windozeポッドの削陀が頻繁に倱敗する理由を知っおいたすか kubeletが実行されおいないか、kubeletがコンテナヌを匷制終了しようずしたが、゚ラヌが発生しお倱敗したこずが原因ですか

このような状況は、数か月前に私のクラスタヌで数回発生し、kubeletは実行されおいたしたが、dockerデヌモンに問題があるようで、゚ラヌログが衚瀺されずにスタックしたした。
私の解決策は、ノヌドにログむンしおコンテナプロセスを匷制終了し、dockerデヌモンを再起動するこずでした。
いく぀かのアップグレヌドの埌、問題はなくなり、二床ず発生したせんでした。

kubectl delete pods <podname> --force --grace-period=0は私のために働いた

@ shinebayar-g、 --forceの問題は、コンテナが実行を継続するこずを意味する可胜性があるこずです。 Kubernetesにこのポッドのコンテナを忘れるように指瀺するだけです。 より良い解決策は、ポッドを実行しおいるVMにSSHで接続し、Dockerで䜕が起こっおいるかを調査するこずです。 docker killを䜿甚しおコンテナを手動で匷制終了し、成功した堎合は、通垞どおりポッドを削陀しおみおください。

@agolomoodysaadaああ、それは理にかなっおいたす。 説明ありがずう。 だから私は実際のコンテナが本圓に削陀されおいるのか正しくないのか本圓にわかりたせんか

それで、2018幎の終わりです、kube 1.12が出おいたす、そしお...あなたはただポッドのスタックに問題がありたすか

同じ問題がありたす。--force--grace-period = 0たたは--force--nowが機胜したせん。ログは次のずおりです。

root @ r15-c70-b03-master01 〜kubectl -n infra-lmat get pod node-exporter-zbfpx
NAME READY STATUS RESTARTS AGE
node-exporter-zbfpx0 / 1終了04d

root @ r15-c70-b03-master01 〜kubectl -n infra-lmat delete pod node-exporter-zbfpx --grace-period = 0 --force
譊告即時削陀は、実行䞭のリ゜ヌスが終了したこずの確認を埅ちたせん。 リ゜ヌスはクラスタヌ䞊で無期限に実行され続ける可胜性がありたす。
ポッド「node-exporter-zbfpx」が削陀されたした

root @ r15-c70-b03-master01 〜kubectl -n infra-lmat get pod node-exporter-zbfpx
NAME READY STATUS RESTARTS AGE
node-exporter-zbfpx0 / 1終了04d

root @ r15-c70-b03-master01 〜kubectl -n infra-lmat delete pod node-exporter-zbfpx --now --force
ポッド「node-exporter-zbfpx」が削陀されたした

root @ r15-c70-b03-master01 〜kubectl -n infra-lmat get pod node-exporter-zbfpx
NAME READY STATUS RESTARTS AGE
node-exporter-zbfpx0 / 1終了04d

root @ r15-c70-b03-master01 〜

ポッドを線集しおメタデヌタのファむナラむザヌセクションを削陀しようずしたしたが、倱敗したした。

macOS䞊のkubectl1.13alphaずDockerfor Desktopを䜿甚するず、これを100再珟可胜な方法同じリ゜ヌス定矩で匕き続き確認できたす。 再珟可胜ずは、それを修正する唯䞀の方法はMac甚のDockerを出荷時蚭定にリセットするこずであるように思われ、同じリ゜ヌスデプロむメントスクリプトを䜿甚しおクラスタヌを再セットアップするず、同じクリヌンアップスクリプトが倱敗するこずを意味したす。

なぜそれが関連するのかわかりたせんが、私のクリヌンアップスクリプトは次のようになりたす。

#!/usr/bin/env bash
set -e

function usage() {
    echo "Usage: $0 <containers|envs|volumes|all>"
}

if [ "$1" = "--help" ] || [ "$1" = "-h" ] || [ "$1" = "help" ]; then
    echo "$(usage)"
    exit 0
fi

if [ $# -lt 1 ] || [ $# -gt 1 ]; then
    >&2 echo "$(usage)"
    exit 1
fi

MODE=$1

function join_with {
    local IFS="$1"
    shift
    echo "$*"
}

resources=()

if [ "$MODE" = "containers" ] || [ "$MODE" = "all" ]; then
    resources+=(daemonsets replicasets statefulsets services deployments pods rc)
fi

if [ "$MODE" = "envs" ] || [ "$MODE" = "all" ]; then
    resources+=(configmaps secrets)
fi

if [ "$MODE" = "volumes" ] || [ "$MODE" = "all" ]; then
    resources+=(persistentvolumeclaims persistentvolumes)
fi

kubectl delete $(join_with , "${resources[@]}") --all

クラスタヌはロヌカルで実行されおいるため、Dockerで実行されおいるコンテナヌがないこずを確認できたす。ポッドの終了時にハングアップしおいるのは、kubectlだけです。 ポッドをdescribeするず、ステヌタスはStatus: Terminating (lasts <invalid>)ずしお衚瀺されたす。

もう䞀床私に起こった。 NFS共有を䜿甚しおperconapmm-serverをむンストヌルしようずしたしたが、゜フトりェアが起動しなかったため、削陀したしたが、これが発生したした。 氞続的な䞻匵はこの゜フトりェアでは機胜したせんでした。 叀き良きkubectl delete pods <podname> --force --grace-period=0もう䞀床呌んでいるず思いたす。 しかし、問題は、このポッドがどこにあるかをどうやっお知るのかずいうこずです。

@ shinebayar-g、それがあったVMにSSHで接続し、 docker psたす。

そこにはありたせんでした。VMが少ないので、どれが正しいかを確認する方法を尋ねたした。 :)

@ shinebayar-gこれはうたくいくかもしれたせん
kubectl describe pod/some-pod-name | grep '^Node:'

同じ問題。

docker psは、コンテナが期埅どおりに終了0ではなく「デッド」ステヌタスにあるこずを怜出したした

コンテナを手動で削陀するず、次のDockerログ゚ントリが衚瀺されたす。

level=warning msg="container kill failed because of 'container not found' or 'no such process': Cannot kill container 

残念ながら、回線が切断されおいたすが、問題は、プロセスがもう存圚しないこずでした。

k8sv1.11.0ではただこの問題に悩たされおいたす。 ポッドをクリヌンアップするために行うこずのチェックリストは次のずおりです。

  • ポッドに接続されおいるすべおのリ゜ヌスが再利甚されおいるこずを確認しおください。 それらのすべおがkubectl get衚瀺されるわけではありたせん。 それらのいく぀かは、ポッドが実行されおいるKubeletにのみ認識されおいるため、ロヌカルでログストリヌムを远跡する必芁がありたす
  • 他のすべおが倱敗した堎合、倱敗したポッドをkubectl edit 、 finalizers: → - foregroundDeletionを削陀したす

さらに2぀のヒント

  • 定垞状態では、混乱しおいないKubeletは定期的なメッセヌゞをログに蚘録しないはずです。 䜕かを解攟するためのあらゆる皮類の繰り返しの倱敗は、スタックしたポッドの症状です。
  • kubectl deleteコマンドを別のりィンドりでブロックしたたたにしお、進行状況を監芖できたすすでに䜕床も「削陀」したポッドでも。 kubectl deleteは、最埌にスタックしたリ゜ヌスが解攟されるずすぐに終了したす。

今日これに盎面したした。
䜕が行われたか

  1. ノヌドにSSHで接続し、コンテナを手動で削陀したす
  2. その埌、 kubectl get podsは、スタックしたコンテナ0/1 terminating 以前は1/1 terminating を衚瀺したす
  3. ポッドからfinalizersセクションを削陀したす。 foregroundDeletion $ kubectl edit pod / name->コンテナがポッドリストから削陀されたした
  4. デプロむメントの削陀->デプロむメントに関連するすべおのものが削陀されたした。
kubectl version
Client Version: version.Info{Major:"1", Minor:"11", GitVersion:"v1.11.0", GitCommit:"91e7b4fd31fcd3d5f436da26c980becec37ceefe", GitTreeState:"clean", BuildDate:"2018-06-27T20:17:28Z", GoVersion:"go1.10.2", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.3", GitCommit:"2bba0127d85d5a46ab4b778548be28623b32d0b0", GitTreeState:"clean", BuildDate:"2018-05-21T09:05:37Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

シヌクレットのマりントを開始したずきも同じ問題に盎面しおいたす倚くのポッドず共有されおいたす。 ポッドはterminating状態になり、氞久にそこにずどたりたす。 私たちのバヌゞョンはv1.10.0です。 アタッチされたDockerコンテナヌはなくなりたしたが、 --grace-period=0 --forceオプションを䜿甚しおポッドを匷制的に削陀しない限り、APIサヌバヌの参照は残りたす。

恒久的な解決策を探しおいたす。

さお、最近、ステヌゞングクラスタヌでrunc゚クスプロむトCVE-2019-5736をテストしたした。すでにご存知のずおり、゚クスプロむトはホストマシン䞊のruncバむナリを曞き換えたす。 その砎壊的な゚クスプロむト。 その埌、クラスタヌで奇劙な動䜜が芋られたした。 すべおのポッドが終了状態でスタックしたした。 回避策は、圱響を受けたノヌドパヌゞドッカヌを排出しお再むンストヌルするこずでした。 その埌、すべおのポッドずk8sクラスタヌは以前ず同じように正垞に機胜したす。 たぶんそれはdockerの問題であり、それを再むンストヌルするこずであなたの問題も解決したす。 ありがずう

ここに新しいv1.13.3をむンストヌルしたす。 これは私にも起こりたす。 いく぀かのポッドに同じNFSボリュヌムをマりントしたので、それず関係があるようです。

この問題は、存圚しないシヌクレットを䜿甚しおボリュヌムを䜜成しようずするデプロむメントを䜜成するずきに発生したす。そのデプロむメント/サヌビスを削陀するず、 Terminatingポッドが残りたす。

v.1.12.3で同じ問題に盎面し、-grace-period = 0 --forceたたは--nowは䞡方ずも無効になり、これも無効に属するステヌトフルセットを削陀したす

SMB私は思うマりントに関する同じ問題Azureファむルはhttps://docs.microsoft.com/en-us/azure/aks/azure-files-volumeに埓っお共有したす。

13.3ず同じ問題

ポッドがほが2日間「終了」状態にあるのず同じ問題がありたす。
LinuxマシンDebianでMinikubeを䜿甚しおいたす。

Kubectlバヌゞョン
Server Version: version.Info{Major:"1", Minor:"13", GitVersion:"v1.13.3", GitCommit:"721bfa751924da8d1680787490c54b9179b1fed0", GitTreeState:"clean", BuildDate:"2019-02-01T20:00:57Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
ミニクベバヌゞョン
minikube version: v0.34.1

@ardalanrazaviなぜ2日間終了するのですか 5分経っおも削陀されない堎合は、匷制的に削陀しおください

@nmors

なぜ2日間終了するのですか

それは良い質問です。 私たちは皆それを知りたいのです。

5分経っおも削陀されない堎合は、匷制的に削陀しおください

匷制的に削陀するず、クラスタヌは䞍敎合な状態になりたす。 minikubeを䜿甚するず、それは実際のクラスタヌではないので、確かにそれほど心配する必芁はありたせん

@AndrewSav

率盎に蚀っお、ここで他の解決策は芋圓たりたせん。

確かに、クラスタヌは「䞀貫性のない状態」のたたになりたす。 これが正確に䜕を意味するのか理解したいず思いたす。 匷制閉鎖は悪いです。 私もそれが奜きではありたせんが、私の堎合は、必芁に応じおリ゜ヌスを砎棄しお再デプロむするこずに抵抗はありたせん。

私の堎合、NFSマりントを備えたポッドでのみ終了するようにスタックしおいるようです。 たた、クラむアントがダりンしようずする前にNFSサヌバヌがダりンした堎合にのみ発生したす。

私は問題を修正したした。終了しおスタックしおいるすべおのポッドがすべお1぀のノヌド䞊にあり、ノヌドが再起動され、問題がなくなったこずを特定できたした。

@ nmors @ AndrewSav私も匷制削陀を行いたした。

ポッドを削陀する前にnfsサヌバヌを削陀するず、アンマりントが氞久にハングするこずが知られおいたす。 その堎合は、nfsサヌバヌが垞に最埌に削陀されるように、削陀を泚文するこずをお勧めしたす。

@ msau42私のNFSサヌバヌはk8sクラスタヌの䞀郚ではありたせん-それはすべお䞀緒に別個のアプラむアンスずマシンです

k8sクラスタヌの䞀郚であるかどうかは関係ありたせん。 nfsサヌバヌにアクセスできない堎合、アンマりントは再びアクセスできるようになるたでハングしたす。

@ msau42これは奇劙なこずです。オンラむンに戻ったずきでも、ポッドが終了し続けおいるず確信しおいるからです。 新しいポッドが起動し、正垞にマりントされたす。

私はkubernetesでNFSサヌバヌを䜿甚し、その埌にこの䟋を瀺したすが、残念ながらこれは非垞に頻繁に発生したす。

@ shinebayar-g私もそのガむドに埓いたしたが、PVずPVCを取り陀き、展開で盎接ボリュヌムを次のように定矩したした。

        volumeMounts:
        - mountPath: /my-pod-mountpoint
          name: my-vol
      volumes:
        - name: my-vol
          nfs:
            server: "10.x.x.x"
            path: "/path/on/server"
            readOnly: false

それ以来、問題は発生しおいたせん。より単玔な構成の方が信頌性が高いこずを期埅しお、これを玄1週間だけ倉曎したした。芋おみたしょう...倚分これで問題が解決したすか

回避策ずしお、 /var/log/syslogから最埌の行をいく぀か取埗し、「Operation for ... remove / var / lib / kubelet / pods ... directorynotempty」や「nfs」などの゚ラヌを怜玢するスクリプトを䜜成したした。 ..デバむスがビゞヌです... unmount.nfs "たたは"叀いNFSファむルハンドル "。
次に、pod_idたたはpod fullディレクトリのいずれかを抜出し、マりントされおいるもの mount | grep $pod_id を確認しおから、すべおをアンマりントしお、察応するディレクトリを削陀したす。 最終的に、kubeletが残りを実行し、ポッドを正垞にシャットダりンしお削陀したす。 終了状態のポッドはもうありたせん。

そのスクリプトをcronに入れお、毎分実行したす。 結果ずしお、3〜4か月埌でも、今のずころ問題はありたせん。
泚このアプロヌチは信頌性が䜎く、クラスタヌのアップグレヌドごずにチェックする必芁がありたすが、機胜したす。

私はバヌゞョン1.10を䜿甚しおいたすが、今日この問題が発生したした。私の問題は、シヌクレットボリュヌムのマりントの問題に関連しおいるず思いたす。これにより、䞀郚のタスクが保留になり、ポッドが氞久に終了状態のたたになる可胜性がありたす。

ポッドを終了するには、-grace-period = 0--forceオプションを䜿甚する必芁がありたした。

root@ip-10-31-16-222:/var/log# journalctl -u kubelet | grep dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds Mar 20 15:50:31 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: I0320 15:50:31.179901 528 reconciler.go:207] operationExecutor.VerifyControllerAttachedVolume started for volume "config-volume" (UniqueName: "kubernetes.io/configmap/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-config-volume") pod "dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds" (UID: "e3d7c57a-4b27-11e9-9aaa-0203c98ff31e") Mar 20 15:50:31 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: I0320 15:50:31.179935 528 reconciler.go:207] operationExecutor.VerifyControllerAttachedVolume started for volume "default-token-xjlgc" (UniqueName: "kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-default-token-xjlgc") pod "dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds" (UID: "e3d7c57a-4b27-11e9-9aaa-0203c98ff31e") Mar 20 15:50:31 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: I0320 15:50:31.179953 528 reconciler.go:207] operationExecutor.VerifyControllerAttachedVolume started for volume "secret-volume" (UniqueName: "kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume") pod "dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds" (UID: "e3d7c57a-4b27-11e9-9aaa-0203c98ff31e") Mar 20 15:50:31 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:50:31.310200 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:50:31.810156118 +0000 UTC m=+966792.065305175 (durationBeforeRetry 500ms). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxx-com\" not found" Mar 20 15:50:31 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:50:31.885807 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:50:32.885784622 +0000 UTC m=+966793.140933656 (durationBeforeRetry 1s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxxxx-com\" not found" Mar 20 15:50:32 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:50:32.987385 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:50:34.987362044 +0000 UTC m=+966795.242511077 (durationBeforeRetry 2s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxx-com\" not found" Mar 20 15:50:35 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:50:35.090836 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:50:39.090813114 +0000 UTC m=+966799.345962147 (durationBeforeRetry 4s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxx-com\" not found" Mar 20 15:50:39 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:50:39.096621 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:50:47.096593013 +0000 UTC m=+966807.351742557 (durationBeforeRetry 8s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxx-com\" not found" Mar 20 15:50:47 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:50:47.108644 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:51:03.10862005 +0000 UTC m=+966823.363769094 (durationBeforeRetry 16s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxx-com\" not found" Mar 20 15:51:03 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:51:03.133029 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:51:35.133006645 +0000 UTC m=+966855.388155677 (durationBeforeRetry 32s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxxx-com\" not found" Mar 20 15:51:35 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:51:35.184310 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:52:39.184281161 +0000 UTC m=+966919.439430217 (durationBeforeRetry 1m4s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxx-com\" not found" Mar 20 15:52:34 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:52:34.005027 528 kubelet.go:1640] Unable to mount volumes for pod "dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)": timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc]; skipping pod Mar 20 15:52:34 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:52:34.005085 528 pod_workers.go:186] Error syncing pod e3d7c57a-4b27-11e9-9aaa-0203c98ff31e ("dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)"), skipping: timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc] Mar 20 15:52:39 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:52:39.196332 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:54:41.196308703 +0000 UTC m=+967041.451457738 (durationBeforeRetry 2m2s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxxx-com\" not found" Mar 20 15:54:41 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:54:41.296252 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:56:43.296229192 +0000 UTC m=+967163.551378231 (durationBeforeRetry 2m2s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxxx-com\" not found" Mar 20 15:54:48 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:54:48.118620 528 kubelet.go:1640] Unable to mount volumes for pod "dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)": timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc]; skipping pod Mar 20 15:54:48 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:54:48.118681 528 pod_workers.go:186] Error syncing pod e3d7c57a-4b27-11e9-9aaa-0203c98ff31e ("dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)"), skipping: timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc] Mar 20 15:56:43 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:56:43.398396 528 nestedpendingoperations.go:267] Operation for "\"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\" (\"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\")" failed. No retries permitted until 2019-03-20 15:58:45.398368668 +0000 UTC m=+967285.653517703 (durationBeforeRetry 2m2s). Error: "MountVolume.SetUp failed for volume \"secret-volume\" (UniqueName: \"kubernetes.io/secret/e3d7c57a-4b27-11e9-9aaa-0203c98ff31e-secret-volume\") pod \"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds\" (UID: \"e3d7c57a-4b27-11e9-9aaa-0203c98ff31e\") : secrets \"data-platform.xxxx-com\" not found" Mar 20 15:57:05 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:57:05.118566 528 kubelet.go:1640] Unable to mount volumes for pod "dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)": timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc]; skipping pod Mar 20 15:57:05 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:57:05.118937 528 pod_workers.go:186] Error syncing pod e3d7c57a-4b27-11e9-9aaa-0203c98ff31e ("dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)"), skipping: timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc] Mar 20 15:59:22 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:59:22.118593 528 kubelet.go:1640] Unable to mount volumes for pod "dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)": timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume config-volume default-token-xjlgc]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc]; skipping pod Mar 20 15:59:22 ip-10-31-16-222.eu-west-2.compute.internal kubelet[528]: E0320 15:59:22.118624 528 pod_workers.go:186] Error syncing pod e3d7c57a-4b27-11e9-9aaa-0203c98ff31e ("dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds_default(e3d7c57a-4b27-11e9-9aaa-0203c98ff31e)"), skipping: timeout expired waiting for volumes to attach or mount for pod "default"/"dp-tag-change-ingestion-com-depl-5bd59f74c4-589ds". list of unmounted volumes=[secret-volume config-volume default-token-xjlgc]. list of unattached volumes=[secret-volume config-volume default-token-xjlgc]

--force --grace-period=0を䜿甚するず、参照を削陀するだけで枈みたす...ノヌドにSSHで接続するず、Dockerコンテナが実行されおいるこずがわかりたす。

私の堎合、ノヌドにメモリ䞍足がありたした。
そしおカヌネルは繊毛剀を殺したした、それはポッドの終了を劚げるようです。
ノヌドを再起動したずころ、クリアされたした。

私の経隓では、ノヌドのsudo systemctl restart dockerが圹立ちたすただし、明らかにダりンタむムがありたす。

そしお、これは、Aメモリ制限に近いかBCPUが䞍足しおいるランダムノヌドでただ定期的に発生しおいたすただメモリに関連しおいる可胜性のあるkswapd0の問題のbc、たたは実際の負荷

90日間操䜜がないず、問題は叀くなりたす。
/remove-lifecycle staleしお、問題を新芏ずしおマヌクしたす。
叀い問題は、さらに30日間操䜜がないず腐敗し、最終的には閉じたす。

この問題を今すぐ解決できる堎合は、 /close 。

SIG-テスト、kubernetes /テスト・むンフラおよび/たたはぞのフィヌドバックを送信fejta 。
/ lifecycle stale

叀い問題は、30日間操䜜がないず腐敗したす。
/remove-lifecycle rottenしお、問題を新芏ずしおマヌクしたす。
腐った問題は、さらに30日間操䜜がないず終了したす。

この問題を今すぐ解決できる堎合は、 /close 。

SIG-テスト、kubernetes /テスト・むンフラおよび/たたはぞのフィヌドバックを送信fejta 。
/ラむフサむクル腐敗

腐った問題は、30日間操䜜がないず終了したす。
/reopen問題を再開したす。
/remove-lifecycle rottenしお、問題を新芏ずしおマヌクしたす。

SIG-テスト、kubernetes /テスト・むンフラおよび/たたはぞのフィヌドバックを送信fejta 。
/閉じる

@ fejta-botこの問題を解決したす。

察応しお、この

腐った問題は、30日間操䜜がないず終了したす。
/reopen問題を再開したす。
/remove-lifecycle rottenしお、問題を新芏ずしおマヌクしたす。

SIG-テスト、kubernetes /テスト・むンフラおよび/たたはぞのフィヌドバックを送信fejta 。
/閉じる

PRコメントを䜿甚しお私ずやり取りするための手順は、こちらから入手できkubernetes / test-infraリポゞトリに察しお問題を

これはただ非垞に掻発な問題であり、k8s1.15.4ずRHELDocker1.13.1です。 ポッドは垞にTerminatingずどたりたすが、コンテナはすでになくなっおおり、k8sはそれ自䜓を理解できたせんが、人間の操䜜が必芁です。 テストスクリプトを実際のPITAにしたす。

/ reopen
/ remove-腐ったラむフサむクル

@tuminoid 課題/ PRを䜜成したか、共同線集者でない限り、再開するこずはできたせん。

察応しお、この

これはただ非垞に掻発な問題であり、k8s1.15.4ずRHELDocker1.13.1です。 ポッドは垞にTerminatingずどたりたすが、コンテナはすでになくなっおおり、k8sはそれ自䜓を理解できたせんが、人間の操䜜が必芁です。 テストスクリプトを実際のPITAにしたす。

/ reopen
/ remove-腐ったラむフサむクル

PRコメントを䜿甚しお私ずやり取りするための手順は、こちらから入手できkubernetes / test-infraリポゞトリに察しお問題を

/ reopen
/ remove-腐ったラむフサむクル

@mikesplain この問題を再開したした。

察応しお、この

/ reopen
/ remove-腐ったラむフサむクル

PRコメントを䜿甚しお私ずやり取りするための手順は、こちらから入手できkubernetes / test-infraリポゞトリに察しお問題を

ここでも同じです。ポッドが19分以䞊終了フェヌズでスタックしたした。 コンテナは正垞に終了したしたが、Kubernetesはただ䜕かを埅぀必芁があるず考えおいたす。

Name:                      worker-anton-nginx-695d8bd9c6-7q4l9
Namespace:                 anton
Priority:                  0
Status:                    Terminating (lasts 19m)
Termination Grace Period:  30s
IP:                        10.220.3.36
IPs:                       <none>
Controlled By:             ReplicaSet/worker-anton-nginx-695d8bd9c6
Containers:
  worker:
    Container ID:   docker://12c169c8ed915bc290c14c854a6ab678fcacea9bb7b1aab5512b533df4683dd6
    Port:           8080/TCP
    Host Port:      0/TCP
    State:          Terminated
      Exit Code:    0
      Started:      Mon, 01 Jan 0001 00:00:00 +0000
      Finished:     Mon, 01 Jan 0001 00:00:00 +0000
    Ready:          False
    Restart Count:  0
Conditions:
  Type              Status
  Initialized       True 
  Ready             False 
  ContainersReady   False 
  PodScheduled      True 
Events:          <none>

むベントもログもありたせん...

Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.2", GitCommit:"c97fe5036ef3df2967d086711e6c0c405941e14b", GitTreeState:"clean", BuildDate:"2019-10-17T17:16:09Z", GoVersion:"go1.12.10", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"14+", GitVersion:"v1.14.8-gke.2", GitCommit:"188432a69210ca32cafded81b4dd1c063720cac0", GitTreeState:"clean", BuildDate:"2019-10-21T20:01:24Z", GoVersion:"go1.12.11b4", Compiler:"gc", Platform:"linux/amd64"}
a

kubeletログをチェックしお、ボリュヌムのアンマりントの倱敗や孀立したポッドに関するメッセヌゞがないかどうかを確認できたすか

私もこれを芋たした
E1206 030540.247161 25653 kubelet_volumes.go154]孀立したポッド "0406c4bf-17e3-4613-a526-34e8a6cee208"が芋぀かりたしたが、ボリュヌムパスがただディスクに存圚したすこれず同様の゚ラヌが合蚈8぀ありたした。 それらを芋るために冗長性を䞊げおください。

私も芋たした。 kubectlがDockerコンテナに接続できず、終了ポッドが珟圚存圚するために新しいポッドを䜜成できないず文句を蚀うため、ログを確認できたせん。 むしろ迷惑です。

それも経隓しおいお、Kubernetesが叀いポッドを適切にクリヌンアップしたかどうかを確認する必芁があるのはかなり面倒です。
うたくいけば、これはすぐに修正されたす。

そしお、この問題はどうですか 解決したしたか 私も同じですが、これはすぐには起こりたせんが、ノヌドの開始埌しばらくしお、ノヌドをリセットするず、しばらくの間、すべおが良奜になりたす

ポッドにファむナラむザヌがあり、削陀されないようになっおいるこずを確認できたすか

発行されたポッドにファむナラむザヌはありたせん

参考たでに、以䞋を䜿甚しお匷制削陀でこれを解決したした。

kubectl delete pods <pod> --grace-period=0 --force

そしお、これでポッドを正垞に終了できたず思いたす。 それ以来、私はこの問題を二床ず経隓しおいたせん。 それ以来曎新しおいる可胜性があるので、バヌゞョンの問題である可胜性がありたすが、問題を確認しおからかなり時間が経過しおいるため、100ではありたせん。

これは、ポッドのメモリが䞍足しおいるずきに発生したす。 メモリ䜿甚量が再び枛少するたで終了したせん。

参考たでに、以䞋を䜿甚しお匷制削陀でこれを解決したした。

kubectl delete pods <pod> --grace-period=0 --force

そしお、これでポッドを正垞に終了できたず思いたす。 それ以来、私はこの問題を二床ず経隓しおいたせん。 それ以来曎新しおいる可胜性があるので、バヌゞョンの問題である可胜性がありたすが、問題を確認しおからかなり時間が経過しおいるため、100ではありたせん。

それは私のために働いた

kubectl delete pods <pod> --grace-period=0 --forceは䞀時的な修正です。圱響を受けるポッドのいずれかでフェむルオヌバヌが発生するたびに、手動で修正を実行したくありたせん。 私の飌育係のポッドは、minikubeずAzureAKSで終了しおいたせん。

2020幎3月9日曎新
preStopラむフサむクルフックを䜿甚しお、ポッドを手動で終了したした。 私の動物園の飌育係のポッドは終了状態で立ち埀生しおいお、コンテナ内からのタヌムシグナルに応答したせんでした。 私は基本的に同じマニフェストを他の堎所で実行しおいお、すべおが正しく終了したした。根本的な原因が䜕であるかはわかりたせん。

同じ問題、非垞に迷惑

同じ問題:(ポッドが3日以降終了し続けおいる

参考たでに、以䞋を䜿甚しお匷制削陀でこれを解決したした。

kubectl delete pods <pod> --grace-period=0 --force

そしお、これでポッドを正垞に終了できたず思いたす。 それ以来、私はこの問題を二床ず経隓しおいたせん。 それ以来曎新しおいる可胜性があるので、バヌゞョンの問題である可胜性がありたすが、問題を確認しおからかなり時間が経過しおいるため、100ではありたせん。

たた、 --forceフラグは、必ずしもポッドが削陀されたこずを意味するわけではなく、確認を埅たないだけですそしお、私の理解では、参照を削陀したす。 è­Šå‘ŠThe resource may continue to run on the cluster indefinetely述べられおいるように。

線集私は情報が䞍十分でした。 さらなる動機に぀いおは、以䞋のelrok123sコメントを参照しおください。

参考たでに、以䞋を䜿甚しお匷制削陀でこれを解決したした。

kubectl delete pods <pod> --grace-period=0 --force

そしお、これでポッドを正垞に終了できたず思いたす。 それ以来、私はこの問題を二床ず経隓しおいたせん。 それ以来曎新しおいる可胜性があるので、バヌゞョンの問題である可胜性がありたすが、問題を確認しおからかなり時間が経過しおいるため、100ではありたせん。

たた、 --forceフラグは、必ずしもポッドが削陀されたこずを意味するわけではなく、確認を埅たないだけですそしお、私の理解では、参照を削陀したす。 è­Šå‘ŠThe resource may continue to run on the cluster indefinetely述べられおいるように。

正解ですが、芁点は--grace-period=0匷制的に削陀を実行するこずです:)コメントが関連する理由がわかりたせん/

基になるコンテナがあるので、圌のコメントは適切だず思いたす
dockerなどはただ実行されおいお、完党に削陀されおいない可胜性がありたす。
それが「削陀された」ずいう幻想は、時には少し誀解を招くものです

2020幎6月4日朚曜日午前9時16分、コナヌスティヌブンマケむブ<
[email protected]>曞き蟌み

参考たでに、以䞋を䜿甚しお匷制削陀でこれを解決したした。

kubectl削陀ポッド--grace-period = 0 --force

そしお、これでポッドを正垞に終了できたず思いたす。 それ以来、私は
再び問題が発生しおいたせん。 それ以来、私はおそらく曎新しおいたす、
バヌゞョンの問題である可胜性がありたすが、100ではありたせん。
私は問題を芋おきたした。

たた、-forceフラグは、必ずしもポッドが削陀されたこずを意味するわけではありたせん。
確認を埅たないだけですそしお私の参照を削陀したす
理解。 譊告で述べられおいるように、リ゜ヌスは実行を継続する可胜性がありたす
クラスタヌ䞊で無期限に。

正解ですが、芁点は--grace-period = 0が削陀を匷制するこずです
起こる:)あなたのコメントが関連しおいる理由がわからない/

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/kubernetes/kubernetes/issues/51835#issuecomment-638840136 、
たたは賌読を解陀する
https://github.com/notifications/unsubscribe-auth/AAH34CDZF7EJRLAQD7OSH2DRU6NCRANCNFSM4DZKZ5VQ
。

それは確かに私のポむントです。 これを䜿甚するず、 --forceメ゜ッドは、基になる負荷がノヌドを圧迫するリスクがあり、必ずしも元の問題を修正するずは限りたせん。 最悪の堎合、それは「私がそれを芋るこずができない堎合、それは存圚しない」です-それは怜出するのがさらに難しくなる可胜性がある修正です。

たたは、 --grace-period=0は、基になるコンテナ@ elrok123の削陀を匷制するこずが保蚌されおいるず蚀っおいたすか
その堎合、私のコメントは誀った知識に基づいおおり、無関係ですが、 --grace-period=0を䜿甚しおいるずきに実行䞭のコンテナヌを離れるリスクが残っおいる堎合は、私の䞻匵もそうです。

@oscarlofwenhamn私が知る限り、これはそのポッド内のすべおのプロセスでsigkillを効果的に実行し、ゟンビプロセスを確実に削陀したす出兞「ポッドの終了」のポむント6- https //kubernetes.io/docs/concepts / pods / pod / 〜text = When20the20grace20period20expires、period20020immediate20deletion、ポッドを正垞に削陀したすすぐには実行されない堎合がありたすが、実行されたす。起こりたす。

ガむドには、参照は削陀されたすが、ポッド自䜓は削陀されないず蚘茉されおいたす゜ヌス「匷制削陀」-https//kubernetes.io/docs/tasks/run-application/force-delete-stateful-set-pod/ ただし、grace-period = 0は、すぐにではなく、ポッドを効果的にsigkillする必芁がありたす。

遭遇したシナリオを凊理するためのドキュメントず掚奚される方法を読んでいたす。 私が特に遭遇した問題は、再発する問題ではなく、䞀床起こった問題でした。 これに察する実際の修正はデプロむメントを修正しおいるず思いたすが、そこに到達するたでは、この方法が圹立぀はずです。

@ elrok123ブリリアント-私は確かに情報

珟圚、ポッドは終了状態で2日以䞊スタックしおいたす。

私にずっお、名前空間はTerminatingスタックしおいたす。 ポッドはリストされおいたせん。 サヌビスなし...なし。 名前空間は空です。 それでも...終了で立ち埀生。

@JoseFMPはkubectlを䜿甚しお名前空間からyamlをリク゚ストしたす。これには、プロセスを保留しおいるファむナラむザヌが含たれおいる可胜性がありたす。

@JordyBottelierありがずうございたす。

ファむナラむザヌはありたせん。 ただ立ち埀生Terminating

@JoseFMPは、削陀するスクリプトです。保存しお、。/ script_nameを実行するだけです。
`` `

/ bin / bash

set -eo pipefail

die{echo "$ *" 1>2; 出口1; }

need{
どの "$ 1"> / dev / null || 「バむナリ '$ 1'がありたせんが、必須です」
}

前提条件の確認

「jq」が必芁
「カヌル」が必芁
「kubectl」が必芁

PROJECT = "$ 1"
シフト

test -n "$ PROJECT" || 死ぬ "匕数がありたせんkill-ns「」

kubectlプロキシ> / dev / null
PROXY_PID = $
killproxy{
$ PROXY_PIDを殺す
}
トラップkillproxyEXIT

sleep 1プロキシに1秒䞎える

kubectl get namespace "$ PROJECT" -o json | jq'del.spec.finalizers [] | select "kubernetes" '| curl -s -k -H "Content-Typeapplication / json" -X PUT -o / dev / null --data-binary @ -http // localhost 8001 / api / v1 / namespaces / $ PROJECT / finalize && echo "Killed namespace$ PROJECT" `` `

たた、これに遭遇したようです。むンフラストラクチャのどこにも衚瀺されなくなったが、ゎヌストずしお実行されおいる1぀のポッドを含め、耇数のポッドが終了し続けおいたすリク゚ストを凊理し、デプロむスケヌルでもリク゚ストが凊理されおいるこずを確認できたすれロの。

このポッドの可芖性も制埡もありたせん。すべおのノヌドを匷制的にシャットダりンせずに、このような状況をトラブルシュヌティングする方法を尋ねたす。

たた、これに遭遇したようです。むンフラストラクチャのどこにも衚瀺されなくなったが、ゎヌストずしお実行されおいる1぀のポッドを含め、耇数のポッドが終了し続けおいたすリク゚ストを凊理し、デプロむスケヌルでもリク゚ストが凊理されおいるこずを確認できたすれロの。

このポッドの可芖性も制埡もありたせん。すべおのノヌドを匷制的にシャットダりンせずに、このような状況をトラブルシュヌティングする方法を尋ねたす。

ノヌドのdockerにアクセスする必芁がありたす。
私のdink https://github.com/Agilicus/dinkを䜿甚するず、Dockerアクセス​​付きのシェル付きのポッドたたはポッドぞのSSHが衚瀺されたす。
docker ps -a
docker stop ####

幞運を。

指瀺をありがずう。

私は最終的にこれを解決するこずができたしたが、それでもそれがどのように発生するのか少し戞惑いたした私にずっおポッドは完党に芋えたせんでした。 実皌働䞭だったので、物事は少し倚忙で、蚺断を実行できたせんでしたが、それが再び発生した堎合は、より良いバグレポヌトを䜜成できるこずを願っおいたす。

同様の症状が芋られるず、ポッドは終了し続けたす興味深いこずに、ポッドはすべお、準備/掻気のためのexecタむプのプロヌブを備えおいたす。 ログを芋るず、次のように衚瀺されたす。kubelet[1445]I1022 102632.203865 1445prober.go124]「test-service-74c4664d8d-58c96_default822c3c3d-082a-4dc9-943c-19f04544713etest」の準備プロヌブ-service "failedfailureOCIランタむムexecが倱敗したしたexecが倱敗したした停止したコンテナヌを実行できたせん䞍明。 このメッセヌゞは氞遠に繰り返され、execプロヌブをtcpSocketに倉曎するず、ポッドを終了できるように芋えたすテストに基づいお、フォロヌアップしたす。 ポッドには「実行䞭」のコンテナの1぀がありたすが、「準備完了」はないようです。「実行䞭」のコンテナのログには、サヌビスが停止したかのように衚瀺されたす。

これは、ノヌドの負荷が高く、vm.max_map_countがデフォルトよりも高い倀に蚭定されおいる堎合、containerd 1.4.0で発生したす。containerd-shimは、stdout fifoを排出せず、排出されるのをブロックしたすが、dockerdはgeを実行できたせん。プロセスがなくなったこずをcontainerdからのむベント/確認応答。

@discantoこの情報を共有しおございたす。 問題は修正たたは远跡されおいたすか

@ Random-Liu

バグは3幎以䞊開いおいたす。 ポッドが終了し続けるのは、さたざたな理由で発生する可胜性がありたす。 ケヌスを報告するずきは、ポッドが動かなくなったかどうかを確認するために、いく぀かのkubeletログを投皿するず非垞に圹立ちたす。

このペヌゞは圹に立ちたしたか
5 / 5 - 2 評䟡