gpt4 book ai didi

kubernetes - 如何使用 OpenStack Cinder 在 Kubernetes 集群中创建存储类并动态提供持久卷

转载 作者:行者123 更新时间:2023-12-02 11:28:42 36 4
gpt4 key购买 nike

最近在练习kubernetes的时候,发现没有doc和example专门解释如何在kubernetes中正确使用cinder。

那么如何设置要在 kubernetes 中使用的 cinder 呢?

最佳答案

我做了一些实验并研究了如何使用 kubernetes 设置 cinder。只需找到一个合适的文档和分享。

准备

  • kubernetes 集群
  • openstack 环境并确保 cinder 服务可用

  • 背景

    根据我的调查,组件 kube-controller-manager负责在 Kubernetes 中加载卷插件和相关的。所以我们可以通过调整 kube-controller-manager 来使 cinder 可用配置。

    步骤
  • 准备 cloud.conf包含您的 openstack 凭证的文件

  • 准备您的 openstack 凭证并保存为文件,例如 /etc/kubernetes/cloud.conf在 kubernetes 控制面板中 kube-controller-manager位于。以下是 cloud.conf 的示例
    [Global]
    auth-url=$your_openstack_auth_url
    username=$your_openstack_user
    password=$your_user_pw
    region=$your_openstack_reigon
    tenant-name=$your_project_name
    domain-name=$your_domain_name
    ca-file=$your_openstack_ca

    大多数可以从您的 stackrc 中找到文件。和 ca-file item 是可选的,具体取决于您的 openstack auth url 是否为 httphttps
  • 调整 kube-controller-manager开始配置

  • 此链接是 kube-controller-manager 的完整详细选项( https://kubernetes.io/docs/admin/kube-controller-manager/ )

    实际上我们应该根据您当前的参数添加两个额外的参数
    --cloud-provider=openstack
    --cloud-config=/etc/kubernetes/cloud.conf

    主要有两种启动方式 kube-controller-manager : 1) 使用 systemd 2) 使用静态 pod 。

    只是一个提示,如果您正在为 kube-controller-manager 使用静态 pod ,确保您已将所有文件(例如 cloud.conf 或 openstack ca 文件)安装到您的容器中。

    验证

    我们将创建一个存储类,并使用该存储类动态创建持久卷。
  • 创建一个名为 standard 的存储类:

  • 演示-sc.yml:
    apiVersion: storage.k8s.io/v1beta1
    kind: StorageClass
    metadata:
    name: standard
    annotations:
    storageclass.beta.kubernetes.io/is-default-class: "true"
    labels:
    kubernetes.io/cluster-service: "true"
    addonmanager.kubernetes.io/mode: EnsureExists
    provisioner: kubernetes.io/cinder

    使用命令 kubectl create -f demo-sc.yml创建和使用命令 kubectl get sc验证它是否正确创建
    NAME                 TYPE
    standard (default) kubernetes.io/cinder
  • 创建一个 PersistentVolumeClaim 以在 Cinder 中使用 StorageClass 提供一个 Persistent Volume:

  • 演示 pvc.yml:
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
    name: cinder-claim
    annotations:
    volume.beta.kubernetes.io/storage-class: "standard"
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: 1Gi

    通过 kubectl create -f demo-pvc.yml 创建 PVC

    现在通过命令检查 kubectl get pvc
    NAME           STATUS    VOLUME                                         CAPACITY   ACCESSMODES   STORAGECLASS   AGE
    cinder-claim Bound pvc-5dd3d62e-9204-11e7-bc43-fa163e0e0379 1Gi RWO standard 23h

    而在openstack环境中,通过命令 cinder list | grep pvc-5dd3d62e-9204-11e7-bc43-fa163e0e0379进行检查
        root@ds0114:~# cinder list | grep pvc-5dd3d62e-9204-11e7-bc43- fa163e0e0379
    | ddd8066d-2e16-4cb2-a89e-cd9d5b99ef1b | available | kubernetes-dynamic- pvc-5dd3d62e-9204-11e7-bc43-fa163e0e0379 | 1 | CEPH_SSD | false | |

    所以现在 StorageClass 在 Kubernetes 中使用 Cinder 运行良好。

    关于kubernetes - 如何使用 OpenStack Cinder 在 Kubernetes 集群中创建存储类并动态提供持久卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46067591/

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