自动将 Pod 移动到另一个节点

问题描述

如果第一个节点出现故障,是否有可能将 pod/deployment/statefulset 移动到另一个节点或在另一个节点上自动重新创建?有问题的 pod 设置为 1 个副本。那么是否可以为 kubernetes pod 配置某种故障转移?我已经尝试了 pod 关联设置,但没有任何东西自动移动,大约 10 分钟后。

上述 pod 的 yaml 如下所示:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: ceph-rbd-sc-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
  storageClassName: ceph-rbd-sc
---
apiVersion: v1
kind: Pod
metadata:
  name: ceph-rbd-pod-pvc-sc
  labels:
    app: ceph-rbd-pod-pvc-sc
spec:
  containers:
  - name:  ceph-rbd-pod-pvc-sc
    image: busybox
    command: ["sleep","infinity"]
    volumeMounts:
    - mountPath: /mnt/ceph_rbd
      name: volume
  nodeSelector:
    etiket: worker
  volumes:
  - name: volume
    persistentVolumeClaim:
      claimName: ceph-rbd-sc-pvc
  affinity:
    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
      - labelSelector:
          matchLabels:
            name: ceph-rbd-pod-pvc-sc
        topologyKey: "kubernetes.io/hostname"

编辑:

我设法让它工作。但是现在我有另一个问题,另一个节点中新创建的 pod 卡在“容器创建”中,而旧 pod 卡在“终止”中。我还收到 Multi-Attach error for volume 说明旧 pod 仍在使用 pv。任何带有 pv 的部署/状态集的情况都是一样的,只有当出现故障的节点重新联机时才能解决问题。有解决办法吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)