在 Kubernetes 中,节点(Node)是集群中的工作节点,用于运行容器化应用程序。节点状态描述了节点的运行状况和可用性。以下是 Kubernetes 中节点状态的一些常见指标:
这些节点状态可以通过运行 kubectl get nodes 命令来查看,其中的 STATUS 列会显示节点的状态信息。
参考:k8s篇-集群内的DNS原理与配置和K8s hosts 解析 HostAliases
集群node节点上的进程,如果希望能够访问到集群内的服务,可以修改node节点上的/etc/resolv.conf文件中的nameserver配置,将nameserver指定为集群coredns的ClusterIP来达到目的。
vi /etc/resolv.conf
# 修改内容如下
nameserver 10.20.0.3
nameserver 114.114.114.114
nameserver 8.8.8.8
resolv.conf 内容顺序影响:
在 CentOS 中,/etc/resolv.conf 文件用于配置系统的 DNS 解析器。该文件中的内容顺序确实会影响 DNS 解析的行为。
/etc/resolv.conf 文件可以包含多个 DNS 服务器的 IP 地址,并且按照顺序进行解析。当系统需要解析主机名时,它会按照文件中列出的 DNS 服务器的顺序进行查询,直到找到可用的 DNS 服务器或解析成功。
ping redis.kubesphere-system.svc.cluster.local
这样配置后jumpserver部署可以考虑使用docker-compse的部署方式,官网安装参考:离线安装 - JumpServer 文档
注意:升级不能跨版本,如v3.3.x 的集群集群升级到v3.4.x 的集群,需将集群挨版本升级到v3.3.x。
运行以下命令,将您的集群升级至 KubeSphere 3.4 和 Kubernetes v1.22.12:
# 在安装篇已经生成sample.yaml文件
./kk upgrade --with-kubernetes v1.22.12 --with-kubesphere v3.4.1 -f sample.yaml
若是担心新版配置文件和当前版本存在差异,可重新下载KubeKey进行对修改配置
官方文档:添加新节点
修改生成的配置文件config-sample.yaml,添加如下配置
./kk add nodes -f config-sample.yaml
执行上述命令出现:参考安装篇在ksnode27节点上安装前置依赖
重新执行等待安装,出现如下信息则安装成功
验证安装结果
# 查看集群节点
kubectl get node -o wide
# <nodeName>为下架节点名称
./kk delete node <nodeName> -f config-sample.yaml
当出现如下信息则下架成功:
验证下架是否成功:
使用k8s命令优雅下架节点
k8s 下线node正确处理姿势
:::info
在 Kubernetes 集群中下架节点需要执行以下步骤:
:::
标记节点不可调度:在下架节点之前,你需要将节点标记为不可调度,以防止 Kubernetes 在该节点上调度新的 Pod。你可以使用以下命令将节点标记为不可调度:
转移 Pod:在将节点下架之前,你需要将节点上的 Pod 转移到其他节点上。你可以使用以下命令将节点上的 Pod 转移到其他节点上:
从集群中删除节点:在将节点下架并转移 Pod 后,你可以将节点从 Kubernetes 集群中删除。你可以使用以下命令将节点从集群中删除:
kubectl get node -o wide
kubectl cordon <node-name>
在上面的命令中, 是要下架的节点的名称。
节点重新调度:
kubectl uncordon <node-name>
kubectl drain <node-name>
在上面的命令中, 是要下架的节点的名称。kubectl drain 命令将停止节点上的所有 Pod,并将它们转移到其他节点上。如果你希望在转移 Pod 之前强制删除它们,可以使用 --force 和 --delete-local-data 标志。
kubectl delete node <node-name>
在上面的命令中, 是要下架的节点的名称。
完成上述步骤后,节点将被从 Kubernetes 集群中删除,并且该节点上的 Pod 将被转移到其他节点上。请注意,在将节点下架之前,你需要确保节点上的所有应用程序都已停止,并且在下架节点期间不会有任何重要的任务运行。
要将新节点添加到 Kubernetes 集群中,需要完成以下步骤:
kubeadm join <control-plane-host>:<control-plane-port> --token <token> --discovery-token-ca-cert-hash <hash>
在上面的命令中, 是 Kubernetes 控制平面节点的主机名或 IP 地址, 是 Kubernetes 控制平面节点的端口号, 是加入集群所需的令牌, 是用于发现集群的 CA 证书哈希。这些参数可以从运行 kubeadm init 命令时生成的输出中获取。
备份源环境的多节点 KubeSphere 集群 A,在目标环境上恢复此多节点 KubeSphere 集群。
注意:建议定期备份,或在节点运维前进行备份
参考:Velero Kubernetes备份恢复之velero实战
集群A备份到minio,集群B从minio恢复
kubectl get sc local -o yamlopenebs-sc.yaml
scp -r openebs-sc.yaml root@192.168.0.8:/root/
查看pod,还原情况
查看状态