本文描述了如何通过控制台管理节点,包括下线节点、封锁节点和移除节点等操作。
步骤一:进入节点列表页面
步骤二:管理节点
在部分场景中,需要下线节点后进行后续操作、以保证数据安全。场景包括版本升级、节点扩容、停机维护、变更操作等。
更多安全下线节点相关最佳实践,您可以参考中心节点的最佳实践: 安全下线节点。
说明
注意:
区别于下线节点,封锁节点不会将 Pod 驱逐到集群内其他节点上,而是将节点调整到已封锁且不可调用状态,已经运行在该节点上的 Pod 不受影响。
说明
注意:封锁操作将会减少该节点所属集群的剩余可用资源配额。若集群本身预留的可用资源不足,将会影响后续正常业务的调度和存量业务的运行。
该功能可用于恢复节点的调度能力,将已封锁或下线的节点重新调整到正常且可调度状态。这样,节点将允许被用来调度 Pod。同时,该节点所属集群的剩余可用资源配额增加。
确保正常业务运行不受影响的情况下,可移除不需要继续工作的节点。针对按量计费类型的节点,移除节点时,可同步销毁释放节点。包年包月类型的节点目前仅支持移除操作。
说明
注意:
移除节点后,您可根据节点清理脚本参考,手动彻底清理节点上多种类型的资源。
您可以执行以下脚本彻底清除节点中的组件、资源等,从而充分释放该节点,使该节点可被其他业务使用。
说明
该操作将删除节点中的数据(包括容器、卷、iptables 等)。
因此,请先进行数据备份,并仔细阅读该脚本、确保理解脚本含义,谨慎执行命令。
#!/usr/bin/env bash # 停止kubernetes和容器服务:边缘托管的边缘节点纳管依赖于 Linux 的 systemd 。需要清空节点安装的服务,同时删除 kubernetes 的服务。 KUBE_SVC=' kube-node-installation.service kube-node-configuration.service kube-container-runtime-monitor.service kube-logrotate.timer kube-logrotate.service kubernetes.target kubelet.service ' for kube_svc in ${KUBE_SVC}; do # 停止服务 if [[ $(systemctl is-active "${kube_svc}") == "active" ]]; then systemctl stop "${kube_svc}" fi # 禁用服务 if [[ $(systemctl is-enabled "${kube_svc}") == 'enabled' ]]; then systemctl disable "${kube_svc}" fi done # 清空 containerd:清空该节点上所有的 Pod 和 容器数据。 [ -n "$(whereis crictl)" ] && crictl rmp -af [ -n "$(whereis crictl)" ] && crictl rm -af # 停止 containerd 服务 if [[ $(systemctl is-active containerd.service) == "active" ]]; then systemctl stop containerd.service fi # 禁用 containerd 服务 if [[ $(systemctl is-enabled containerd.service) == 'enabled' ]]; then systemctl disable containerd.service fi # 卸载所有挂载:Kubernetes 的组件和密钥挂载在系统上,需要卸载。 for mount in $(mount | grep tmpfs | grep '/var/lib/kubelet\|/var/lib/yurthub' | awk '{ print $3 }') /var/lib/kubelet /var/lib/yurthub; do umount "$mount"; done # 删除文件和目录:以下目录在纳管一个节点到边缘托管 kubernetes 的时候会被使用到,需要删除。 rm -rf /etc/kubernetes \ "${KUBE_HOME:-/home/kubernetes}" \ /etc/ceph \ /etc/cni \ /opt/cni \ /run/secrets/kubernetes.io \ /run/calico \ /run/flannel \ /var/lib/calico \ /var/lib/cni \ /var/lib/yurthub \ /var/lib/kubelet \ /var/log/containers \ /var/log/kube-audit \ /var/log/pods \ /var/run/calico \ /usr/libexec/kubernetes \ /run/veecp/bootstrap-success.complete \ /etc/systemd/system/kube-node-installation.service \ /etc/systemd/system/kube-node-configuration.service \ /etc/systemd/system/kube-container-runtime-monitor.service \ /etc/systemd/system/kube-logrotate.timer \ /etc/systemd/system/kube-logrotate.service \ /etc/systemd/system/kubelet.service \ /etc/systemd/system/containerd.service \ /etc/systemd/system/kubernetes.target # 清除所有网络接口:根据节点所在集群配置的网络供应商删除对应的网络接口。仅保留以下几个网络接口: no_del_net_inter=' lo docker0 eth ens bond ' network_interface=$(ls /sys/class/net) for net_inter in $network_interface; do if ! echo "${no_del_net_inter}" | grep -qE "${net_inter:0:3}"; then ip link delete "$net_inter" fi done # 关闭监听端口的软件:以下端口会在纳管边缘节点的时候被使用,需要禁止其他软件监听或使用这些端口。 port_list=' 80 443 6443 2376 2379 2380 8472 9099 10250 10254 ' for port in $port_list; do pid=$(netstat -atlnup | grep "$port" | awk '{print $7}' | awk -F '/' '{print $1}' | grep -v - | sort -rnk2 | uniq) if [[ -n $pid ]]; then kill -9 "$pid" fi done kube_pid=$(pgrep -l kube\|containerd | grep -v grep | awk '{print $1}') if [[ -n $kube_pid ]]; then kill -9 "$kube_pid" fi
您可以通过 VNC 方式登录节点,然后使用命令行对节点进行管理。
对于中心节点,您可以在边缘托管控制台通过 VNC 登录节点,
您也可以参考通过控制台登录Linux实例登录中心节点。
有关登录边缘节点的详细信息,请参见通过VNC登录实例。
您可以为节点添加不同的标签,以对节点进行分类管理。本文介绍了如何通过控制台管理标签,包括添加、编辑、删除标签。
步骤一:进入节点详情页
步骤二:管理节点标签
说明
节点创建完成后,会自动带有一些系统标签。您无法编辑和删除系统标签,只可编辑和删除自定义的标签。
添加标签
编辑标签
删除标签
污点能够使节点排斥某些特定的Pod,从而避免Pod调度到该节点上。本文描述了如何通过控制台管理污点,包括添加、编辑、删除污点。
步骤一:进入节点详情页
步骤二:管理节点污点
添加污点
编辑污点
删除污点