Debian下K8s部署步骤是什么
导读:Debian 下使用 kubeadm 部署 Kubernetes 的步骤 一 环境准备 节点与网络 至少准备1 台 Master + 1 台 Worker,推荐硬件:2 核 CPU、2 GB RAM、20 GB 磁盘。 各节点设置唯一主...
Debian 下使用 kubeadm 部署 Kubernetes 的步骤
一 环境准备
- 节点与网络
- 至少准备1 台 Master + 1 台 Worker,推荐硬件:2 核 CPU、2 GB RAM、20 GB 磁盘。
- 各节点设置唯一主机名,并保证节点间网络互通、时间同步(如 chrony/ntpd)。
- 系统配置
- 关闭 Swap:sudo swapoff -a,并在 /etc/fstab 中注释 swap 行,避免 kubelet 启动失败。
- 防火墙/安全组放行端口(见文末端口表)。
- 容器运行时
- 可选 Docker 或 containerd(下文给出两种做法,二选一)。
二 安装容器运行时与依赖
- 方案 A Docker(快速上手)
- Debian 11/12 均可:
sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker
- Debian 11/12 均可:
- 方案 B containerd(与 kubelet 原生集成,生产更推荐)
- 安装与启用:
sudo apt-get update sudo apt-get install -y containerd sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo systemctl enable --now containerd - 如使用 systemd cgroup,可在 config.toml 的 [plugins.“io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options] 下确保:
- SystemdCgroup = true
- 安装与启用:
- 说明
- 若使用 Docker,kubelet 会通过 dockershim 调用;若使用 containerd,建议直接使用其 CRI 插件。
三 安装 kubeadm kubelet kubectl
- 添加 Kubernetes APT 源并安装组件(Debian 11/12 通用):
sudo apt-get update sudo apt-get install -y apt-transport-https curl ca-certificates gnupg curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" \ | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null sudo apt-get update sudo apt-get install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl sudo systemctl enable --now kubelet - 说明
- 上述源为官方 kubernetes-xenial 仓库,适用于 Debian 11/12;安装后请保持 kubelet 开机自启。
四 初始化控制平面与配置 kubectl
- 在 Master 节点初始化(按需替换参数):
# 单 Master 常用示例(使用 Flannel 时 pod-network-cidr=10.244.0.0/16) sudo kubeadm init --pod-network-cidr=10.244.0.0/16 # 如需指定 API 地址或版本,可附加: # --apiserver-advertise-address=< MASTER_IP> --kubernetes-version=v1.28.0 - 配置 kubectl(当前用户):
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config - 安装 CNI 网络插件(二选一)
- Flannel(简单通用):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml - Calico(策略更丰富):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- Flannel(简单通用):
- 在 Worker 节点加入集群
- 使用 kubeadm init 完成后输出的 kubeadm join 命令,或按需生成新 token:
# 生成新的加入命令(在 Master 上) kubeadm token create --print-join-command # 在 Worker 上执行输出的 join 命令
- 使用 kubeadm init 完成后输出的 kubeadm join 命令,或按需生成新 token:
- 验证
kubectl get nodes kubectl get pods -A - 说明
- 若初始化时未指定 –pod-network-cidr,请确保与所选 CNI 的默认网段一致(Flannel 默认 10.244.0.0/16)。
五 常用维护与注意事项
- 常用维护
- 重置节点(重装前清理):
sudo kubeadm reset sudo rm -rf /etc/cni/net.d sudo iptables -F & & sudo iptables -t nat -F & & sudo iptables -t mangle -F & & sudo iptables -X - 重新生成 join 命令(token 过期时):
kubeadm token create --print-join-command
- 重置节点(重装前清理):
- 端口与网络
- 建议放行端口(Master:6443、2379-2380、10250、10251、10252;Worker:10250、30000-32767),或临时关闭防火墙用于排障。
- 生产建议
- 采用 多 Master 高可用、配置 持久化存储、启用 RBAC 与 网络策略,并定期升级集群版本。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian下K8s部署步骤是什么
本文地址: https://pptw.com/jishu/789770.html
