如何在 Kubernetes 中使用 cinder 插件
How to use the cinder plugin in Kubernetes
在裸机上使用 Kubernetes 并尝试找出如何从 OpenStack 云提供商安装外部块存储卷。
我知道我需要使用 Cinder 插件。
https://github.com/kubernetes/kubernetes/tree/master/pkg/volume/cinder
我修改了一个我找到的例子来构建一个测试pod,volume简单定义如下,在pod定义中:
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
name: test
spec:
containers:
- image: busybox
name: busybox
command:
- "sleep"
- "3600"
volumeMounts:
- name: persistent-storage
mountPath: /var/lib/storage
volumes:
- name: persistent-storage
cinder:
volumeID: bd82f7e2-wece-4c01-a505-4acf60b07f4a
fsType: ext4
我有一个 volumeID 我从 OpenStack volume API.
我把它放在那里了,但我不确定卷是否真的被挂载了:
我不确定实际如何检查,但我猜想 df -h
会显示远程卷正在主机和容器中挂载,但我没有看到任何内容。
我想如果卷没有挂载,Kubernetes 会给我一个错误,pod 会失败或其他什么...但它运行。
所以,问题是:如何验证卷是否已安装?而且我相信它没有安装,我应该怎么做才能使这个 cinder 插件工作?
我搜索的结论是,使用块存储的节点也需要在同一个 OpenStack 集群上。
也就是说,不可能 (easily/standard) 将 Cinder 块存储挂载到不在 Open Stack 集群上的节点集群中。
参见:
Kubernetes: using OpenStack Cinder from one cloud provider while nodes on another
在裸机上使用 Kubernetes 并尝试找出如何从 OpenStack 云提供商安装外部块存储卷。
我知道我需要使用 Cinder 插件。 https://github.com/kubernetes/kubernetes/tree/master/pkg/volume/cinder
我修改了一个我找到的例子来构建一个测试pod,volume简单定义如下,在pod定义中:
apiVersion: v1
kind: Pod
metadata:
name: test
labels:
name: test
spec:
containers:
- image: busybox
name: busybox
command:
- "sleep"
- "3600"
volumeMounts:
- name: persistent-storage
mountPath: /var/lib/storage
volumes:
- name: persistent-storage
cinder:
volumeID: bd82f7e2-wece-4c01-a505-4acf60b07f4a
fsType: ext4
我有一个 volumeID 我从 OpenStack volume API.
我把它放在那里了,但我不确定卷是否真的被挂载了:
我不确定实际如何检查,但我猜想 df -h
会显示远程卷正在主机和容器中挂载,但我没有看到任何内容。
我想如果卷没有挂载,Kubernetes 会给我一个错误,pod 会失败或其他什么...但它运行。
所以,问题是:如何验证卷是否已安装?而且我相信它没有安装,我应该怎么做才能使这个 cinder 插件工作?
我搜索的结论是,使用块存储的节点也需要在同一个 OpenStack 集群上。
也就是说,不可能 (easily/standard) 将 Cinder 块存储挂载到不在 Open Stack 集群上的节点集群中。
参见: Kubernetes: using OpenStack Cinder from one cloud provider while nodes on another