gpt4 book ai didi

kubernetes - 如何自动删除发生故障的Kubernetes Ceph节点?

转载 作者:行者123 更新时间:2023-12-02 12:26:04 30 4
gpt4 key购买 nike

在具有多个节点且在RWO模式下使用Ceph块卷的环境中,如果一个节点发生故障(无法访问且不会很快恢复),并且 pods 已重新安排到另一个节点,则 pods 如果具有一个Ceph块PVC。原因是该卷被另一个Pod“仍在使用”(因为该节点发生故障,因此无法正确删除其资源)。
如果我使用kubectl delete node dead-node从群集中删除节点,则由于资源被删除,容器可以启动。
如何自动执行此操作?我考虑过的一些可能性是:

  • 我可以为该卷设置强制分离超时吗?
  • 设置删除节点超时?
  • 自动删除具有给定污点的节点?

  • 我可以将 ReadWriteMany模式与其他卷类型一起使用,以使PV可以被多个容器使用,但这不是理想的选择。

    最佳答案

    您可能有一个sidecar container并调整了pod中的Readiness and Liveness探针,这样,如果使用它的容器在一段时间内无法访问Ceph块卷,则该pod不会重新启动。 (不过,可能会对您的应用程序产生其他影响)
    像这样:

    apiVersion: v1
    kind: Pod
    metadata:
    labels:
    test: ceph
    name: ceph-exec
    spec:
    containers:
    - name: liveness
    image: k8s.gcr.io/busybox
    args:
    - /bin/sh
    - -c
    - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
    livenessProbe:
    exec:
    command:
    - cat
    - /tmp/healthy
    initialDelaySeconds: 5
    periodSeconds: 5
    - name: cephclient
    image: ceph
    volumeMounts:
    - name: ceph
    mountPath: /cephmountpoint
    livenessProbe:
    ... 👈 something
    initialDelaySeconds: 5
    periodSeconds: 3600 👈 make this real long
    ✌️☮️

    关于kubernetes - 如何自动删除发生故障的Kubernetes Ceph节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63142413/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com