使用kubeadm 部署k8s--v1.25.2版本
一、环境要求
资源:至少2c2g10gb 的资源
hosts:
192.168.100.50 | master |
192.168.100.51 | node1 |
192.168.100.52 | node2 |
系统:centos 7 、Kernel: Linux 3.10.0
二、基础环境配置(所有节点执行):
1、配置hostname
方法一、# vim /etc/hostname 配置相应的主机名
方法二、hostnamectl set-hostname master
2、配置时钟,保持所以主机时钟一致。
3、 关闭防火墙和selinux
4、关闭swap
禁用交换分区。为了保证 kubelet 正常工作,你必须禁用交换分区。
# swapoff -a
# sed -i 's/.*swap.*/#&/' /etc/fstab
5、配置repo 安装 containerd、kubelet、kubeadm、kubectl
三、安装及配置(所有节点执行)
1、部署 containerd
Kubernates 中 pod 的运行必须有容器运行环境,以前 kubernetes 是使用 Docker,后面主要使用 containerd 等,只安装 containerd 即可
a、移除可能安装过的 Docker 包
# yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
b、安装 yum-utils
# yum install -y yum-utils
c、安装 containerd
# yum install containerd.io -y
d、配置 containerd
I、设置开机自启和
# systemctl enable containerd
#systemctl start containerd
II、修改 containerd 使用 systemd
III、重启 containerd
2、部署 kubernetes组件 kubelet、kubeadm、kubectl
a、安装并配置自启动
# yum install -y --nogpgcheck kubelet kubeadm kubectl
# systemctl enable kubelet
b、配置 kubernetes
I、确认iptables 参数 为一:
# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables
# cat /proc/sys/net/bridge/bridge-nf-call-iptables
II、通用配置项
# modprobe overlay
# modprobe br_netfilter
# sysctl --system #生效以上配置
c、安装和设置 crictl
# VERSION="v1.23.0"
# curl -L https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-${VERSION}-linux-amd64.tar.gz --output crictl-${VERSION}-linux-amd64.tar.gz
#crictl config --set runtime-endpoint=unix:///run/containerd/containerd.sock
四、初始化集群
1、初始化master (只在master节点执行)
# kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=192.168.101.0/24 --service-cidr=192.168.102.0/24 --ignore-preflight-errors=all
2、按照成功提示 执行相应操作(只在master节点执行):
3、node节点加入集群(只在node节点执行在master 初始化完成时的提示命令):
# kubeadm join 192.168.100.50:6443 --token iudv2k.654tkstlx3if0ox0 --discovery-token-ca-cert-hash sha256:e2c640adbc1cc16c3819360ead74e78236de9c1a1190fcc747019924d1d17288
4、查看结果: kubectl get nodes
节点加入集群后,起初是NotReady
的,这是正常的,我们需要进行网络配置,安装 calico
五、配置网络插件 calico
1、安装插件:
# kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
操作完成后稍等一会儿就会自动处于Ready状态。
2、如果一直没有变为Ready状态,切查看message 日志一直在报错:cni plugin not initialized
解决办法如下,具体参考:https://github.com/flannel-io/flannel/issues/1236
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)