1

我想为 kubernetes 部署 rook。我使用 1 个 master 和 3 个 worker,主机是裸机中的 ubuntu。但容器卡在创建容器中。经过大量搜索,我明白我应该使用这个文档https://github.com/rook/rook/blob/master/Documentation/flexvolume.md#most-common-readwrite-flexvolume-path

配置 Rook 操作符 在部署 rook-operator 时,您必须通过设置环境变量 FLEXVOLUME_DIR_PATH 来提供上面找到的 FlexVolume 路径。例如:

env: [...] - name: FLEXVOLUME_DIR_PATH value: "/var/lib/kubelet/volumeplugins" (在 operator.yaml 清单中替换为路径,或者如果您使用 helm 将 agent.flexVolumeDirPath 设置为 FlexVolume 路径)

配置 Kubernetes kubelet 您需要添加 flexvolume 标志以及 Kubernetes 集群中所有节点的 kubelet 的路径:

--volume-plugin-dir=PATH_TO_FLEXVOLUME(其中 PATH_TO_FLEXVOLUME 是上面找到的 FlexVolume 路径)

问题是如何在所有节点的 kubelet 路径中添加 flexvolume 标志?

4

2 回答 2

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
于 2019-04-01T15:31:29.100 回答
0

有两种选择。

。放

KUBELET_EXTRA_ARGS=--FLEXVOLUME_DIR_PATH=/var/lib/kubelet/volumeplugins

在文件内

/etc/default/kubelet

并重启 kubelete 服务

sudo systemctl restart kubelet

.您可以通过配置文件设置 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/

于 2019-04-01T14:39:57.553 回答