环境

ubuntu 24.04
kubeadm 1.33
calico 3.30.2

配置系统环境

更新源

apt updateapt upgrade -y

设置网桥

cat <<EOF >  /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1EOF
sudo 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

    Logo

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

    更多推荐