在Kubernetes上运行StorageOS

时间:2018-09-12 12:23:25

标签: kubernetes

我正在尝试使用StorageOS在自托管的K8s群集v1.11.1上进行动态卷配置。

StorageOS docs提供两个选项,一个使用新的CSI,另一个使用K8内置的StorageOS卷驱动程序。我首先尝试了基于CSI的方法,但是失败了。据我所知,要使CSI在K8中工作还需要几个准备步骤(according to this reference),这似乎太先进了,因此我尝试采用非CSI方式。

因此,我遵循了文档并创建了pod,服务等,但是pod一直都在重新启动。描述出现错误:

  

活动探测失败:HTTP探测失败,状态码:500

看看日志,我发现其中很多:

time="2018-09-12T12:14:20Z" level=info msg="not first cluster node, joining first node" action=create address=192.168.34.201 category=etcd host=worker21 module=cp target=192.168.33.101
time="2018-09-12T12:14:20Z" level=error msg="failed to join existing cluster" action=create category=etcd endpoint="192.168.33.101,192.168.33.201,192.168.34.201,192.168.34.202" error="Get http://192.168.33.101:5705/v1/members: dial tcp 192.168.33.101:5705: connect: connection refused" module=cp

由于提到了etcd,因此StorageOS似乎找不到它。我以为它将使用集群的etcd。不幸的是,我找不到专门针对StorageOS设置etcd的任何说明。另一方面,端口5705是StorageOS REST API,所以也许这甚至不是问题。任何指针都欢迎!

1 个答案:

答案 0 :(得分:1)

嗯,事实证明阅读自述文件很有帮助。 ;-) 默认情况下,这些脚本会尝试在所有节点(包括主节点)上部署StorageOS守护程序集。如果将这些配置为不接受工作负载,则整个部署将失败。 解决方案是在deploy-storageos脚本中手动维护JOIN变量。