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

news2024/11/17 17:51:36

目录

机器信息

升级内核

系统配置

部署容器运行时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 = false
          ca_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 Agent

Documentation=https://kubernetes.io/docs/

Wants=network-online.target

After=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.sock

Restart=always

StartLimitInterval=0

RestartSec=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.coloradmin.cn/o/370729.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DS期末复习卷(十)

一、选择题(24分) 1&#xff0e;下列程序段的时间复杂度为&#xff08; A &#xff09;。 i0&#xff0c;s0&#xff1b; while (s<n) {ssi&#xff1b;i&#xff1b;} (A) O(n^1/2) (B) O(n ^1/3) © O(n) (D) O(n ^2) 12…xn xn^1/2 2&#xff0e;设某链表中最常用的…

SnowFlake 雪花算法和原理(分布式 id 生成算法)

一、概述 SnowFlake 算法&#xff1a;是 Twitter 开源的分布式 id 生成算法。核心思想&#xff1a;使用一个 64 bit 的 long 型的数字作为全局唯一 id。算法原理最高位是符号位&#xff0c;始终为0&#xff0c;不可用。41位的时间序列&#xff0c;精确到毫秒级&#xff0c;41位…

Android 原生 TabLayout 使用全解析

前言为什么会有这篇文章呢&#xff0c;是因为之前关于TabLayout的使用陆陆续续也写了好几篇了&#xff0c;感觉比较分散&#xff0c;且不成体系&#xff0c;写这篇文章的目的就是希望能把各种效果的实现一次性讲齐&#xff0c;所以也有了标题的「看这篇就够了」。TabLayout作为…

【自然语言处理】Topic Coherence You Need to Know(主题连贯度详解)

Topic Coherence You Need to Know皮皮&#xff0c;京哥皮皮&#xff0c;京哥皮皮&#xff0c;京哥CommunicationUniversityofChinaCommunication\ University\ of\ ChinaCommunication University of China 在大多数关于主题建模的文章中&#xff0c;常用主题连贯度&#xff…

JSP实现数据传递与保存(一)

学习目标&#xff1a; 理解JSP内置对象的概念 掌握request和response的使用 掌握转发和重定向的区别 掌握out对象的使用 学习内容&#xff1a; 1.HTML页面转成JSP页面 HTML页面转成JSP页面一般有两种方式 方式1&#xff1a;直接修改HTML页面 1&#xff09;直接在HTM…

QT+OpenGL模板测试和混合

QTOpenGL模板测试和混合 本篇完整工程见gitee:QtOpenGL 对应点的tag&#xff0c;由turbolove提供技术支持&#xff0c;您可以关注博主或者私信博主 模板测试 当片段着色器处理完一个片段之后&#xff0c;模板测试会开始执行。和深度测试一样&#xff0c;它可能会丢弃片段&am…

Win11的两个实用技巧系列之Win11怎么找回Win7照片查看器

Win11怎么找回Win7照片查看器? Win11旧版照片查看器的切换方法Win11怎么找回Win7照片查看器&#xff1f;用习惯了win7的照片查看器&#xff0c;想要在win11中使用&#xff0c;该怎么启用旧版照片查看器呢&#xff1f;下面我们就来看看Win11旧版照片查看器的切换方法Win11系统启…

c++之二叉树【进阶版】

前言 在c语言阶段的数据结构系列中已经学习过二叉树&#xff0c;但是这篇文章是二叉树的进阶版&#xff0c;因为首先就会讲到一种树形结构“二叉搜索树”&#xff0c;学习二叉搜索树的目标是为了更好的理解map和set的特性。二叉搜索树的特性就是左子树键值小于根&#xff0c;右…

【JVM】运行时数据区与对象的创建流程

4、运行时数据区 4.1、运行时数据区介绍 运行时数据区也就是JVM在运⾏时产生的数据存放的区域&#xff0c;这块区域就是JVM的内存区域&#xff0c;也称为JVM的内存模型——JMM 堆空间&#xff08;线程共享&#xff09;&#xff1a;存放new出来的对象 元空间&#xff08;线程共…

3,预初始化(一)(大象无形9.2)

正如书中所说&#xff0c;预初始化流程由FEngineLoop::PreInit()所实现 主要处理流程 1&#xff0c;设置路径&#xff1a;当前程序路径&#xff0c;当前工作目录路径&#xff0c;游戏的工程路径 2,设置标准输出&#xff1a;设置GLog系统输出的设备&#xff0c;是输出到命令行…

web自动化测试-执行 JavaScript 脚本

JavaScript 是一种脚本语言&#xff0c;有的场景需要使用 js 脚本注入辅助我们完成 Selenium 无法做到的事情。 当 webdriver 遇到无法完成的操作时&#xff0c;可以使用 JavaScript 来完成&#xff0c;webdriver 提供了 execute_script() 方法来调用 js 代码。 执行 js 有两种…

Leetcode.2385 感染二叉树需要的总时间

题目链接 Leetcode.2385 感染二叉树需要的总时间 Rating &#xff1a; 1711 题目描述 给你一棵二叉树的根节点 root&#xff0c;二叉树中节点的值 互不相同 。另给你一个整数 start。在第 0分钟&#xff0c;感染 将会从值为 start的节点开始爆发。 每分钟&#xff0c;如果节点…

一文3000字从0到1实现基于requests框架接口自动化测试项目实战(建议收藏)

requests库是一个常用的用于http请求的模块&#xff0c;它使用python语言编写&#xff0c;在当下python系列的接口自动化中应用广泛&#xff0c;本文将带领大家深入学习这个库 Python环境的安装就不在这里赘述了&#xff0c;我们直接开干。 01、requests的安装 windows下执行…

大数据常见应用场景及架构改进

大数据常见应用场景及架构改进大数据典型的离线处理场景1.大数据数据仓库及它的架构改进2.海量数据规模下的搜索与检索3.新兴的图计算领域4.海量数据挖掘潜在价值大数据实时处理场景大数据典型的离线处理场景 1.大数据数据仓库及它的架构改进 对于离线场景&#xff0c;最典型…

磷脂-聚乙二醇-丙烯酸酯;DSPE-PEG-AC试剂说明;DSPE-PEG-Acrylate科研用

中文名称&#xff1a;磷脂-聚乙二醇-丙烯酸酯 丙烯酸酯-聚乙二醇-磷脂 简称&#xff1a;DSPE-PEG-AC&#xff1b;DSPE-PEG-Acrylate 溶剂&#xff1a;溶于部分常规有机溶剂 PEG分子量:1000&#xff1b;2000&#xff1b;3400&#xff1b;5000等等 注意事项&#xff1a;避免…

JavaSE02-JVM、JRE、JDK

文章目录一、JVM、JRE、JDK区别二、JDK的安装和配置1.JDK安装2.测试验证3.环境变量配置3.1 配置JAVA_HOME系统变量3.2 配置Path环境变量再最前面加上&#xff1a; %JAVA_HOME%\bin一、JVM、JRE、JDK区别 JVM&#xff08;Java Virtual Machine&#xff09;&#xff0c;Java虚拟…

jar包和AAR包

以前在使用 Eclipse 开发 Android 时&#xff0c;如果想代码打包&#xff0c;只有 jar 包一个方法&#xff0c;但是 jar包 只能把 Java 文件代码打包进去&#xff0c;如果要使用一个有布局和资源的库的话&#xff0c;除了将 jar 放入 libs 外,还要引入相关的资源和配置文件&…

详解一个TCP连接的建立与销毁

目录 &#x1f332; 图解TCP三次握手建立连接 TCP数据报结构 TCP连接的建立&#xff08;三次握手&#xff09; 最后的说明 &#x1f332; 详细分析TCP数据的传输过程 &#x1f332; 图解TCP四次握手断开连接 &#x1f332; 图解TCP三次握手建立连接 TCP&#xff08;Tran…

【模拟集成电路】宽摆幅压控振荡器(VCO)设计

鉴频鉴相器设计&#xff08;Phase Frequency Detector&#xff0c;PFD&#xff09;前言一、VCO工作原理二、VCO电路设计VCO原理图三、压控振荡器&#xff08;VCO&#xff09;测试VCO测试电路图瞬态测试&#xff08;1&#xff09;瞬态输出&#xff08;2&#xff09;局部放大图&a…

【Java】Spring Boot项目的创建和使用

文章目录SpringBoot的创建和使用1. 什么是Spring Boot&#xff1f;为什么要学Spring Boot&#xff1f;2. Spring Boot项目的优点3. Spring Boot 项目的创建3.1 使用idea创建3.2 接下来创建Spring Boot项目4. 项目目录介绍和运行4.1 运行项目4.2 输出内容5. 总结SpringBoot的创建…