Kubernetes

無法在 Kubernetes 中正確編輯和保存工作節點規範

  • August 6, 2022

我有一個使用 KubeAdm 的 Kubernetes 集群設置(在 AWS 雲中的 EC2 實例中設置)。使用的 CNI 是 Fl​​annel,集群執行良好。我的要求是我正在嘗試在我的集群中設置KubeVirt ( https://kubevirt.io/ ) 以在我的集群中配置 VM 和 pod。KubeVirt 是 CNCF 的一個開源沙盒項目。我已經設置了 KubeVirt,它執行良好。我按照此連結中的步驟設置 KubeVirt:https ://kubevirt.io/quickstart_cloud/

之後,我想在我的 Kubernetes 集群中啟動一個虛擬機。所以,我遵循了官方文件:https ://kubevirt.io/labs/kubernetes/lab1.html

VM 已創建,但處於“調度”階段。我觀察到,與 VM 一起,集群中還創建了一個關聯的 pod。問題是這個特定的 pod 沒有被調度並且處於掛起狀態。

在此處輸入圖像描述

在描述 pod 後,我收到以下錯誤消息,其中說明了有關設備外掛的資訊:

在此處輸入圖像描述

警告 FailedScheduling 2m5s (x4 over 22m) default-scheduler 0/2 個節點可用:2 Insufficient devices.kubevirt.io/kvm。搶占:0/2 個節點可用:2 未發現傳入 pod 的搶占受害者。

我的工作節點中沒有污點,但是這個 pod 不會被安排。然後我找到了一個連結,其中提到了 KubeVirt 的設備外掛(https://kubevirt.io/2018/KVM-Using-Device-Plugins.html)。

查看 Worker 節點描述,在“ allocatable -> devices.kubevirt.io/kvm ”下它被稱為“ 110 ”,當我編輯我的工作節點時,它是“ 0

在此處輸入圖像描述

我嘗試編輯工作節點並將值更改為“110”。我保存了更改並顯示node/kube-c2-workernode-02-poc edited

但是,在我再編輯一次之後,之前添加的更改完全消失了,就好像我根本沒有修改它一樣。我嘗試通過增加 EBS 卷中的 CPU 核心、記憶體和 IOPS 來增加工作節點規格。但不費吹灰之力,結果還是一樣。

那麼,在經歷了旋轉木馬並歸結為問題之後,我該如何更改 Kubernetes 中工作節點的資源分配並正確保存呢?

Kubevirt 需要啟用虛擬化。

那些“可分配”/“容量”不是你可以/不應該改變自己的東西。它們只是反映了你的節點的狀態:你不能在這里托管虛擬機,因此你的 virt-launcher Pod 被卡住了 Pending。

目前,在 EC2 中實現此功能的唯一方法是使用金屬實例。

一般來說,在裸機上:我們應該確保在 BIOS 級別(VT-x / AMD-v)啟用了虛擬化指令。此時,您的節點將註冊可以安排虛擬機。

引用自:https://serverfault.com/questions/1107492