【问题标题】:dynamic storage class on gcp kubernetesgcp kubernetes 上的动态存储类
【发布时间】:2020-02-11 19:25:54
【问题描述】:

我正在尝试在 gcp 云上旋转的 centos7 上设置 k8 集群。我创建了 3 个主节点和 2 个工作节点。安装和检查都很好。现在我正在尝试创建动态存储类以使用 gcp 磁盘,但不知何故它进入挂起状态并且没有找到错误消息。谁能指出我纠正文档或步骤以确保它有效。

[root@master1 ~]# cat slowdisk.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-standard
  replication-type: none
  zone: us-east1-b

[root@master1 ~]# cat pclaim-slow.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: claim2
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2G

[root@master1 ~]# kubectl get pvc
NAME     STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
claim2   Pending                                                     5m58s

[root@master1 ~]# kubectl describe pvc
Name:          claim2
Namespace:     default
StorageClass:
Status:        Pending
Volume:
Labels:        <none>
Annotations:   kubectl.kubernetes.io/last-applied-configuration:
                 {"apiVersion":"v1","kind":"PersistentVolumeClaim","metadata":{"annotations":{},"name":"claim2","namespace":"default"},"spec":{"accessModes...
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode:    Filesystem
Mounted By:    <none>
Events:        <none>

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    您还没有提到存储类名称。值 storageClassName:standard 需要添加到 PVC 清单文件 pclaim-slow.yaml 中。

    【讨论】:

    • 我确实尝试添加该参数,但结果相同。是否有任何文档/步骤来设置这个动态存储类?
    【解决方案2】:

    您在 PVC yaml 中缺少 storageClassName。以下是更新 pvc.yaml。也检查documentation

    kind: PersistentVolumeClaim metadata: name: claim2 spec: accessModes: - ReadWriteOnce storageClassName:标准 resources: requests: storage: 2G

    【讨论】:

    • 我有它。我删除了过去的 sc 和 pvc 并重新创建。下面是配置文件 [root@master1 02112020]# cat pclaim-fast.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: claim1 spec: accessModes: - ReadWriteOnce storageClassName: fast resources: requests: storage: 2G [root@master1 02112020 ]# kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEPANSION AGE fast kubernetes.io/gce-pd Delete Immediate false 29m
    • @AdSaheba 你能粘贴kubectl get pv 的输出以及来自命名空间/pvc 的事件吗?
    【解决方案3】:

    您没有从您的PersistenVolumeClaim 收到任何错误事件,这有点奇怪。

    你可以阅读Provisioning regional Persistent Disks,上面写着:

    它处于测试阶段

    这是本地 PersistentVolume 的 Beta 版。此功能不包含在任何 SLA 或弃用政策中,并且可能会发生向后不兼容的更改。

    还有 pd-standard 类型,您配置的应该用于至少 200Gi 的驱动器。

    注意:要使用pd-standard 类型的区域永久性磁盘,请将PersistentVolumeClaim.storage 属性设置为200Gi 或更高。如果您需要更小的永久性磁盘,请使用 pd-ssd 而不是 pd-standard

    您可以阅读有关Dynamic Persistent Volumes 的更多信息。

    如果您遇到此错误PVC pending Failed to get GCE GCECloudProvider,这意味着您的集群未配置为使用GCE 作为Cloud Provider。可以通过将cloud-provider: gce 添加到控制器管理器或仅应用yaml 来修复它:

    apiVersion: kubeadm.k8s.io/v1beta1
    kind: ClusterConfiguration
    controllerManager:
      extraArgs:
        cloud-provider: gce
        cloud-config: /etc/kubernetes/cloud
      extraVolumes:
      - name: cloud-config
        hostPath: /etc/kubernetes/cloud-config
        mountPath: /etc/kubernetes/cloud
        pathType: FileOrCreate
    

    kubeadm upgrade apply --config gce.yaml

    如果有帮助,请告诉我,如果没有,我会尽力提供更多帮助。

    【讨论】:

    • 我应用了上面的文件,并使用 gce 作为云提供商进行了升级。这是输出。 [root@master1 ~]# kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEPANSION AGE slow kubernetes.io/gce-pd Delete Immediate false 6m3s [root@master1 ~]# kubectl get pvc NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE claim2 Pending slow 4m47s
    • [root@master1 ~]# kubectl get pv 在默认命名空间中找不到资源。 [root@master1 ~]# kubectl describe pvc Events: Type Reason Age From Message ---- ------ ---- ---- ------- 警告 ProvisioningFailed 92s (x9 over 5m13s)持久卷控制器无法使用 StorageClass“慢”配置卷:无法确定要在其中配置卷的区域
    • /etc/kubernetes/cloud-config 中是否有任何特定参数?我在下面添加了内容 [root@master1 ~]# cat /etc/kubernetes/cloud-config [Global] project-id = "enterp-search" multizone = true
    • 我同时使用了 pd-standard 和 pd-ssd,两者在 pvc 中的显示相同。警告 ProvisioningFailed 103s (x17 over 23m) persistentvolume-controller 无法使用 StorageClass "slow" 配置卷:无法确定要在其中配置卷的区域
    • @AdSaheba,请编辑主要问题并将这些附加信息放在那里。
    猜你喜欢
    • 2022-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2020-05-23
    • 2022-06-10
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多