您的位置:首页 > 教育 > 锐评 > k8s v1.30 完整安装过程及CNI安装过程总结

k8s v1.30 完整安装过程及CNI安装过程总结

2024/10/5 20:20:55 来源:https://blog.csdn.net/qq_31985307/article/details/140579846  浏览:    关键词:k8s v1.30 完整安装过程及CNI安装过程总结

博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持!
博主链接

本人就职于国际知名终端厂商,负责modem芯片研发。
在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G技术研究。


博客内容主要围绕:
       5G/6G协议讲解
       高级C语言讲解
       Rust语言讲解



文章目录

  • k8s v1.30 完整安装过程及CNI安装过程总结
    • 一、演示环境介绍
    • 二、初始环境配置(`每个机器都需要运行`)
      • 2.1 配置主机的hosts文件
      • 2.2 关闭系统的交换空间
      • 2.3 配置内核参数
      • 2.4 安装docker
      • 2.5 安装k8s v1.30
      • 2.6 安装cri-docker
    • 三、创建集群(`在master机器上运行下面的命令`)
    • 四、加入工作节点(`在除master的机器上运行`)
    • 五、安装pod网络calico(`只需在master机器上运行`)

k8s v1.30 完整安装过程及CNI安装过程总结

一、演示环境介绍

主机名IP地址
master172.16.1.1
node1172.16.1.2

二、初始环境配置(每个机器都需要运行

2.1 配置主机的hosts文件

sudo cat > /etc/hosts <<EOF
172.16.1.1 master
172.16.1.2 node
EOF

2.2 关闭系统的交换空间

sudo sed -ri 's/^([^#].*swap.*)$/#\1/' /etc/fstab && grep swap /etc/fstab && swapoff -a && free -h

2.3 配置内核参数

sudo cat >> /etc/sysctl.conf <<EOF
vm.swappiness = 0
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
EOFsudo cat >> /etc/modules-load.d/neutron.conf <<EOF
br_netfilter
EOFsudo modprobe  br_netfilter
sudo sysctl -p

2.4 安装docker

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullsudo apt-get update
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose -y
sudo cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://reg-mirror.qiniu.com",
"https://registry.docker-cn.com"
],"exec-opts": ["native.cgroupdriver=systemd"],"data-root": "/data/docker","log-driver": "json-file","log-opts": {"max-size": "20m","max-file": "5"}
}
EOFsudo systemctl restart docker.service
sudo systemctl enable docker.service

2.5 安装k8s v1.30

sudo apt-get update && sudo apt-get install -y apt-transport-httpscurl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/Release.key | sudo  gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpgecho "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.30/deb/ /" | sudo  tee /etc/apt/sources.list.d/kubernetes.listsudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectlsudo systemctl enable kubelet

2.6 安装cri-docker

从* https://github.com/Mirantis/cri-dockerd*下载最新的cri-docker版本,我这里使用的是0.3.15

在这里插入图片描述

因为我的环境是Ubuntu22.04,所以下载了下图中的版本
在这里插入图片描述
运行下面的命令进行下载和安装(注意,如果你下载的版本和我的不一样,要修改第一条命令):

wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.15/cri-dockerd_0.3.15.3-0.ubuntu-jammy_amd64.debsudo dpkg -i cri-dockerd_0.3.15.3-0.ubuntu-jammy_amd64.deb

下面我们需要配置一下cri-docker的下载源:

sudo sed -ri 's@^(.*fd://).*$@\1 --pod-infra-container-image registry.aliyuncs.com/google_containers/pause@' /usr/lib/systemd/system/cri-docker.servicesudo systemctl daemon-reload && sudo systemctl restart cri-docker && sudo systemctl enable cri-docker

三、创建集群(在master机器上运行下面的命令

生成配置文件

kubeadm config print init-defaults > myCluster.yaml

根据生成的myCluster.yaml配置文件,配置集群参数:

......
localAPIEndpoint:# 修改成本master的ipadvertiseAddress: 172.16.1.1bindPort: 6443
nodeRegistration:# 修改成cri-dockerd的sockcriSocket: unix:///run/cri-dockerd.sockimagePullPolicy: IfNotPresent# 修改成本master的主机名name: mastertaints: null
---
......
etcd:local:# 修改etcd的数据目录dataDir: /data/etcd
# 修改加速地址
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
# 修改成具体对应的版本好
kubernetesVersion: 1.30.1
# 如果是多master节点,就需要添加这项,指向代理的地址,这里就设置成master的节点
controlPlaneEndpoint: "master:6443"
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12# 添加pod的IP地址podSubnet: 10.244.0.0/16 # 在最后添加上下面两部分
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd 

改好配置文件之后初始化集群

kubeadm init --config=myCluster.yamlmkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

四、加入工作节点(在除master的机器上运行

如果你的机器之前加入过一个集群,可以运行下面的命令删除之前的配置信息:
kubeadm reset --cri-socket unix:///run/cri-dockerd.sock

在master节点上运行下面的命令获取加入集群的命令:

kubeadm token create --print-join-command

将返回的命令加上 “–cri-socket unix:///run/cri-dockerd.sock”,在node机器上执行。


五、安装pod网络calico(只需在master机器上运行

下载v3.28版本的calico配置文件(一定是最新版本,旧版本可能与k8s v1.30不兼容,都是泪啊

wget https://github.com/projectcalico/calico/blob/v3.28.0/manifests/tigera-operator.yamlcat > ippool.yaml << EOF
apiVersion: projectcalico.org/v3
kind: IPPool
metadata:name: default
spec:cidr: 10.244.0.0/16ipipMode: AlwaysnatOutgoing: true
EOFcat > custom-resources.yaml << EOF 
apiVersion: operator.tigera.io/v1
kind: Installation
metadata:name: default
spec:calicoNetwork:ipPools:- name: default-ipv4-ippoolblockSize: 26cidr: 10.244.0.0/16encapsulation: VXLANCrossSubnetnatOutgoing: EnablednodeSelector: {}---
apiVersion: operator.tigera.io/v1
kind: APIServer
metadata:name: default
spec: {}EOF

安装calico v3.28

kubectl create -f tigera-operator.yaml
kubectl apply -f ippool.yamlsudo cat > /etc/NetworkManager/conf.d/calico.conf << EOF
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:tunl*;interface-name:vxlan.calico;interface-name:vxlan-v6.calico;interface-name:wireguard.cali;interface-name:wg-v6.cali
EOFkubectl apply -f custom-resources.yaml


在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com