[Kubernetes[K8S]集群:Slaver从节点初始化和Join]:添加到主节点集群内

文章目录

  • 操作流程:
  • 上篇主节初始化地址:
  • 前置:Docker和K8S安装版本匹配查看
    • 0.1:安装指定docker版本
  • **[1 — 8] ** [ 这些步骤主从节点前置操作一样的 ]
  • 一:主节点操作 查看主机域名->编辑域名->域名配置
  • 二:安装自动填充,虚拟机默认没有
  • 三:关闭防火墙
  • 四:关闭交换空间
  • 五:禁用 Selinux
  • 六: 允许 ip tables 检查桥接流量
  • 七:设置K8S相关系统参数
    • 7.0:镜像加速
    • 7.1:K8S仓库国内源
    • 7.2:配置 sysctl 参数,网桥和地址转发,重新启动后配置不变
      • 7.2.1:配置sysctl 内核参数而不重新启动
  • 八:安装K8S -- kubelet,kubeadm,kubectl核心组件
    • 8.1:安装命令
  • 九:kubeadm init生成Node
    • 9.1: 当前从节点
      • 9.1.1:区别:从节点主要根据主节点生成的join命令进行join操作,不用init操作
    • 9.2: 上述会生成如下日志说明成功
  • 10:后续异常Node not ready
    • 10.1: 查看异常命令:journalctl -f -u kubelet
      • 10.1.1:[root@10 ~]# 异常查看:journalctl -f -u kubelet 日志如下,cni下的net.d配置找不到
    • 10.2: 分析:K8S集群搭建Calico安装先后顺序问题
    • 10.3: 解决:调整安装顺序,或拷贝主节点配置到从节点
    • 10-(2---3): 通用需要操作步骤

操作流程:

主节点:安装coredns -> init初始化 主节点(此时还没有安装calico)
从节点:基于主节点生成join命令加入集群
主节点:安装calico:apply 生成pod,此时没有调整yaml网卡
coredns 和calico pod 运行成功
但是 calico-node-cl8f2 运行失败
查看 解决链接
在这里插入图片描述

上篇主节初始化地址:

前置:Docker和K8S安装版本匹配查看

因为之前写过一篇,calico一直异常,步骤一样所以怀疑是版本不匹配,这次看都是成功的

 Kubernetes 版本	Docker 版本1.20	19.031.21	20.101.22	20.101.23	20.101.24	20.10

0.1:安装指定docker版本

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo: yum-config-manager:找不到命令 -> 执行

sudo yum install yum-utils
yum list docker-ce --showduplicates | sort -r
[root@10 ~]# yum list docker-ce --showduplicates | sort -r
已加载插件:fastestmirror
已安装的软件包
可安装的软件包* updates: mirrors.ustc.edu.cn
Loading mirror speeds from cached hostfile* extras: mirrors.ustc.edu.cn
docker-ce.x86_64            3:26.0.0-1.el7                     docker-ce-stable
。。。。
docker-ce.x86_64            3:20.10.8-3.el7                    docker-ce-stable
docker-ce.x86_64            3:20.10.5-3.el7                    docker-ce-stable
 yum install docker-ce20.10.8-3.el7 -y

**[1 — 8] ** [ 这些步骤主从节点前置操作一样的 ]

一:主节点操作 查看主机域名->编辑域名->域名配置

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostnamectl set-hostname adam-init-slaver-one
[root@localhost ~]# hostname
adam-init-master
[root@localhost ~]#
[root@vbox-master-01-vbox-01 ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
# 以下添加
192.168.56.104  adam-init-master
192.168.56.105  adam-init-slaver-one

二:安装自动填充,虚拟机默认没有

[root@vbox-master-01-vbox-01 ~]# yum -y install bash-completion
已加载插件:fastestmirror, product-id, search-disabled-repos, subscription-managerThis system is not registered with an entitlement server. You can use subscription-manager to register.Determining fastest mirrors* base: ftp.sjtu.edu.cn* extras: mirrors.nju.edu.cn* updates: mirrors.aliyun.com

三:关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

四:关闭交换空间

free -h
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
free -h

五:禁用 Selinux

sed -i “s/^SELINUX=enforcing/SELINUX=disabled/g” /etc/sysconfig/selinux

[root@nodemaster /]# sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux

六: 允许 ip tables 检查桥接流量

iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT

七:设置K8S相关系统参数

7.0:镜像加速

第一行驱动

tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://hnkfbj7x.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

7.1:K8S仓库国内源

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
# 是否开启本仓库
enabled=1
# 是否检查 gpg 签名文件
gpgcheck=0
# 是否检查 gpg 签名文件
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF

7.2:配置 sysctl 参数,网桥和地址转发,重新启动后配置不变

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

7.2.1:配置sysctl 内核参数而不重新启动

sysctl --system

八:安装K8S – kubelet,kubeadm,kubectl核心组件

8.1:安装命令

[root@master local]# sudo yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0 --disableexcludes=kubernetes --nogpgcheck
已安装:kubeadm.x86_64 0:1.23.0-0            kubectl.x86_64 0:1.23.0-0            kubelet.x86_64 0:1.23.0-0作为依赖被安装:conntrack-tools.x86_64 0:1.4.4-7.el7                    cri-tools.x86_64 0:1.26.0-0kubernetes-cni.x86_64 0:1.2.0-0                         libnetfilter_cthelper.x86_64 0:1.0.0-11.el7libnetfilter_cttimeout.x86_64 0:1.0.0-7.el7             libnetfilter_queue.x86_64 0:1.0.2-2.el7_2socat.x86_64 0:1.7.3.2-2.el7完毕!

九:kubeadm init生成Node

9.1: 当前从节点

9.1.1:区别:从节点主要根据主节点生成的join命令进行join操作,不用init操作

9.2: 上述会生成如下日志说明成功

kubeadm join 192.168.56.104:6443 --token zxnok7.i6i4b4id4y5q1nsa --discovery-token-ca-cert-hash

[root@10 ~]# kubeadm join 192.168.56.104:6443 --token zxnok7.i6i4b4id4y5q1nsa         --discovery-token-ca-cert-hash sha256:7760cfca134b2df5ef7757e7a6756a13e66415665dd48ae94a20d98b812c277d
[preflight] Running pre-flight checks[WARNING Service-Docker]: docker service is not enabled, please run 'systemctl enable docker.service'[WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service'
[preflight] Reading configuration from the cluster...
[preflight] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -o yaml'
[kubelet-start] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet-start] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[kubelet-start] Starting the kubelet
[kubelet-start] Waiting for the kubelet to perform the TLS Bootstrap...This node has joined the cluster:
* Certificate signing request was sent to apiserver and a response was received.
* The Kubelet was informed of the new secure connection details.Run 'kubectl get nodes' on the control-plane to see this node join the cluster.

10:后续异常Node not ready

10.1: 查看异常命令:journalctl -f -u kubelet

10.1.1:[root@10 ~]# 异常查看:journalctl -f -u kubelet 日志如下,cni下的net.d配置找不到

[root@10 ~]# journalctl -f -u kubelet
-- Logs begin at 三 2024-04-10 00:24:03 CST. --
410 02:33:33 adam-init-slaver-one kubelet[9282]: E0410 02:33:33.734603    9282 kubelet.go:2347] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized"
410 02:33:38 adam-init-slaver-one kubelet[9282]: I0410 02:33:38.160774    9282 cni.go:240] "Unable to update cni config" err="no networks found in /etc/cni/net.d"
410 02:33:38 adam-init-slaver-one kubelet[9282]: E0410 02:33:38.742263    9282 kubelet.go:2347] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized"
410 02:33:40 adam-init-slaver-one kubelet[9282]: E0410 02:33:40.168399    9282 pod_workers.go:918] "Error syncing pod, skipping" err="failed to \"StartContainer\" for \"install-cni\" with CrashLoopBackOff: \"back-off 20s restarting failed container=install-cni pod=calico-node-bdbjk_kube-system(21340f35-c5e1-4e42-a006-3ad6ee4c8a09)\"" pod="kube-system/calico-node-bdbjk" podUID=21340f35-c5e1-4e42-a006-3ad6ee4c8a09
410 02:33:43 adam-init-slaver-one kubelet[9282]: I0410 02:33:43.161188    9282 cni.go:240] "Unable to update cni config" err="no networks found in /etc/cni/net.d"
410 02:33:43 adam-init-slaver-one kubelet[9282]: E0410 02:33:43.750005    9282 kubelet.go:2347] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized"

10.2: 分析:K8S集群搭建Calico安装先后顺序问题

当前操作为先安装Master接着安装Calico有net.d文件,安装完Calico再对从节点机器初始化K8S相关操作,net.d没有同步到从机器;

10.3: 解决:调整安装顺序,或拷贝主节点配置到从节点

主节点操作

[root@10 ~]# scp /etc/cni/net.d/* root@sss-slaver-two:/etc/cni/net.d/

此slaver-one为主节点

[root@sv-slaver-one ~]# kubectl get pods -A
NAMESPACE     NAME                                       READY   STATUS    RESTARTS        AGE
kube-system   calico-kube-controllers-64cc74d646-4z8zf   1/1     Running   2 (9h ago)      9h
kube-system   calico-node-cl8f2                          1/1     Running   0               9h
kube-system   calico-node-pfxnd                          1/1     Running   0               9h
kube-system   coredns-6d8c4cb4d-8q7tb                    1/1     Running   2 (9h ago)      9h
kube-system   coredns-6d8c4cb4d-m2gz2                    1/1     Running   2 (9h ago)      9h
kube-system   etcd-sv-slaver-one                         1/1     Running   3 (9h ago)      9h
kube-system   kube-apiserver-sv-slaver-one               1/1     Running   3 (9h ago)      9h
kube-system   kube-controller-manager-sv-slaver-one      1/1     Running   4 (3h59m ago)   9h
kube-system   kube-proxy-6kfnf                           1/1     Running   2 (9h ago)      9h
kube-system   kube-proxy-s9pzm                           1/1     Running   3 (9h ago)      9h
kube-system   kube-scheduler-sv-slaver-one               1/1     Running   4 (3h59m ago)   9h
[root@sv-slaver-one ~]# kubectl get nodes
NAME            STATUS   ROLES                  AGE   VERSION
sv-master       Ready    <none>                 9h    v1.23.0
sv-slaver-one   Ready    control-plane,master   9h    v1.23.0
[root@sv-slaver-one ~]#

10-(2—3): 通用需要操作步骤

执行
[root@10 docker]# systemctl restart docker
[root@10 docker]# systemctl daemon-reload
[root@10 docker]# systemctl restart kubelet
编辑calico 网卡信息
重新运行calico

如果还没用,重启虚拟机,重复 10-(2—3)操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610596.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【论文阅读】Digging Into Self-Supervised Monocular Depth Estimation

论文&#xff1a;https://arxiv.org/pdf/1806.01260.pdf 代码&#xff1a;https://github.com/nianticlabs/monodepth2 Q: 这篇论文试图解决什么问题&#xff1f; A: 这篇论文试图解决的问题是如何提高仅使用单目图像进行深度估计的性能。具体来说&#xff0c;它关注的是如何…

钉钉和金蝶云星空接口对接实战

钉钉和金蝶云星空接口对接实战 对接源平台:钉钉 钉钉&#xff08;DingTalk&#xff09;是阿里巴巴集团打造的企业级智能移动办公平台&#xff0c;是数字经济时代的企业组织协同办公和应用开发平台。钉钉将IM即时沟通、钉钉文档、钉闪会、钉盘、Teambition、OA审批、智能人事、钉…

怎么开发一个预约小程序_一键预约新体验

预约小程序&#xff0c;让生活更便捷——轻松掌握未来&#xff0c;一键预约新体验 在快节奏的现代生活中&#xff0c;我们总是在不断地奔波&#xff0c;为了工作、为了生活&#xff0c;不停地忙碌着。然而&#xff0c;在这繁忙的生活中&#xff0c;我们是否曾想过如何更加高效…

Java中的TCP通信

TCP通信 TCP通信Socket客户端ServerSocket服务端 例子&#xff1a;一发一收例子&#xff1a;多发多收异常捕获 例子&#xff1a;服务器与多个客户端同时通信多客户端通信架构服务端代码ServerReaderThread 服务端读数据线程 TCP通信 特点&#xff1a;面向连接、可靠通信 通信双…

垃圾焚烧发电厂自动化解决方案

垃圾焚烧发电厂自动化解决方案 中控作为国内著名自动化产品供应商&#xff0c;已经为多家垃圾焚烧发电企业从控制层到管理层提供了完整的解决方案&#xff0c;包括垃圾进厂计量&#xff0c;垃圾预处理&#xff0c;垃圾焚烧炉&#xff0c;汽机监控&#xff0c;厂用电与电气系统监…

AWS游戏全球智能翻译,助力企业出海

随着全球数字化时代的到来&#xff0c;游戏行业已经成为跨越国界、语言和文化的强大力量。然而&#xff0c;要将游戏产品成功推向全球市场并确保用户体验的流畅与愉悦&#xff0c;语言障碍却是一道不可忽视的挑战。在这个多元化的世界中&#xff0c;如何解决语言障碍&#xff0…

故障诊断 | Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电缆故障诊断算法

故障诊断 | Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电缆故障诊断算法 目录 故障诊断 | Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电缆故障诊断算法分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现基于小波包结合卷积神经网络DWT-CNN实现电…

手机银行客户端框架之EMAS介绍

EMAS简介 阿里巴巴应用研发平台&#xff08;Enterprise Mobile Application Studio&#xff0c;简称EMAS&#xff09;&#xff0c;是面向全端场景&#xff08;移动App、H5应用、小程序、Web应用、PC应用等&#xff09;的一站式应用研发平台。EMAS基于广泛的云原生技术&#xf…

全新华为MateBook X Pro发布,将Ultra9放入980g超轻薄机身

2024年4月11日&#xff0c;在华为鸿蒙生态春季沟通会上全新的华为MateBook X Pro正式发布。该机以美学设计、创新科技以及智慧体验&#xff0c;追求重新定义Pro、重新定义旗舰&#xff0c;将颠覆消费者对传统轻薄本的认知。 华为MateBook X Pro追求极致轻薄与强大性能的完美结合…

GPT中的Transformer架构以及Transformer 中的注意力机制

目录 1 GPT中的Transformer架构 2 transformer中的注意力机制 参考文献&#xff1a; 看了两个比较好的视频&#xff0c;简单做了下笔记。 1 GPT中的Transformer架构 GPT是Generative Pre-trained Transformer单词的缩写&#xff0c;其中transformer是一种特定的神经网络&a…

02 - Git 之命令 +

1 Git相关概念 1.1 以下所谈三个区&#xff0c;文件并不只是简单地在三个区转移&#xff0c;而是以复制副本的方式转移 使用 Git 管理的项目&#xff0c;拥有三个区域&#xff0c;分别是 Working area工作区&#xff08;亦称为 工作树Working Tree&#xff09;、stage area …

内网穿透的应用-如何在Linux系统搭建docker-android结合内网穿透远程访问本地安卓开发环境

文章目录 1. 虚拟化环境检查2. Android 模拟器部署3. Ubuntu安装Cpolar4. 配置公网地址5. 远程访问小结 6. 固定Cpolar公网地址7. 固定地址访问 本文主要介绍如何在Ubuntu系统使用Docker部署docker-android安卓模拟器&#xff0c;并结合cpolar内网穿透工具实现公网远程访问本地…