资讯专栏INFORMATION COLUMN

UK8S 核心组件故障恢复 容器云 UK8S

ernest.wang / 3243人阅读

摘要:核心组件故障恢复核心组件故障恢复核心组件故障恢复本篇目录组件的故障恢复组件的故障恢复的故障恢复的故障恢复容器引擎的恢复容器引擎的恢复组件的故障恢复组件的故障恢复组件的故障恢复是的核心管理组

UK8S 核心组件故障恢复

本篇目录

1. APIServer、Controller Manager、Scheduler 组件的故障恢复2. Kubelet、Kube-proxy 的故障恢复3. 容器引擎的恢复

1. APIServer、Controller Manager、Scheduler 组件的故障恢复

APIServer、Controller Manager、Scheduler 是 Kubernetes 的核心管理组件,在 UK8S 集群中,默认配置三台 Master 节点,每台 Master 节点上均部署安装了这些核心组件,各个组件通过负载均衡对外提供服务,确保集群的高可用。

当某个组件出现故障时,请逐台登录三台 Master 节点,通过 systemctl status ${PLUGIN_NAME} 确认组件状态,如组件不可用,可通过以下步骤进行恢复:

# 将一台健康 Master 节点的内网 IP 配置为环境变量,便于从健康节点拷贝相关文件
export IP=10.23.17.200
# 从健康节点拷贝 APIServer、Controller Manager、Scheduler 组件二进制安装包
## 1.16 及以下 UK8S 版本,K8S 组件统一安装在 hyperkube 文件中
scp root@IP:/usr/local/bin/hyperkube /usr/local/bin/hyperkube
## 1.17 及以后 UK8S 版本,K8S 组件以独立二进制文件形式安装
scp root@IP:/usr/local/bin/{kube-apiserver,kube-controller-manager,kube-scheduler} /usr/local/bin/
# 拷贝 APIServer、Controller Manager、Scheduler 组件服务文件
scp root@IP:/usr/lib/systemd/system/{kube-apiserver.service,kube-controller-manager.service,kube-scheduler.service} /usr/lib/systemd/system/
# 拷贝 APIServer、Controller Manager、Scheduler 组件配置文件
scp root@IP:/etc/kubernetes/{apiserver,controller-manager,kube-scheduler.conf} /etc/kubernetes/
# 拷贝 kubectl 二进制文件
scp root@IP:/usr/local/bin/kubectl /usr/local/bin/kubectl
# 拷贝 kubeconfig
scp -r root@IP:~/.kube ~/
# 修改 APIServer 配置参数
vim /etc/kubernetes/apiserver # 将 advertise-address 参数配置为故障节点 IP
# 启用服务
systemctl enable --now kube-apiserver kube-controller-manager kube-scheduler
# 配置 APIServer 负载均衡器的内外网 IP(仅在开启外网 APIServer 功能情况下需要配置外网 IP)
scp root@IP:/etc/sysconfig/network-scripts/ifcfg-lo:internal /etc/sysconfig/network-scripts/ifcfg-lo:internal
scp root@IP:/etc/sysconfig/network-scripts/ifcfg-lo:external /etc/sysconfig/network-scripts/ifcfg-lo:external
systemctl restart network

2. Kubelet、Kube-proxy 的故障恢复

Kubelet、Kube-proxy 部署在每个 Master / Node 节点上,分别负责节点注册及流量转发。

注:2020.6.12 以前创建的 UK8S 集群中,Master 节点上默认不安装 Kubelet,不能通过 kubectl get node 显示。

# 将一台健康节点的内网 IP 配置为环境变量,便于从健康节点拷贝相关文件
export IP=10.23.17.200
# 从健康节点拷贝 Kubelet、Kube-proxy 组件二进制安装包
## 1.16 及以下 UK8S 版本,K8S 组件统一安装在 hyperkube 文件中,如在上一环节中已执行过此操作可忽略
scp root@IP:/usr/local/bin/hyperkube /usr/local/bin/hyperkube
## 1.17 及以后 UK8S 版本,K8S 组件以独立二进制文件形式安装
scp root@IP:/usr/local/bin/{kubelet,kube-proxy} /usr/local/bin/
# 准备目录
mkdir -p /opt/cni/net.d
mkdir -p /opt/cni/bin
mkdir -p /var/lib/kubelet
# 配置文件拷贝、服务文件
scp root@$IP:/etc/kubernetes/{kubelet,kubelet.conf,kube-proxy.conf,ucloud} /etc/kubernetes/
scp root@$IP:/usr/lib/systemd/system/{kubelet.service,kube-proxy.service} /usr/lib/systemd/system/
scp root@$IP:/etc/kubernetes/set-conn-reuse-mode.sh /etc/kubernetes/
scp root@$IP:/etc/rsyslog.conf /etc/
scp root@$IP:/opt/cni/bin/{cnivpc,loopback,host-local} /opt/cni/bin/
scp root@$IP:/opt/cni/net.d/10-cnivpc.conf /opt/cni/net.d/
# 修改配置参数
# 修改 --node-ip、--hostname-override 为待修复节点 IP
# 修改 --node-labels 中 topology.kubernetes.io/zone、failure-domain.beta.kubernetes.io/zone 为待修复节点可用区(cn-bj2-02)
# 修改 --node-labels 中 UHostID、node.uk8s.ucloud.cn/resource_id 为待修复节点资源 ID(uhost-xxxxxxxx) 
vim /etc/kubernetes/kubelet
# 禁用swap
swapoff -a
# 启用服务
systemctl enable --now kubelet kube-proxy

3. 容器引擎的恢复

3.1 Docker 容器引擎
# 将一台健康 Master 节点的内网 IP 配置为环境变量,便于从健康节点拷贝相关文件
export IP=10.23.17.200
# 准备目录
mkdir -p /data/docker
rm -rf /var/lib/docker
ln -s /data/docker /var/lib/docker
# 安装包下载及安装
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-19.03.14-3.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.2.el7.x86_64.rpm
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-19.03.14-3.el7.x86_64.rpm
yum install *.rpm -y
# 拷贝配置及服务文件
scp root@$IP:/usr/lib/systemd/system/docker.service /usr/lib/systemd/system/
scp root@$IP:/etc/docker/daemon.json /etc/docker/
# 启用服务
systemctl enable --now docker
3.2 Containerd 容器引擎
# 将一台健康 Master 节点的内网 IP 配置为环境变量,便于从健康节点拷贝相关文件
export IP=10.23.17.200
# 准备目录
mkdir -p /etc/containerd 
mkdir -p /data/containerd
mkdir -p /data/log/pods
ln -s /data/containerd /var/lib/containerd
ln -s /data/log/pods /var/log/pods
# 安装包下载及安装
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.4.3-3.2.el7.x86_64.rpm
yum install containerd.io-1.4.3-3.2.el7.x86_64.rpm
# 拷贝配置文件
scp root@$IP:/etc/containerd/{config.toml,containerd.toml} /etc/containerd/
scp root@$IP:/usr/lib/systemd/system/containerd.service /usr/lib/systemd/system/
scp root@$IP:/usr/local/bin/crictl /usr/local/bin/
scp root@$IP:/etc/crictl.yaml /etc/
# 启用服务
systemctl start containerd

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/127163.html

相关文章

  • 集群节点配置推荐 容器 UK8S

    摘要:对于存储资源,的节点默认系统盘。节点创建时可选择数据盘挂载亦可在节点创建完成后在主机侧挂载,如节点挂载有数据盘,将用于存放本地镜像的,否则本地镜像等将保存在系统盘。 集群节点配置推荐本篇目录1. Master 配置推荐2. 如何选择 Node 配置大小1. Master 配置推荐Master 规格跟集群规模有关,集群规模越大,所需要的 Master 规格也越高,不同集群规模的,Master ...

    ernest.wang 评论0 收藏2218
  • 容器 UK8S】镜像库和容器常见问题:Node故障处理和预防节点OOM

    摘要:节点作为承载工作负载的实体,是一个非常重要的对象,在实际运营过程中,节点会出现各种问题,本文简要描述下节点的各种异常状态及排查思路。预防节点该文档为预防节点的开源方案,不提供,仅做参考,请谨慎使用。节点作为承载工作负载的实体,是 Kubernetes 一个非常重要的对象,在实际运营过程中,节点会出现各种问题,本文简要描述下节点的各种异常状态及排查思路。节点状态说明节点情况说明处理办法Read...

    Tecode 评论0 收藏0
  • 容器UK8S】产品简介

    摘要:完全兼容原生的,以私有网络为基础,并整合了等云产品。综合资源有效利用率错误容忍度两个因素,在不考虑业务混合部署业务总体规模大小的情况下,我们建议生产环境的节点应该介于核至核之间。模式是一个用于负载均衡的内核功能。产品概念UCloud Container Service for Kubernetes (UK8S)是一项基于Kubernetes的容器管理服务,你可以在UK8S上部署、管理、扩展你...

    Tecode 评论0 收藏0
  • 乐心医疗的 Kubernetes平台建设实践

    摘要:宋体自年被开源以来,很快便成为了容器编排领域的标准。宋体年月,乐心医疗的第一个生产用集群正式上线。所以于年推出后,乐心医疗的运维团队在开会讨论之后一致决定尽快迁移到。Kubernetes 自 2014 年被 Google 开源以来,很快便成为了容器编排领域的标准。因其支持自动化部署、大规模可伸缩和容器化管理等天然优势,已经被广泛接纳。但由于 Kubernetes 本身的复杂性,也让很多企业的...

    testHs 评论0 收藏0
  • 容器 UK8S】日志监控方案:什么是Prometheus?怎么部署Prometheus?

    摘要:客户端库,为需要监控的服务生成相应的并暴露给。根据配置文件,对接收到的警报进行处理,发出告警。再创建一个来告诉需要监控带有为的背后的一组的。什么是Prometheus关于PrometheusPrometheus 是一套开源的系统监控报警框架。它的设计灵感源于 Google 的 borgmon 监控系统,由SoundCloud 在 2012 年创建,后作为社区开源项目进行开发,并于 2015 ...

    Tecode 评论0 收藏0
  • 容器 UK8S】产品简介:漏洞修复记录、集群节点配置推荐和kube-proxy模式选择

    摘要:模式选择是中的关键组件其主要功能是在和其后端之间进行负载均衡。详见后续测试数据对于集群规模中等,数量不多的,推荐选择。模式下,使用负载均衡代替了。漏洞修复记录HTTP/2漏洞升级说明Runc容器逃逸漏洞修复说明cloudprovider更新20.10.1集群节点配置推荐1、Master配置推荐Master规格跟集群规模有关,集群规模越大,所需要的Master规格也越高,不同集群规模的,Mas...

    Tecode 评论0 收藏0

发表评论

0条评论

ernest.wang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<