簡體   English   中英

為什么我在運行 Docker Desktop 時得到“0/1 個節點可用”?

[英]Why am I getting `0/1 nodes are available` when running Docker Desktop?

我正在使用 Kube.netes 運行 Docker 桌面。

我可以 ssh 到該節點,並且我在該節點上運行其他 pod。

但是,當我將 StatefulSet 應用於集群時,我得到:

0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.

狀態集在這里:

https://kube.netes.io/docs/concepts/workloads/controllers/statefulset/#components

kubectl get no
NAME             STATUS   ROLES           AGE    VERSION
docker-desktop   Ready    control-plane   6d2h   v1.24.1

如果您按原樣應用此處定義的清單,則問題出在以下代碼段中,尤其是storageClassName. 很可能,您的集群沒有名為my-storage-class.

 volumeClaimTemplates:
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "my-storage-class"
      resources:
        requests:
          storage: 1Gi

要獲得明確的錯誤聲明,您可以運行以下命令:

kubectl describe  pvc www-web-0

你會注意到類似的東西:

storageclass.storage.k8s.io "my-storage-class" not found

解決方案:

您可以運行以下命令來獲取集群的可用storage class並將其替換為 yaml 文件。

kubectl get sc

或者,您可以刪除storageClassName並讓默認存儲類發揮作用。 但是,要使其正常工作,您的集群中必須有一個默認 sc。

如果您沒有存儲類,則需要創建一個。 看看這個

如果您在本地將 k8s 與 docker 桌面一起使用,請確保下面的 storageClassName 設置為“ hostpath ”是我的本地 redis 集群的 volumeClaimTemplates 之一。 當獲得“ 0/1 nodes are available ”這是一個令人困惑的錯誤時,評論救了我幾次

  volumeClaimTemplates:
- metadata:
    name: data
  spec:
    accessModes: ["ReadWriteOnce"]
    ##############################
    ## this will catch you out ##
    # for Docker Desktop (Local K8s Cluster) set to -> storageClassName: "hostpath"
    ##############################
    storageClassName: "hostpath"
    resources:
      requests:
        storage: 250Mi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM