Kubernetes集群添加新集群节点

这篇具有很好参考价值的文章主要介绍了Kubernetes集群添加新集群节点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Kubernetes集群添加新集群节点

添加worker节点

参考文档https://gitee.com/open-hand/kubeadm-ha/blob/release-1.21/docs/02/%E6%B7%BB%E5%8A%A0%20worker%20%E8%8A%82%E7%82%B9.md

添加工作节点与集群安装时初始化工作节点一样,可以在主节点上执行,也可以在要加入的节点执行,只要执行主机安装ansible,并且可以访问主节点及要加入的新节点即可

待加入节点未安装docker

需要加入的节点没有安装docker,并且没有装其他应用执行如下指令应该就能正常安装成功

ansible-playbook -i example/hosts.s-master.ip.ini 81-add-worker.yml

待加入节点已安装docker

对于已经安装docker并且部署了应用服务的主机,添加新节点可能会出现各种问题

检查端口占用

kubernetes集群部署需要占用端口,对于已经安装docker、自己应用的主机需要先检查端口是否被占用,如果端口被占用将会导致对应安装组件无法运行查看文档了解需要使用到的端口

添加kubernetes yum源

添加/etc/yum.repos.d/kubernetes.repo文件,配置kubernetes yum源,内容如下

[kubernetes]
baseurl = https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled = 0
gpgcheck = 0
name = Kubernetes
检查已安装docker版本

安装Kubernetes集群不同版本对docker版本也有要求,如果docker版本不在Kubernetes版本支持范围会报如下错误
kubeadm加入节点,K8S集群管理,K8S集群管理
如果不在支持范围,并且docker中已经运行了应用不能卸载,则需要对docker进行升级或降级

yum对docker进行升级到指定版本
# 查看docker-ce版本列表
yum list docker-ce --showduplicates

# 查看docker-ce-cli版本列表
yum list docker-ce-cli --showduplicates

# 选取需要的版本进行升级
yum update -y docker-ce-20.10.21-3.el8 docker-ce-cli-20.10.21-3.el8
yum对docker进行降级到指定版本
# 查看docker-ce版本列表
yum list docker-ce --showduplicates

# 查看docker-ce-cli版本列表
yum list docker-ce-cli --showduplicates

# 将docker降到指定版本
yum downgrade --setopt=obsoletes=0 -y docker-ce-20.10.21-3.el8 docker-ce-cli-20.10.21-3.el8

如果从24.0.2-1.el8版本降到20.10.21-3.el8版本则会报如下错误
kubeadm加入节点,K8S集群管理,K8S集群管理
需要使用如下指令将冲突包docker-buildx-plugin卸载,然后再执行降级指令

yum remove docker-buildx-plugin -y
修改docker cgroup driver

修改/etc/docker/daemon.json文件内容指定cgroupdriver为systemd,如果不指定默认是使用cgroupfs。并且指定docker拉取镜像仓库,默认是使用dockerhub的公共镜像库比较慢。如果在你主机上不存在该文件就创建一个

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
        "http://hub-mirror.c.163.com"
  ],
  "bip": "172.17.10.1/16",
  "data-root": "/u01/data/docker"
}

更新完daemon.json文件后运行下面指令使配置生效

sudo systemctl daemon-reload

sudo systemctl restart docker
  • 如果启动docker失败则可以运行journalctl -xe查看详情,首先考虑daemon.json内容是否正确

注意不要使用命令sed -i “s#^ExecStart=/usr/bin/dockerd.*#ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --exec-opt native.cgroupdriver=systemd#g” /usr/lib/systemd/system/docker.service更新cgroupdriver,如果使用上述指令更新导致docker无法启动,可能是因为/usr/lib/systemd/system/docker.service中–exec-opt native.cgroupdriver=systemd配置与daemon.json文件中"exec-opts": [“native.cgroupdriver=systemd”]冲突,可以去除/usr/lib/systemd/system/docker.service中–exec-opt native.cgroupdriver=systemd配置

执行添加新节点指令

执行如下指令

ansible-playbook -i example/hosts.s-master.ip.ini 81-add-worker.yml
nginx运行失败

kubeadm加入节点,K8S集群管理,K8S集群管理

  • 上述错误是nginx运行失败造成的,运行失败的原因大概率是端口占用导致

运行如下命令,查看运行失败的容器

docker ps -a

kubeadm加入节点,K8S集群管理,K8S集群管理
查看k8s_lb-nginx_lb-nginx容器日志,查看具体原因

docker logs -f 94fbc47c047e

kubeadm加入节点,K8S集群管理,K8S集群管理

  • 可以看到错误原因是8081端口占用导致
yum基础软件包报错

kubeadm加入节点,K8S集群管理,K8S集群管理
尝试执行如下指令

yum clean all && yum update
  • 注意yum update会更新yum安装组件的版本到最新,慎用

如果设置了yum代理服务可能会报如下错误
kubeadm加入节点,K8S集群管理,K8S集群管理

  • 此错误是设置了代理服务器,可以通过/etc/yum.conf调整代理或去除代理
docker停止运行执行安装报错

kubeadm加入节点,K8S集群管理,K8S集群管理

  • 当前节点已安装docker,但报错确是crictl pull拉取镜像,而不是docker pull。检查发现docker未正常运行

首先尝试如下命令

sudo systemctl daemon-reload

sudo systemctl restart docker

得到如下报错
kubeadm加入节点,K8S集群管理,K8S集群管理

  • 从报错可以发现并没有说明具体报错原因,可以按提示尝试执行systemctl status docker.service或journalctl -xe查看有价值信息

执行如下指令查看docker重启失败详细信息

journalctl -xe

得到如下详情信息
kubeadm加入节点,K8S集群管理,K8S集群管理

  • 从报错可以看出,overlay2配置问题导致的,将overlay2配置从/etc/docker/daemon.json中移除。如果docker启动不了大概率是/etc/docker/daemon.json配置有问题
docker驱动以及端口占用报错

kubeadm加入节点,K8S集群管理,K8S集群管理
kubeadm加入节点,K8S集群管理,K8S集群管理
kubeadm加入节点,K8S集群管理,K8S集群管理
上面三张图展示的是docker驱动设置、端口占用导致的添加节点失败错误信息。如果反馈信息不能判断问题可以尝试在对应节点执行手工执行命名并添加–v=5查看具体原因

kubeadm join --config /etc/kubernetes/kubeadm-config.yaml 
--ignore-preflight-errors=DirAvailable--etc-kubernetes-manifests,FileAvailable--etc-kubernetes-pki-ca.crt --v=5
  • cgroup driver驱动配置问题:按上面配置cgroup driver

  • 某个地址访问不通:查看对应端口组件是否正常运行,大概率是端口被占用了

    • 127.0.0.1:8443: 通常是nginx没有启动,端口被占用

    • 127.0.0.1:10248:通常是解决完问题之后重新执行添加节点,忘记应该先要清理掉残留文件导致

把问题排查完之后清理残留文件重新执行

在处理好部署报错问题后,需要将安装失败时残留的服务、文件清理干净,以免引发新的问题。执行如下命令完成文件清理文章来源地址https://www.toymoban.com/news/detail-708748.html

kubeadm reset -f
modprobe -r ipip
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
yum clean all
yum remove kube*

到了这里,关于Kubernetes集群添加新集群节点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • k8s集群master节点的删除和重新加入

    一、剔除master1节点 1)删除master1节点 3台master下掉一个,剩下2个master运行基本也没问题。坚持个一两天问题不大。 2)清理etcd数据 a.进入etcd容器 b.查看member list c.剔除已删除的master1 二、master1重新加入 1)重置下master1 2)配置一个对域名apiserver.cluster.local的解析 修改 /etc/hosts

    2024年01月22日
    浏览(50)
  • Kubernetes(K8s)使用 kubeadm 方式搭建多 master 高可用 K8s 集群

    本篇主要针对上篇文章的单 master 节点的 K8s 集群上搭建多 master 节点集群 和 LB 负载均衡服务器。 Kubernetes(K8S)集群搭建基础入门教程 虚拟机 IP 地址: IP 操作系统 主机名称 192.168.2.121 centos7.9 k8s-master01 192.168.2.124 centos7.9 k8s-master02 192.168.2.125 centos7.9 k8s-node01 192.168.2.126 centos

    2023年04月26日
    浏览(48)
  • Kubernetes技术--使用kubeadm快速部署一个K8s集群

    这里我们配置一个 单master集群 。( 一个Master节点,多个Node节点 ) 1.硬件环境准备 一台或多台机器,操作系统 CentOS7.x-86_x64 。这里我们使用安装了CentOS7的三台虚拟机 硬件配置 : 2GB或更多RAM , 2个CPU或更多CPU , 硬盘30GB或更多 2.主机名称和IP地址规划 3. 初始化准备工作 (1).关

    2024年02月10日
    浏览(51)
  • Kubeadm安装单master多node节点K8S集群

    记录在刚搭建的3个虚拟机里成功安装K8S1.25版本集群的步骤 由于是成功创建后才记录的博客,只记录了操作步骤,过程中执行命令后的截图会有部分缺失,或者换成了文字。 操作系统:centos7.9 每个服务器配置: 4Gib内存/4vCPU/80G硬盘 网络:NAT模式 K8S集群角色 IP 主机名 安装的

    2024年01月24日
    浏览(60)
  • 【Kubernetes】kubeadm安装k8s1.25.0高可用集群

    详情请参考 : 【Kubernetes】kubeadm安装k8s稳定版(1.23.1)高可用集群 这里不再赘述 这部分内容还没发布。。。后续有空再整理更新啦。 master、node节点都需要操作 docker也要安装,docker跟containerd不冲突,安装docker是为了能基于dockerfile构建镜像。 master、node节点都需要操作 3台机

    2024年01月16日
    浏览(54)
  • 【云原生-K8s-1】kubeadm搭建k8s集群(一主两从)完整教程及kubernetes简介

    🍁 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入!   Kubernetes(简称:k8s) 是Google在2014年6月开源的一个容器集群管理系统,使用Go语言开发,用于管理云平台中多

    2024年02月07日
    浏览(64)
  • kubeadm 安装k8s集群后,master节点notready问题解决方案

    使用kubeadm 安装k8s集群后,加载calico cni 网络组件后,master节点notready问题 表现为: 使用命令查看日志:journalctl -f -u kubelet 报错如下: Failed to start ContainerManager failed to initialize top level QOS containers: failed to update top level Burstable QOS cgroup : failed to set supported cgroup subsystems for cgroup

    2024年01月22日
    浏览(46)
  • 使用kubeadm搭建生产环境的多master节点k8s高可用集群

    环境centos 7.9 目录  1.对安装 k8s 的节点进行初始化配置 2 通过 keepalived+nginx 实现 k8s apiserver 节点高可用 3、kubeadm 初始化 k8s 集群 4.扩容 k8s 控制节点,把 xuegod62 加入到 k8s 集群 5、扩容 k8s 控制节点,把 xuegod64 加入到 k8s 集群 6、扩容 k8s 集群-添加第一个工作节点  7、安装 ku

    2024年02月16日
    浏览(49)
  • 【Kubernetes部署篇】Kubeadm方式搭建K8s集群 1.26.0版本

    官方文档: 二进制下载地址 环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 容器运行时本次使用containerd。 主机名 IP地址 操作系统 master-1 16.32.15.200 CentOS7.8 node-1 16.32.15.201 CentOS7.8 node-2 16.32.15.202 CentOS

    2024年02月10日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包