三节点部署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

现在就需要漫长的等待了

好了之后就是这样

集群现在已经搭建完成!

可以正常运行了!

相关推荐
Css38RttP21 小时前
Kind 环境下 Flannel IPsec 模式跨节点通信故障排查流程
云原生·kind
小义_1 天前
随笔 3(Linux)
linux·运维·服务器·云原生·红帽
倔强的胖蚂蚁1 天前
x2openEuler 辅助机完整部署教程
运维·云原生
普通网友1 天前
《K8s 自动扩缩容:基于 CPU / 内存的 HPA 配置》
docker·容器·kubernetes
Joren的学习记录1 天前
【Linux运维大神系列】Kubernetes详解7(k8s技术笔记3)
linux·运维·kubernetes
学到四1 天前
kubernetes(k8s)
云原生·容器·kubernetes
睡觉的时候不会困1 天前
Kubernetes Pod 管理全攻略:从基础操作到进阶优化
云原生·容器·kubernetes
落日漫游1 天前
深入解析K8sCRD:自定义资源定义实战指南
云原生·容器·kubernetes
q_30238195561 天前
告别kubectl命令地狱!MCP-K8s让AI成为你的智能运维助手
运维·人工智能·语言模型·chatgpt·kubernetes·文心一言·devops
凌晨l1 天前
Centos7.9部署k8s(详细步骤)
云原生·容器·kubernetes