在 Oracle Cloud Infrastructure Kubernetes Engine 節點上保留 Kubelet 和作業系統協助程式的資源
簡介
在 Oracle Cloud Infrastructure Kubernetes Engine (OKE) 上執行 Kubernetes 工作負載時,必須確保工作節點具備 Kubernetes 控制元件和作業系統 (OS) 協助程式的保留資源。適當的保留可避免資源競爭、降低記憶體壓力,以及提升叢集穩定性。這在多租用戶環境、高密度工作負載或疑難排解節點壓力問題時尤其重要。在本教學課程中,您將瞭解如何使用在建立節點集區時套用的自訂 cloud-init
命令檔來設定這些保留。您可以利用 cloud-init
,以最少的努力,將這些組態標準化至叢集節點。
Kubelet 資源組態
Kubernetes 的主要節點代理程式 Kubelet 支援透過組態旗標或檔案管理資源。您可以定義:
- kubeReserved:保留 Kubernetes 協助程式的資源,例如
kubelet
和kube-proxy
。 - systemReserved:保留作業系統層級服務的資源,例如
journald
或sshd
。
目標
-
瞭解如何使用
kubeReserved
和systemReserved
為 Kubernetes 和作業系統常駐程式保留 CPU 和記憶體。 -
使用自訂
cloud-init
命令檔部署受管理節點集區,以在啟動時套用 Kubelet 組態。
必備條件
-
存取具備建立 OKE 叢集和節點集區權限的 Oracle Cloud Infrastructure (OCI) 帳戶。
-
現有的 OKE 叢集 (或者您可以建立新的叢集)。
-
熟悉 Kubernetes 和 Oracle Cloud Infrastructure 命令行介面 (OCI CLI) 的基本功能。
步驟 1:撰寫 cloud-init
命令檔
下列 cloud-init
程序檔會建立保留 CPU、記憶體和臨時儲存體的 Kubelet 組態檔,並設定收回臨界值。
#!/bin/bash
curl --fail -H "Authorization: Bearer Oracle" -L0 http://169.254.169.254/opc/v2/instance/metadata/oke_init_script | base64 --decode >/var/run/oke-init.sh
bash /var/run/oke-init.sh --kubelet-extra-args "--kube-reserved=cpu=500m,memory=1Gi --system-reserved=cpu=100m,memory=100Mi"
步驟 2:使用 cloud-init
命令檔建立節點集區
-
前往 OCI 主控台並瀏覽至您的 OKE 叢集。
-
選取節點集區,然後按一下新增節點集區以建立新的節點集區,或按一下編輯以修改現有的節點集區。
-
依您的名稱、區間、節點位置、資源配置以及網路偏好設定設定您的節點集區。
-
在顯示進階選項底下,按一下貼上 Cloud-init 命令檔並貼上您的自訂命令檔。
-
完成其餘的節點集區設定值,然後按一下新增。
佈建節點之後,命令檔會在啟動時執行,並自動套用您的資源限制。
注意:如果您使用 Terraform 自動執行設定,則可以在建立節點集區資源時,傳送
node_config_details.cloud_init_script
區塊中的命令檔。
確認
- 作者 - JP Santana (主要雲端架構師)
其他學習資源
在 docs.oracle.com/learn 上探索其他實驗室,或在 Oracle Learning YouTube 頻道上存取更多免費學習內容。此外,請造訪 education.oracle.com/learning-explorer 以成為 Oracle Learning Explorer。
如需產品文件,請造訪 Oracle Help Center 。
Reserve Resources for Kubelet and Operating System Daemons on Oracle Cloud Infrastructure Kubernetes Engine Nodes
G38637-01
Copyright ©2025, Oracle and/or its affiliates.