[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.03
 1.21	20.10
 1.22	20.10
 1.23	20.10
 1.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-manager

This 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.gpg

EOF

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-0
  kubernetes-cni.x86_64 0:1.2.0-0                         libnetfilter_cthelper.x86_64 0:1.0.0-11.el7
  libnetfilter_cttimeout.x86_64 0:1.0.0-7.el7             libnetfilter_queue.x86_64 0:1.0.2-2.el7_2
  socat.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)操作

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一台电脑上安装多个软件不同版本

工作中经常需要用到不同版本的jdk、nodejs等 以nodejs为例&#xff0c;使用哪个版本将哪个版本挪到上方&#xff1a;

SpringCloud、SpringBoot、JDK版本对应关系

SpringCloud与SpringBoot 版本 官网说明&#xff1a;https://spring.io/projects/spring-cloud#overview SpringBoot 与 JDK版本关系 发布说明&#xff1a;https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes SpringBoot 3.x不再支持JDK1.…

基于STC12C5A60S2系列1T 8051单片机的带字库液晶显示器LCD12864数据传输并行模式显示汉字应用

基于STC12C5A60S2系列1T 8051单片机的液晶显示器LCD12864显示汉字应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍液晶显示器LCD12864简单介绍一、LCD12864点阵型液…

Python分支结构

我们刚开始写的Python代码都是一条一条语句顺序执行&#xff0c;这种代码结构通常称之为顺序结构。 然而仅有顺序结构并不能解决所有的问题&#xff0c;比如我们设计一个游戏&#xff0c;游戏第一关的通关条件是玩家在一分钟内跑完全程&#xff0c;那么在完成本局游戏后&#x…

【日常记录】【JS】一道解构面试题

文章目录 1、描述2、分析与实现3、参考链接 1、描述 让这一段代码可以执行&#xff0c;并且正确输出 let [name, age] {name: 呆呆狗,age: 20}console.log(name, age);2、分析与实现 在浏览器上执行这段代码会报错 翻译以下&#xff1a;不是可迭代对象 可迭代对象&#xff08;…

【计算机毕业设计】基于Java+SSM的实战开发项目150套(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f9e1;今天给大家分享150的Java毕业设计&#xff0c;基于ssm框架&#xff0c;这些项目都经过精心挑选&#xff0c;涵盖了不同的实战主题和用例&#xff0c;可做毕业设计和课程…

965: 循环队列

解法&#xff1a;顺序表实现 #include<iostream> #include<vector> using namespace std; struct SeqList {int* data;int front;int rear;int len; }; void initList(SeqList* list,int size) {list->data new int[size];list->len size;list->front …

sudo apt install ros-humble-gazebo-*显示网络不可达 Ubuntu20.04使用清华镜像本地安装/更新ros2

问题 sudo apt install ros-humble-gazebo-*显示网络不可达&#xff0c;这是因为sources.list中的镜像源有问题&#xff0c;换成清华源可以解决问题 解决 1 设置Ubuntu镜像源为清华镜像源 1.1 备份source.list文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list.ba…

实况窗助力美团打造鸿蒙原生外卖新体验,用户可实时掌握外卖进展

自2023年华为宣布全新HarmonyOS NEXT蓄势待发&#xff0c;鸿蒙原生应用全面启动以来&#xff0c;已有金融、旅行、社交等多个领域的企业和开发者陆续宣布加入鸿蒙生态。其中&#xff0c;美团作为国内头部的科技零售企业&#xff0c;是首批加入鸿蒙生态的伙伴&#xff0c;其下的…

【vue】toRef,toRefs

toRef&#xff1a;把一个 响应式对象 转换为对应的ref变量toRefs&#xff1a;把一个 响应式对象 转换为对应的ref对象 代码 <template><P>mname: {{ mname }} </P><P>mage: {{ mage }} </P><P>msex: {{ msex }} </P><P>mhobb…

fastjson 序列化问题

问题: 使用fastjson 的 对同一个JSONObject对象 多次引用后, 通过 JSON.toJSONString() 方法进行json序列化时出现只有第一次的可以成功序列化未json string 字符串, 后面的对象都为引用地址; 示例: public static void main(String[] args) {JSONObject jsonObject new JSON…

2024最新信息系统项目管理师--(1抵100)真题考过的十大管理点(细致)

备注&#xff1a; 1.这里将汇总所有管理的输入、输出、使用的工具 2.对真题考过的点&#xff0c;将会标红处理&#xff0c;并进行细致说明 3. 针对最新的改版点&#xff0c;用绿色标记 信息系统项目管理师第4版&#xff08;5大过程、10大管理&#xff09; 十大管理启动过程组…

CVPR‘24| Leap-of-Thought! 中大/哈佛等提出CLoT探究大模型幽默创新响应

Leap-of-Thought! 中大/哈佛等提出CLoT探究大模型幽默创新响应 什么是“大喜利”创新响应游戏&#xff1f;为什么考虑“大喜利”游戏&#xff1f;性能结果展示激发创造力的思维方式Leap-of-Thought (LoT)通向LoT! 激发创造力的训练方法CLoT性能评估总结 (导读) 多模态大模型具备…

【Java系列】SpringCloudAlibaba统一返回体及全局异常捕获实现

本文将以实际代码展示如何实现SpringCloudAlibaba的统一返回体及全局异常捕获。 作者&#xff1a;后端小肥肠 1. 前言 在构建微服务应用时&#xff0c;统一返回体和异常捕获机制的设计对于保持代码的整洁性和提高服务的可维护性至关重要。特别是在使用 Spring Boot 和 Spring …

数据结构初阶:二叉树(一)

树概念及结构 树的概念 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的 。 有一个特殊的结点&a…

1688商品详情接口技术深探:解锁电商数据新纪元,实现业务自动化飞跃

1688商品详情接口技术解析 一、引言 随着电子商务的快速发展&#xff0c;越来越多的企业开始关注如何利用API接口获取商品详情信息&#xff0c;以实现数据的自动化处理和业务的快速拓展。1688作为国内知名的B2B电商平台&#xff0c;其商品详情接口成为了众多企业关注的焦点。…

HarmonyOS鸿蒙端云一体化开发--适合小白体制

端云一体化 什么是“端”&#xff0c;什么是“云”&#xff1f; 答&#xff1a;“端“&#xff1a;手机APP端 “云”:后端服务端 什么是端云一体化&#xff1f; 端云一体化开发支持开发者在 DevEco Studio 内使用一种语言同时完成 HarmonyOS 应用的端侧与云侧开发。 …

AI预测体彩排3第3弹【2024年4月14日预测--第1套算法开始计算第3次测试】

今天咱们继续测试第1套算法和模型&#xff0c;今天是第3次测试&#xff0c;目前的测试只是为了记录和验证&#xff0c;不建议大家盲目跟买。我的目标仍旧是10次命中3-4次!~废话不多说了&#xff0c;直接上结果&#xff01; 2024年4月14日排3的七码预测结果如下 第一套&…

LLM 推理优化探微 (4) :模型性能瓶颈分类及优化策略

编者按&#xff1a; 在人工智能浪潮袭卷全球的大背景下&#xff0c;进一步提升人工智能模型性能&#xff0c;满足更多应用需求已经刻不容缓。如何优化模型延迟和吞吐量&#xff0c;成为了业界亟待解决的重要问题。 我们今天为大家带来的这篇文章&#xff0c;其观点为&#xff1…

C语言中的文件操作

C语言中的文件操作 1、文件的打开 创建文件指针变量 File* pf;定义一个指向FILE类型数据的指针变量&#xff0c;可以使pf指向某个文件的文件信息区&#xff0c;通过文件指针变量就能够找到与它关联的文件 &#xff08;1&#xff09;文件的打开 使用fopen函数打开文件&#…