使用kubeadm 部署kubernetes 1.26.1集群 Calico ToR配置

news/2024/3/28 20:20:44/文章来源:https://blog.csdn.net/weixin_43798031/article/details/129215741

目录

机器信息

升级内核

系统配置

部署容器运行时Containerd

安装crictl客户端命令

配置服务器支持开启ipvs的前提条件

安装 kubeadm、kubelet 和 kubectl

初始化集群 (master)

安装CNI Calico

集群加入node节点


机器信息

主机名集群角色IP内核系统版本配置
l-shahe-k8s-master1.ops.prodmaster10.120.128.15.4.231-1.el7.elrepo.x86_64

CentOS Linux release 7.9.2009 (Core)

32C 128G
10.120.129.1node10.120.129.15.4.231-1.el7.elrepo.x86_64CentOS Linux release 7.9.2009 (Core)32C 128G
10.120.129.2node10.120.129.25.4.231-1.el7.elrepo.x86_64CentOS Linux release 7.9.2009 (Core)32C 128G

升级内核

参考

kubernetes 1.26.1 Etcd部署(外接)保姆级教程_Cloud孙文波的博客-CSDN博客保姆级部署文档https://blog.csdn.net/weixin_43798031/article/details/129215326

系统配置

参考部署etcd篇

部署容器运行时Containerd

参考部署etcd篇

安装crictl客户端命令

参考部署etcd篇

配置服务器支持开启ipvs的前提条件

参考部署etcd篇

安装 kubeadm、kubelet 和 kubectl

参考部署etcd篇

清理当前集群环境,线上集群需谨慎

swapoff -a      
kubeadm reset       
systemctl daemon-reload  &&  systemctl restart kubelet  
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X 
cp -r /opt/k8s-install/pki/* /etc/kubernetes/pki/.
systemctl  stop kubelet 
rm -rf /etc/cni/net.d/* # 清理etcd数据 一定要谨慎
etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --endpoints=https://10.120.174.14:2379,https://10.120.175.5:2379,https://10.120
.175.36:2379  del "" --prefix

初始化集群 (master)

使用kubeadm config print init-defaults --component-configs KubeletConfiguration可以打印集群初始化默认的使用的配置:

kubeadm.yaml 文件内

apiVersion: kubeadm.k8s.io/v1beta3                                                                                                                                                                                                         
bootstrapTokens:                                                                                                                                                                                                                           
- groups:                                                                                                                                                                                                                                  - system:bootstrappers:kubeadm:default-node-token                                                                                                                                                                                        token: abcdef.0123456789abcdef                                                                                                                                                                                                           ttl: 24h0m0s                                                                                                                                                                                                                             usages:                                                                                                                                                                                                                                  - signing                                                                                                                                                                                                                                - authentication                                                                                                                                                                                                                         
kind: InitConfiguration                                                                                                                                                                                                                    
localAPIEndpoint:                                                                                                                                                                                                                          advertiseAddress: 10.120.128.1    #master主 机 IP                                                                                                                                                                                          bindPort: 6443                                                                                                                                                                                                                           
nodeRegistration:                                                                                                                                                                                                                          criSocket: unix:///var/run/containerd/containerd.sock                                                                                                                                                                                    imagePullPolicy: IfNotPresent                                                                                                                                                                                                            name: l-shahe-k8s-master1   #master主 机 名                                                                                                                                                                                                 taints: null                                                                                                                                                                                                                             
---                                                                                                                                                                                                                                        
apiServer:                                                                                                                                                                                                                                 timeoutForControlPlane: 4m0s                                                                                                                                                                                                             
apiVersion: kubeadm.k8s.io/v1beta3                                                                                                                                                                                                         
certificatesDir: /etc/kubernetes/pki                                                                                                                                                                                                       
clusterName: kubernetes                                                                                                                                                                                                                    
controlPlaneEndpoint: 10.120.102.9:6443  #LVS IP                                                                                                                                                                                           
controllerManager: {}                                                                                                                                                                                                                      
dns:                                                                                                                                                                                                                                       type: CoreDNS                                                                                                                                                                                                                            
etcd:                                                                                                                                                                                                                                      external:                                                                                                                                                                                                 endpoints:                                                                                                                                                                                                                             - https://10.120.174.14:2379 #外 接 ETCD                                                                                                                                                                                               - https://10.120.175.5:2379                                                                                                                                                                                                          - https://10.120.175.36:2379                                                                                                                                                                                                         caFile: /etc/kubernetes/pki/etcd/ca.crt  #ETCD证 书                                                                                                                                                                                      certFile: /etc/kubernetes/pki/apiserver-etcd-client.crt                                                                                                                                                                                keyFile: /etc/kubernetes/pki/apiserver-etcd-client.key                                                                                                                                                                                 
imageRepository: registry.aliyuncs.com/google_containers    #阿 里 云 镜 像                                                                                                                                                                     
kind: ClusterConfiguration                                                                                                                                                                                                                 
kubernetesVersion: 1.26.1                                                                                                                                                                                                                  
networking:                                                                                                                                                                                                                                dnsDomain: cluster.local                                                                                                                                                                                                                 serviceSubnet: 10.96.0.0/16 #services网 段                                                                                                                                                                                                 podSubnet: 172.21.10.0/16   #POD网 段 , 需 要 规 划 网 络                                                                                                                                                                                        
scheduler: {}                                                                                                                                                                                                                              
---                                                                                                                                                                                                                                        
apiVersion: kubelet.config.k8s.io/v1beta1                                                                                                                                                                                                  
kind: KubeletConfiguration                                                                                                                                                                                                                 
cgroupDriver: systemd                                                                                                                                                                                                                      
failSwapOn: false                                                                                                                                                                                                               
---                                                                                                                                                                                                                                        
apiVersion: kubeproxy.config.k8s.io/v1alpha1                                                                                                                                                                                               
kind: KubeProxyConfiguration                                                                                                                                                                                                               
mode: ipvs                                                               

执行如下命令,完成初始化

kubeadm init --config kubeadm.yaml  --upload-certs

创建kubectl 配置文件

mkdir -p $HOME/.kube                                                                                                                                                                                                                     
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config                                                                                                                                                                                 
sudo chown $(id -u):$(id -g) $HOME/.kube/config 
kubectl  label  node l-shahe-k8s-master1 node-role.kubernetes.io/control-plane-
kubectl  label  node l-shahe-k8s-master1 node-role.kubernetes.io/master=

备注:coredns Pending、节点NotReady 是因为没有安装CNI插件,下面步骤进行安装calico CNI讲述

安装CNI Calico

github 下载安装包 release-v3.25.0.tgz

下载解压
mkdir -p /opt/k8s-install/calico/  && cd /opt/k8s-install/calico/
wget 10.60.127.202:19999/k8s-1.26.1-image/release-v3.25.0.tgz 
tar xf release-v3.25.0.tgz  && cd /opt/k8s-install/calico/release-v3.25.0/images  && source  /root/.bash_profile导入镜像
for i in `ls`;do ctr -n k8s.io images import $i;done  

安装calico operator

kubectl create -f tigera-operator.yaml.   #不需要改原生的任何配置
kubectl create -f custom-resources.yaml 
kubectl create -f bgp-config.yaml
kubectl create -f bgp-peer.yaml

custom-resources.yaml 

# This section includes base Calico installation configuration.                                                                                                                                                                            
# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.Installation                                                                                                     
apiVersion: operator.tigera.io/v1                                                                                                                                                                                                          
kind: Installation                                                                                                                                                                                                                         
metadata:                                                                                                                                                                                                                                  name: default                                                                                                                                                                                                                            
spec:                                                                                                                                                                                                                                      # Configures Calico networking.                                                                                                                                                                                                          calicoNetwork:                                                                                                                                                                                                                           # Note: The ipPools section cannot be modified post-install.                                                                                                                                                                           ipPools:                                                                                                                                                                                                                               - blockSize: 27   #每 台 机 器 占 用 的 预 分 配 的 ip地 址                                                                                                                                                                                         cidr: 172.21.0.0/16                                                                                                                                                                                                                  encapsulation: VXLANCrossSubnet                                                                                                                                                                                                      natOutgoing: Enabled                                                                                                                                                                                                                 nodeSelector: all()                                                                                                                                                                                                                  ---                                                                                                                                                                                                                                        # This section configures the Calico API server.                                                                                                                                                                                           
# For more information, see: https://projectcalico.docs.tigera.io/master/reference/installation/api#operator.tigera.io/v1.APIServer                                                                                                        
apiVersion: operator.tigera.io/v1                                                                                                                                                                                                          
kind: APIServer                                                                                                                                                                                                                            
metadata:                                                                                                                                                                                                                                  name: default                                                                                                                                                                                                                            
spec: {} 

 bgp-config.yaml

apiVersion: projectcalico.org/v3                                                                                                                                                                                                           
kind: BGPConfiguration                                                                                                                                                                                                                     
metadata:                                                                                                                                                                                                                                  name: default                                                                                                                                                                                                                            
spec:                                                                                                                                                                                                                                      logSeverityScreen: Info                                                                                                                                                                                                                  nodeToNodeMeshEnabled: false    #关闭全局互联                                                                                                                                                                                                         asNumber: 63400                                                                                                                                                                                                                          serviceClusterIPs:                                                                                                                                                                                                                       - cidr: 10.96.0.0/12                                                                                                                                                                                                                   listenPort: 178                                                                                                                                                                                                                          bindMode: NodeIP                                                                                                                                                                                                                         #communities:                                                                                                                                                                                                                            #  - name: bgp-large-community                                                                                                                                                                                                           #    value: 63400:300:100                                                                                                                                                                                                                #prefixAdvertisements:                                                                                                                                                                                                                   #  - cidr: 172.218.4.0/26                                                                                                                                                                                                                #    communities:                                                                                                                                                                                                                        #      - bgp-large-community                                                                                                                                                                                                             #      - 63400:120                        

bgp-peer.yaml

apiVersion: projectcalico.org/v3                                                                                                                                                                                                           
kind: BGPPeer                                                                                                                                                                                                                              
metadata:                                                                                                                                                                                                                                  name: 10-120-128                                                                                                                                                                                                                         
spec:                                                                                                                                                                                                                                      peerIP: '10.120.128.254'                                                                                                                                                                                                                 keepOriginalNextHop: true                                                                                                                                                                                                                asNumber: 64531                                                                                                                                                                                                                          nodeSelector: rack == '10.120.128'                                                                                                                                                                                                       ---                                                                                                                                                                                                                                        
apiVersion: projectcalico.org/v3                                                                                                                                                                                                           
kind: BGPPeer                                                                                                                                                                                                                              
metadata:                                                                                                                                                                                                                                  name: 10-120-129                                                                                                                                                                                                                         
spec:                                                                                                                                                                                                                                      peerIP: '10.120.129.254'                                                                                                                                                                                                                 keepOriginalNextHop: true                                                                                                                                                                                                                asNumber: 64532                                                                                                                                                                                                                          nodeSelector: rack == '10.120.129'

给node节点增加标签

kubectl  label  node l-shahe-k8s-master1  rack='10.120.128'
kubectl  label  node 10.120.129.1 rack='10.120.129'
kubectl  label  node 10.120.129.2 rack='10.120.129'

重要:修改node节点的AS number   master执行

calicoctl patch node l-shahe-k8s-master1   -p '{"spec": {"bgp": {"asNumber": "64531"}}}'
calicoctl patch node 10.120.129.1 -p '{"spec": {"bgp": {"asNumber": "64532"}}}'
calicoctl patch node 10.120.129.2 -p '{"spec": {"bgp": {"asNumber": "64532"}}}'

检查BGP 连接状态

[root@l-shahe-k8s-master1 calico]$ calicoctl node status                                                                                                                                                                                   
Calico process is running.                                                                                                                                                                                                                 IPv4 BGP status                                                                                                                                                                                                                            
+----------------+---------------+-------+----------+-------------+                                                                                                                                                                        
|  PEER ADDRESS  |   PEER TYPE   | STATE |  SINCE   |    INFO     |                                                                                                                                                                        
+----------------+---------------+-------+----------+-------------+                                                                                                                                                                        
| 10.120.128.254 | node specific | up    | 10:34:04 | Established |                                                                                                                                                                        
+----------------+---------------+-------+----------+-------------+                                                                                                                                                                        IPv6 BGP status                                                                                                                                                                                                                            
No IPv6 peers found.   [root@10 ~]# calicoctl node status                                                                                                                                                                                                         
Calico process is running.                                                                                                                                                                                                                 IPv4 BGP status                                                                                                                                                                                                                            
+----------------+---------------+-------+----------+-------------+                                                                                                                                                                        
|  PEER ADDRESS  |   PEER TYPE   | STATE |  SINCE   |    INFO     |                                                                                                                                                                        
+----------------+---------------+-------+----------+-------------+                                                                                                                                                                        
| 10.120.129.254 | node specific | up    | 10:48:16 | Established |                                                                                                                                                                        
+----------------+---------------+-------+----------+-------------+                                                                                                                                                                        IPv6 BGP status                                                                                                                                                                                                                            
No IPv6 peers found.

修改containerd 配置文件

sandbox_image = "harbor-sh.yidian-inc.com/kubernetes-1.26.1/pause:3.6"[plugins."io.containerd.grpc.v1.cri".registry][plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor-sh.myharbor"]endpoint = ["https://harbor-sh.myharbor.com"][plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."harbor-sh.myharbor".tls]insecure_skip_verify = falseca_file = "/etc/containerd/cert/harbor-sh-ca.crt"[plugins."io.containerd.grpc.v1.cri".registry.configs."harbor-sh.myharbor".auth]username = "admin"password = "OpsSre"[plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming]tls_cert_file = ""tls_key_file = ""

集群加入node节点

完成内核升级、系统配置、部署容器运行时Containerd、安装crictl客户端命令、安装 kubeadm、kubelet 和 kubectl

kubelet需要指定 --container-runtime-endpoint=unix:///var/run/containerd/containerd.sock

vim /usr/lib/systemd/system/kubelet.service

[Unit]Description=kubelet: The Kubernetes Node AgentDocumentation=https://kubernetes.io/docs/Wants=network-online.targetAfter=network-online.target[Service]ExecStart=/usr/bin/kubelet --address=127.0.0.1 --pod-manifest-path=/etc/kubernetes/manifests --container-runtime=remote --container-runtime-endpoint=unix:///var/run/containerd/containerd.sockRestart=alwaysStartLimitInterval=0RestartSec=10[Install]WantedBy=multi-user.target

重启kubelet

systemctl daemon-reload && systemctl restart kubelet  && systemctl status kubelet && systemctl restart containerd

将节点加入到集群

kubeadm join 10.120.102.9:6443 --token abcdef.0123456789abcdef \                                                                                                                                                                          --discovery-token-ca-cert-hash sha256:fd831c44b451c671938a0f11d15c381b75fe0b1d9182c1fd596dbd800ed3242a

由于使用了Calico ToR 网络模式每次新加入的节点都要修改calico node节点as number号

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

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

相关文章

FreeRTOS的Delay函数

两个Delay函数有两个延时函数vTaskDelay:至少等待指定个数的Tick Interrupt才能变为就绪态xTaskDelayUtil:等待到指定的绝对时刻,才能变为就绪态个人感觉这两个延时函数就是,比如一个我等3个小时,一个是我等到下午3点的…

回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测

回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测 目录回归预测 | MATLAB实现BO-CNN-BiLSTM贝叶斯优化卷积双向长短期记忆网络数据回归预测效果一览基本介绍模型搭建程序设计参考资料效果一览 基本介绍 基于贝叶斯优化卷积双向长短期记忆网络(…

会声会影2023专业版视频处理制作软件功能详细介绍

会声会影是一款专业的视频处理和制作软件,也是目前影楼制作结婚和一般视频特效制作的必备软件,他是一款专为个人及家庭所设计的数码影片编辑软件,可将数 字或模拟摄像机所拍下来的如成长写真、国外旅游、个人MTV、生日派对、毕业典礼等精彩生…

惠普m1136打印机驱动程序安装教程

惠普m113打印机是一款功能强大的多功能打印机,它能够打印、复印、扫描和传真等。如果你要使用这款打印机,你需要下载并安装驱动程序,以确保它能够在你的计算机上正常工作。在本文中,我们将介绍如何下载和安装惠普m1136打印机驱动程…

loki 日志管理的安装部署使用

loki介绍 Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。 不对日志进行…

STM32——窗口看门狗

什么是窗口看门狗? 窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测 程序运行时间的场合。 窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器。 产生复位条件: 当递减…

关于死锁的一些基本知识

目录 死锁是什么? 死锁的三种经典情况 1.一个线程,一把锁,连续加锁两次,如果锁是不可重入锁就会死锁。 不可重入锁与可重入锁: 2.两个线程两把锁,t1和t2各自针对于锁A和锁B加锁,再尝试获取…

MongoDB-怎么将csv数据导入mongodb数据库的某张表中

背景介绍 背景就是开发突然问我能不能往数据库导数据,然后只需要某几列的数据。我的第一想法是:用python脚本读取csv文件,将内容拼接成json格式的文本,然后用脚本的方式导入。后来发现我用的GUI工具就可以直接导入数据到数据库中。…

OSS存储使用之centOS系统ossfs挂载

以CentOS7系统为例 下载CentOS系统支持的ossfs工具的版本,以下载CentOS 7.0 (x64)版本为例,可以通过wget命令进行安装包的下载 wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm 也可以通过yum命令来进行安装包的下载 sud…

操作系统权限提升(十三)之绕过UAC提权-MSF和CS绕过UAC提权

系列文章 操作系统权限提升(十二)之绕过UAC提权-Windows UAC概述 注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!! MSF和CS绕过UAC提权 CS绕过UAC提权 拿到一个普通管理员的SHELL,在CS中没有*号代表有…

排序基础之选择排序法

目录 前言 一、什么是选择排序 二、实现选择排序 三、使用泛型扩展 四、使用自定义类型测试 前言 今天天气不错,这么好的天气不干点啥实在是有点可惜了,于是乎,拿出键盘撸一把! 来,今天来学习一下排序算法中的选…

死磕Spring,什么是SPI机制,对SpringBoot自动装配有什么帮助

文章目录如果没时间看的话,在这里直接看总结一、Java SPI的概念和术语二、看看Java SPI是如何诞生的三、Java SPI应该如何应用四、从0开始,手撸一个SPI的应用实例五、SpringBoot自动装配六、Spring SPI机制与Spring Factories机制做对比七、这里是给我自…

你在公司混的差,可能和组织架构有关!

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,非公众号转载保留此声明。如果你接触过公司的面试工作,一定见过很多来自大公司的渣渣。这些人的薪资和职位,比你高出很多&#xff0…

利用steam搬砖信息差赚钱,单账号200+,小白也能轻松上手!

现在很多人在做互联网而且也赚到钱了,但还是有很多人赚不到钱,这是为什么? 这里我不得不说一个词叫做赛道,也就是选择,选择大于努力,项目本身大于一切,90%的人都觉得直播带货赚钱,但…

MySQL语法之DQL数据查询语言(数据库的查询)

Java知识点总结:想看的可以从这里进入 目录2.5.4、DQL数据查询1、简单查询2、模糊查询3、连表查询4、自连接5、UNION6、排序7、分页查询8、分组查询9、子查询in10、子查询EXISTS2.5.4、DQL数据查询 数据库的基本功能,对数据进行查询。关键字select&…

Python3+Selenium3自动化测试

此前对网页内容进行元素定位的操作,接下来就可以对已经定位的元素进行操作了,一般情况下定位好元素后通过IDE的提示就可以了解到有哪些方法 #coding utf-8 import time from selenium import webdriver from selenium.webdriver.common.by import By dr…

关于永中Office(永中办公软件)不认Windows系统安装的字体的解决办法

一位网友的电脑最近安装了永中Office软件,在使用过程中发现无法使用方正小标宋简体、仿宋GB2312等字体,这些字体在之前所用的微软Office中可以正常使用。他根据网上查到的一些的资料,将这些字体文件复制到C:\Program Files\Yozosoft\Yozo_Off…

【AcWing-Python-786】第k个数/快速选择算法

题目:https://www.acwing.com/problem/content/788/对应视频讲解:https://www.acwing.com/video/228/题目描述回顾快排【AcWing-Python-785】快速排序 - CSDN博客(一)步骤找到分界点x:可以是区间最左端点、区间最右端点…

华为OD机试用Python实现 -【天然蓄水库 or 天然蓄水池】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲天然蓄水库 or 天然蓄水池题目描述输入描述输出描述说明示例一输入输出说明示例二输入输出说明示例三输入输出说明Python 代码实现算法思路华为OD机试300题大纲 参加华为

蓝桥2.24训练

1&#xff0c;奇怪的函数 P2759 奇怪的函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 1这道题有两个点&#xff0c;一个是求数的位数 2&#xff0c;用整数二分求出的位数与n比较 #include <bits/stdc.h> using namespace std; typedef long long ll; ll n; int ma…