三节点部署K8S(超级简单+详细步骤)

  • Master: k8s-master(IP: 10.0.0.20)
  • Worker1: k8s-worker1(IP: 10.0.0.21)
  • Worker2: k8s-worker2(IP: 10.0.0.23)【确保三台机器互相可通】

在所有节点上准备系统

修改名称并更新/etc/hosts

禁用 Swap

systemctl disable --now swap.img.swap;systemctl mask swap.target

时间同步

apt -y install chrony

chronyc sources -v

加载内核模块:

  • 解释:启用 overlay 和 br_netfilter 模块,支持容器网络。

    sudo modprobe overlay
    sudo modprobe br_netfilter

  • 永久配置:

    cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
    overlay
    br_netfilter
    EOF

配置网络参数:

  • 解释:启用 IP 转发和桥接过滤,支持 Pod 网络。

    cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
    net.bridge.bridge-nf-call-iptables = 1
    net.bridge.bridge-nf-call-ip6tables = 1
    net.ipv4.ip_forward = 1
    EOF

应用但不重启

sysctl --system

所有主机安装 Containerd

up date

apt -y install containerd

检查一下

修改containerd配置基于toml

复制代码
mkdir /etc/containerd/
containerd config default > /etc/containerd/config.toml
grep sandbox_image  /etc/containerd/config.toml
#新版k8s-v1.34.1
sed -i 
"s#registry.k8s.io/pause:3.8#registry.aliyuncs.com/google_containers/pause:3.10.1#g"  /etc/containerd/config.toml

进入改其为 SystemdCgroup=true

然后增加一部分

复制代码
[plugins."io.containerd.grpc.v1.cri".registry.mirrors](在此行下增加以下两行)
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
  endpoint = ["https://docker.m.daocloud.io","https://docker.1panel.live"]

重启

所有主机安装 kubeadm、kubelet 和 kubectl

第一步

复制代码
curl -fsSL https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.34/deb/Release.key |
    gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.34/deb/ /" |
    tee /etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.34/deb/ /

更新:apt-get update

安装

复制代码
K8S_RELEASE_VERSION=1.34.1

apt install -y  kubeadm=${K8S_RELEASE_VERSION}-1.1 kubelet=${K8S_RELEASE_VERSION}-1.1 kubectl=${K8S_RELEASE_VERSION}-1.1

进行初始化

复制代码
K8S_RELEASE_VERSION=1.34.1


kubeadm init \
--kubernetes-version=v${K8S_RELEASE_VERSION} \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--token-ttl=0 \
--image-repository registry.aliyuncs.com/google_containers

然后就得到

在第一个 master 节点生成 kubectl 命令的授权文件

#mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

在从节点上输最后两行

集群就会上线(默认没有网络插件,所以显示如下状态)

下载插件

wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

(不行的话在github后加一个fast)

wget https://githubfast.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

然后应用

kubectl apply -f kube-flannel.yml

现在就需要漫长的等待了

好了之后就是这样

集群现在已经搭建完成!

可以正常运行了!

相关推荐
AI攻城狮16 分钟前
Gemini Pro 的失败证明 AGI 路线的严重泡沫
云原生
东北甜妹37 分钟前
K8s -探针
云原生·容器·kubernetes
从负无穷开始的三次元代码生活38 分钟前
Docker生产环境实战从0-1学习基础指南——快速掌握
学习·docker·容器·云技术
云祺vinchin40 分钟前
“十五五”引领灾备升级,数字化安全建设如何合规落地?
网络·数据库·安全·kubernetes·数据安全·容灾备份
郑寿昌42 分钟前
K8s中GPU智能体扩缩容的显存碎片优化
云原生·容器·kubernetes
KuaCpp43 分钟前
Docker从0到1学习
学习·docker·容器
Nice_Fold2 小时前
Kubernetes探针机制与Deployment控制器(自用笔记)
笔记·容器·kubernetes
roman_日积跬步-终至千里2 小时前
【系统架构师案例题-知识点】云原生与大数据架构
大数据·云原生·系统架构
D4c-lovetrain2 小时前
Linux个人心得28(k8s实战)
linux·运维·kubernetes
疯狂成瘾者2 小时前
Docker的学习路线
学习·docker·容器