GlusterFS 卷
備註
本節僅適用於 RKE 叢集。
在將資料儲存在 GlusterFS 卷上的叢集中,你可能會遇到在重新啟動 kubelet 後 Pod 無法掛載卷的問題。kubelet 的日誌會顯示:transport endpoint is not connected。為了防止這種情況發生,你可以配置叢集在 kubelet 容器中掛載 systemd-run 二進位檔。在更改叢集配置之前,有兩個要求:
- 節點需要安裝
systemd-run二進位檔(可以在每個叢集節點上使用命令which systemd-run檢查) systemd-run二進位檔需要與 hyperkube 映像所基於的 Debian OS 相容(可以在每個叢集節點上使用以下命令檢查,將映像標籤替換為你要使用的 Kubernetes 版本)
docker run -v /usr/bin/systemd-run:/usr/bin/systemd-run -v /usr/lib/x86_64-linux-gnu/libcrypto.so.3:/usr/lib/x86_64-linux-gnu/libcrypto.so.3 -v /lib/systemd/libsystemd-shared-249.so:/lib/systemd/libsystemd-shared-249.so --entrypoint /usr/bin/systemd-run rancher/hyperkube:v1.26.14-rancher1 --version
警告
在更新 Kubernetes YAML 以掛載 systemd-run 二進位檔之前,請確保叢集節點上已安裝 systemd 套件。如果在 Kubernetes YAML 中建立綁定掛載_之前_未安裝此套件,Docker 將自動在每個節點上建立目錄和檔案,並且不允許套件安裝成功。
services:
kubelet:
extra_binds:
- "/usr/bin/systemd-run:/usr/bin/systemd-run"
- "/usr/lib/x86_64-linux-gnu/libcrypto.so.3:/usr/lib/x86_64-linux-gnu/libcrypto.so.3"
- "/lib/systemd/libsystemd-shared-249.so:/lib/systemd/libsystemd-shared-249.so"
叢集完成配置後,你可以透過查找以下日誌行來檢查 kubelet 容器日誌,以確認功能是否已啟用:
Detected OS with systemd