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

现在就需要漫长的等待了

好了之后就是这样

集群现在已经搭建完成!

可以正常运行了!

相关推荐
蜀道山老天师15 分钟前
实操|Prometheus Pushgateway 部署、推送与数据管理全流程
运维·服务器·云原生·prometheus
仙柒4155 小时前
Docker原理
运维·docker·容器
Cat_Rocky10 小时前
Kubernetes集群升级指南以及自动更新证书
云原生·容器·kubernetes
米高梅狮子10 小时前
第2章 docker容器
运维·docker·云原生·容器·架构·kubernetes·自动化
万里侯10 小时前
分布式系统设计原则:构建高可用的系统架构
微服务·容器·k8s
卧室小白12 小时前
docker网络与服务编排与集群
运维·docker·容器
古城小栈14 小时前
K8s 之 ingress
云原生·容器·kubernetes
万里侯15 小时前
微服务与人生:从服务网格看人际关系
微服务·容器·k8s
疯狂成瘾者15 小时前
Kubernetes(简称K8s)
云原生·容器·kubernetes
ElevenS_it18816 小时前
K8s容器环境运维监控盲区:从Node到Pod到Service的可观测性分层实战
运维·容器·kubernetes