全部產品
Search
文件中心

Container Service for Kubernetes:邊緣節點離線營運

更新時間:Oct 23, 2024

在雲邊情境下,邊緣節點可能會因為網路不穩定而處於離線狀態。離線的邊緣節點如果設定了節點自治,節點上的業務可以不受影響持續運行,但您無法再通過雲端控制面對節點上的業務做營運變更。ACK Edge叢集提供了邊緣節點離線營運工具,用於支援使用者在緊急情況下,對離線節點上的業務進行營運操作,例如業務復原,資源變更配置,業務配置修改等。本文為您介紹如何使用邊緣節點離線營運工具。

前提條件

注意事項

  • 該營運工具只能在邊緣節點離線的情況下作為緊急營運方式來使用。

  • 該工具只支援修改Pod、ConfigMap、Secret三類資源。

  • 該工具只能修改本節點上的資源,例如當您修改了ConfigMap的內容,只在本節點生效,其他節點使用了該ConfigMap也不受影響。

  • 該營運工具所做的操作不會同步到雲端,當節點狀態恢複正常之後,該工具所做的改動會被雲端的內容重新覆蓋。若您需要修改永久生效,需要在叢集雲端中重新修改。

擷取edgeadm營運工具

執行以下命令擷取離線營運工具:

 export REGION="" INTERCONNECT_MODE="" CLUSTER_VERSION=""; export ARCH=$(uname -m | awk '{print ($1 == "x86_64") ? "amd64" : (($1 == "aarch64") ? "arm64" : "amd64")}') INTERNAL=$( [ "$INTERCONNECT_MODE" = "private" ] && echo "-internal" || echo "" ); wget http://aliacs-k8s-${REGION}.oss-${REGION}${INTERNAL}.aliyuncs.com/public/pkg/run/attach/${CLUSTER_VERSION}/${ARCH}/edgeadm -O edgeadm; chmod u+x edgeadm;

參數說明如下:

參數

說明

樣本值

CLUSTER_VERSION

ACK Edge叢集發布的版本和具體版本號碼,請參見版本發布說明

1.26.3-aliyun.1

REGION

ACK Edge叢集支援的地區及其Region ID,請參見開服地區

cn-hangzhou

INTERCONNECT_MODE

指定節點接入的網路類型。

  • basic:公網接入。

  • private:專線接入。

basic

常見營運操作

在下述情境中,需要替換執行命令中的變數資訊。變數資訊和擷取方式如下表。

變數

說明

擷取方式

{pod-name}

替換為要修改的Pod的名稱。

可以通過在節點上執行crictl pods查看。

{namespace}

替換為Pod所在的Namespace名稱。

{pod-id}

替換為該Pod對應的ID。

{configmap-name}

替換為要修改的ConfigMap名稱。

在節點上執行ls /etc/kubernetes/cache/kubelet/configmaps.v1.core/{namespace}查看。

{secret-name}

替換要修改的Secret的名稱。

在節點上執行ls /etc/kubernetes/cache/kubelet/secrets.v1.core/{namespace}查看。

情境一:修改Pod模板

  1. 在Pod所在的邊緣節點上執行如下命令,開啟修改Pod模板的編輯介面。

    edgeadm -n {namespace}  edit pod {pod-name} 
  2. 進入編輯模式,修改Pod模板內容,儲存並退出。

  3. 修改成功後,Pod會自動重啟,可以通過如下命令查詢Pod配置,驗證修改是否生效。

    crictl inspectp {pod-id}

情境二:修改指定Pod的ConfigMap

  1. 在Pod所在的邊緣節點上執行如下命令,開啟修改ConfigMap模板的編輯介面。

    edgeadm -n {namespace} -p {pod-name} edit configmap {configmap-name}
  2. 進入編輯模式,修改ConfigMap模板內容,儲存並退出。

  3. 修改成功後,指定的Pod會自動重啟並使用修改後的ConfigMap。如果節點上還有其他Pod使用該ConfigMap,您可以通過如下命令手動重啟Pod使修改生效。

  4. crictl stopp {pod-id}
    說明

    該命令只會停止Pod,Pod停止後會被kubelet自動重啟。

情境三:修改指定Pod的Secret

  1. 在Pod所在的邊緣節點上執行如下命令,開啟修改Secret模板的編輯介面。

    edgeadm -n {namespace} -p {pod-name} edit secret {secret-name}
  2. 進入編輯模式,修改Secret模板內容,儲存並退出。

  3. 修改成功後,指定的Pod會自動重啟並使用修改後的Secret。如果節點上還有其他Pod使用該Secret,您可以通過如下命令手動重啟Pod使修改生效。

    crictl stopp {pod-id}