在云边场景下,边缘节点可能会因为网络不稳定而处于离线状态。离线的边缘节点如果设置了节点自治,节点上的业务可以不受影响持续运行,但您无法再通过云端控制面对节点上的业务做运维变更。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 |
常见运维操作
在下述场景中,需要替换执行命令中的变量信息。变量信息和获取方式如下表。
变量 | 说明 | 获取方式 |
| 替换为要修改的Pod的名称。 | 可以通过在节点上执行 |
| 替换为Pod所在的Namespace名称。 | |
| 替换为该Pod对应的ID。 | |
| 替换为要修改的ConfigMap名称。 | 在节点上执行 |
| 替换要修改的Secret的名称。 | 在节点上执行 |
场景一:修改Pod模板
在Pod所在的边缘节点上执行如下命令,打开修改Pod模板的编辑界面。
edgeadm -n {namespace} edit pod {pod-name}
进入编辑模式,修改Pod模板内容,保存并退出。
修改成功后,Pod会自动重启,可以通过如下命令查询Pod配置,验证修改是否生效。
crictl inspectp {pod-id}
场景二:修改指定Pod的ConfigMap
在Pod所在的边缘节点上执行如下命令,打开修改ConfigMap模板的编辑界面。
edgeadm -n {namespace} -p {pod-name} edit configmap {configmap-name}
进入编辑模式,修改ConfigMap模板内容,保存并退出。
修改成功后,指定的Pod会自动重启并使用修改后的ConfigMap。如果节点上还有其他Pod使用该ConfigMap,您可以通过如下命令手动重启Pod使修改生效。
crictl stopp {pod-id}
说明该命令只会停止Pod,Pod停止后会被kubelet自动重启。
场景三:修改指定Pod的Secret
在Pod所在的边缘节点上执行如下命令,打开修改Secret模板的编辑界面。
edgeadm -n {namespace} -p {pod-name} edit secret {secret-name}
进入编辑模式,修改Secret模板内容,保存并退出。
修改成功后,指定的Pod会自动重启并使用修改后的Secret。如果节点上还有其他Pod使用该Secret,您可以通过如下命令手动重启Pod使修改生效。
crictl stopp {pod-id}