ubuntu 24.04+kubeadm 1.33+calico 3.30.2部署
k8s
环境
ubuntu 24.04
kubeadm 1.33
calico 3.30.2
配置系统环境
更新源
apt updateapt upgrade -y
设置网桥
cat <<EOF > /etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1net.ipv4.ip_forward = 1EOFsudo sysctl --system
安装依赖
apt-get install socat -y
sudo apt-get install -y apt-transport-https ca-certificates curl gpg
安装containerd
官网地址 https://kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#containerd-systemd
sudo apt install -y containerd# 生成配置文件mkdir -p /etc/containerdcontainerd config default > /etc/containerd/config.toml
修改配置文件
# 替换 containerd 默认的 sand_box 镜像[plugins."io.containerd.grpc.v1.cri"]sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.10"# 设置Cgroup为Systemd[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]SystemdCgroup = true
添加crictl.yaml文件,这样就可以执行crictl 命令
cat<<EOF | sudo tee /etc/crictl.yamlruntime-endpoint: unix:///run/containerd/containerd.sockimage-endpoint: unix:///run/containerd/containerd.socktimeout: 5debug: falsepull-image-on-create: falseEOF
重新加载配置文件,并重启containerd
systemctl daemon-reloadsystemctl enable containerdsystemctl restart containerdsystemctl status containerd
添加k8s的源
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/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://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.listapt update
查看下kubelet kubeadm kubectl 有哪些版本
apt list kubelet kubeadm kubectl

安装对应的版本
apt-get install kubelet=1.33.3-1.1 kubeadm=1.33.3-1.1 kubectl=1.33.3-1.1 -y
锁定版本,避免错误升级
sudo apt-mark hold kubelet kubeadm kubectl
设置 master的 hosts
echo "172.19.182.213 kube.apiserver.cluster" | sudo tee -a /etc/hosts
到这里,基础环境配置就算完成了。其他的节点按照以上步骤执行就好。或者,将当前系统做成镜像,其他节点直接使用。
配置集群
查看Kubeadm需要的镜像
kubeadm config images list
可以看到依赖的镜像,如果有需要可以先拉到本地,再上传到镜像仓库。
初始化集群
kubeadm init --kubernetes-version=1.33.3 \--control-plane-endpoint=kube.apiserver.cluster:6443 \--image-repository=registry.aliyuncs.com/google_containers \--pod-network-cidr=192.168.0.0/16
如果是用calico --pod-network-cidr=192.168.0.0/16 就这么设置就可以了。
执行成功之后,可以看到如下内容。里面包含了加入集群的命令,在子节点执行即可。

节点上执行加入命令之后,执行 kubectl get nodes,可以看到如下内容。之所以两个STATUS都是NotReady,是因为没有安装网络插件。
![]()
安装calico
官网上的yaml中的镜像在国内下载不了,我更新为阿里云上可以下的镜像。也可以修改为自己的镜像地址。
kubectl apply -f https://ms-source.oss-cn-shanghai.aliyuncs.com/calico/3.30.2/calico-v3.30.2.yaml
执行之后,可以看到状态已经变为Ready了
![]()
查看pods的状态
kubectl get pods --all-namespaces

安装helm
curl https://baltocdn.com/helm/signing.asc | gpg --dearmor | sudo tee /usr/share/keyrings/helm.gpg > /dev/nullsudo apt-get install apt-transport-https --yesecho "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/helm.gpg] https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.listsudo apt-get updatesudo apt-get install helm

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)