最近在练习kubernetes的时候,发现没有doc和example专门解释如何在kubernetes中正确使用cinder。
那么如何设置要在 kubernetes 中使用的 cinder 呢?
最佳答案
我做了一些实验并研究了如何使用 kubernetes 设置 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 是否为 http
或 https
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
演示 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/