如何使用OpenStack Cinder在Kubernetes Cluster中创建存储类并动态配置持久卷

问题描述 投票:3回答:1

最近在练习kubernetes时,我发现没有专门解释如何在kubernetes中正确使用煤渣的文档和示例。

那么如何设置煤渣用于kubernetes?

kubernetes openstack cinder
1个回答
5
投票

我做了一些实验,并研究了如何用kubernetes设置煤渣。只需找到合适的文件和分享。

制备

  • 在州长群集中
  • openstack环境并确保cinder服务可用

背景

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

脚步

  1. 准备cloud.conf文件以包含您的openstack信誉

准备你的openstack信誉并保存为文件,例如/etc/kubernetes/cloud.conf位于kube-controller-manager所在的kubernetes控制面板中。以下是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项目是可选的,取决于你的openstack auth url是http还是https

  1. 调整kube-controller-manager启动配置

此链接是kube-controller-managerhttps://kubernetes.io/docs/admin/kube-controller-manager/)的完整详细信息选项

实际上我们应该根据你当前的参数添加两个额外的参数

--cloud-provider=openstack
--cloud-config=/etc/kubernetes/cloud.conf

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

只有一个提示,如果您使用静态pod for kube-controller-manager,请确保已将所有文件(如cloud.conf或openstack ca文件)挂载到容器中。

验证

我们将创建一个存储类,并使用此存储类动态创建持久卷。

  1. 创建一个名为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 
  1. 创建PersistentVolumeClaim以使用StorageClass在Cinder中提供持久卷:

演示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工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.