最近在练习kubernetes时,我发现没有专门解释如何在kubernetes中正确使用cinder的文档和示例。
那么如何设置煤渣用于kubernetes?
答案 0 :(得分:5)
我做了一些实验并研究了如何用kubernetes设置煤渣。只需找到合适的文件和分享。
<强>制备强>
<强>背景强>
从我的调查中,组件kube-controller-manager
负责在Kubernetes中加载卷插件和相关内容。因此,我们可以通过调整kube-controller-manager
配置来提供cinder。
<强>步骤强>
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身份验证网址是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
的静态窗格,请确保已将所有文件(如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
现在通过命令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 | |
所以现在使用Kubernetes中的Cinder,StorageClass运行良好。
答案 1 :(得分:1)
非常感谢您的分享!
该解决方案适用于我(K8S 1.14.3
,OpenStack Queen
),我只添加了参数/ volumeMounts / volume的代码段,如下所示:
参数:
- --cloud-provider=openstack
- --cloud-config=/etc/kubernetes/cloud-config
volumeMounts :
-- mountPath: /etc/kubernetes/cloud-config
name: cloud
readOnly: true
音量:
-- hostPath:
path: /etc/kubernetes/cloud.conf
type: FileOrCreate
name: cloud