如何将标记添加到kubelet

时间:2019-04-01 12:56:59

标签: kubernetes rook

我想为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标志?

2 个答案:

答案 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/