簡體   English   中英

如何給 kubelet 添加標志

[英]How to add flag to kubelet

我想為 kubernetes 部署 rook。 我使用 1 個 master 和 3 個 worker,主機是 baremetal 中的 ubuntu。 但容器卡在了創建容器的過程中。 經過大量搜索,我明白我應該使用這個文檔https://github.com/rook/rook/blob/master/Documentation/flexvolume.md#most-common-readwrite-flexvolume-path

配置 Rook operator 在通過設置環境變量 FLEXVOLUME_DIR_PATH 部署 rook-operator 時,您必須提供上面找到的 FlexVolume 路徑。 例如:

環境:[...] - 名稱:FLEXVOLUME_DIR_PATH 值:“/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 標志?

@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

有兩種選擇。

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/

目前你可以在這個文件中添加標志: /var/lib/kubelet/kubeadm-flags.env

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM