我想为kubernetes部署rook。我使用1个主机和3个工人,并且主机是ubuntu裸机。但是容器卡在了创建容器中。经过大量搜索后,我知道我应该使用上面说过的文档https://github.com/rook/rook/blob/master/Documentation/flexvolume.md#most-common-readwrite-flexvolume-path
配置Rook运算符您必须提供找到的以上内容 通过设置以下选项来部署rook-operator时的FlexVolume路径 环境变量FLEXVOLUME_DIR_PATH。例如:
env:[...] -名称:FLEXVOLUME_DIR_PATH值:“ / var / lib / kubelet / volumeplugins”(在operator.yaml清单中替换为 路径,或者如果您使用掌舵,请将agent.flexVolumeDirPath设置为 FlexVolume路径)
配置Kubernetes kubelet您需要添加flexvolume标志 以及Kubernetes集群中所有节点的kubelet的路径:
-volume-plugin-dir = PATH_TO_FLEXVOLUME(其中PATH_TO_FLEXVOLUME是上面找到的FlexVolume路径)
问题是我如何在所有节点的kubelet的路径中添加flexvolume标志?
答案 0 :(得分:2)
@yasin lachini,
如果您在裸机上部署kubernetes集群,则无需配置任何内容。这是因为/ usr / libexec / kubernetes / kubelet-plugins / volume / exec /是kubelet的默认FlexVolume路径,而Rook假定默认的FlexVolume路径(如果未进行其他设置)。
我的环境:
rook-ceph / operator.yml(使用默认的FLEXVOLUME_DIR_PATH):
...
# Set the path where the Rook agent can find the flex volumes
# - name: FLEXVOLUME_DIR_PATH
# value: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec"
...
部署后,在节点上:
# ls /usr/libexec/kubernetes/kubelet-plugins/volume/exec/
ceph.rook.io~rook ceph.rook.io~rook-ceph-system rook.io~rook rook.io~rook-ceph-system
答案 1 :(得分:0)
有两个选项。
我。设置
KUBELET_EXTRA_ARGS=--FLEXVOLUME_DIR_PATH=/var/lib/kubelet/volumeplugins
在文件内
/etc/default/kubelet
并重新启动kubelete服务
sudo systemctl restart kubelet
II 。您可以通过配置文件设置kubelet参数。
例如:
kind: KubeletConfiguration
apiVersion: kubelet.config.k8s.io/v1beta1
env:
- name: FLEXVOLUME_DIR_PATH
value: "/var/lib/kubelet/volumeplugins"
然后,您只需将--config标志设置为Kubelet配置文件的路径来启动Kubelet
sudo kubelet --config=/etc/default/kubelet/custom-conf.config
https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/