怎样在Debian上运行K8s
导读:在 Debian 上部署 Kubernetes 的实操步骤 一 环境与前置准备 节点规划:至少 1 台 Master + 1 台 Worker;推荐 Debian 12,各节点需具备唯一 主机名/MAC/Product UUID,并开启...
在 Debian 上部署 Kubernetes 的实操步骤
一 环境与前置准备
- 节点规划:至少 1 台 Master + 1 台 Worker;推荐 Debian 12,各节点需具备唯一 主机名/MAC/Product UUID,并开启 NTP 时间同步。
- 硬件建议:每节点至少 2 核 CPU、2 GB 内存、20 GB 磁盘。
- 网络要求:节点间 互通;控制面端口 6443 对外开放;如需 NodePort 服务,开放 30000–32767。
- 容器运行时:使用 containerd(推荐)或 Docker。
- 安全基线:临时与永久 关闭 Swap;开启桥接流量转发;按需放行防火墙端口。
二 所有节点通用配置
- 更新系统与基础工具
sudo apt update & & sudo apt upgrade -y sudo apt install -y apt-transport-https ca-certificates curl - 加载内核模块与网络转发
sudo tee /etc/modules-load.d/k8s.conf < < EOF overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter sudo tee /etc/sysctl.d/99-kubernetes.conf < < EOF net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system - 关闭 Swap
sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab - 安装并启用容器运行时(二选一)
- containerd(推荐)
sudo apt install -y containerd sudo mkdir -p /etc/containerd containerd config default | sudo tee /etc/containerd/config.toml sudo systemctl enable --now containerd - Docker
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add - echo "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | \ sudo tee /etc/apt/sources.list.d/docker.list sudo apt update & & sudo apt install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker
- containerd(推荐)
- 安装 kubeadm、kubelet、kubectl(使用新版签名与仓库)
# 以 1.33 为例,可按需替换为其他稳定版本 VERSION=v1.33 sudo curl -fsSL https://pkgs.k8s.io/core:/stable:/${ VERSION} /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://pkgs.k8s.io/core:/stable:/${ VERSION} /deb/ /" | \ sudo tee /etc/apt/sources.list.d/kubernetes.list sudo apt update sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl sudo systemctl enable --now kubelet - 防火墙放行(示例 UFW;如使用 firewalld/云安全组,放行等价端口)
sudo ufw allow 6443/tcp sudo ufw allow 2379:2380/tcp sudo ufw allow 10250/tcp sudo ufw allow 10251/tcp sudo ufw allow 10252/tcp sudo ufw allow 30000:32767/tcp sudo ufw reload
以上步骤覆盖系统、内核、容器运行时与 k8s 组件的基础安装与网络准备。
三 初始化控制平面 Master
- 初始化集群(Pod 网段按所选 CNI 调整)
# Flannel 常用 10.244.0.0/16;Calico 常用 192.168.0.0/16 sudo kubeadm init --pod-network-cidr=10.244.0.0/16 - 配置 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/tigera-operator.yaml kubectl apply -f https://docs.projectcalico.org/manifests/custom-resources.yaml
- Flannel
- 验证
kubectl cluster-info kubectl get nodes kubectl get pods -A
上述命令完成控制面初始化、kubectl 配置与网络插件部署,节点就绪后即可纳管工作节点。
四 加入 Worker 节点
- 在 Master 上生成加入命令(若 token 过期可重建)
# 生成新的 join 命令并打印 kubeadm token create --print-join-command - 在 Worker 节点执行输出的 join 命令
sudo kubeadm join < MASTER_IP> :6443 \ --token < TOKEN> \ --discovery-token-ca-cert-hash sha256:< HASH> - 在 Master 上验证
kubectl get nodes
以上完成节点加入与集群扩容。
五 常见问题与维护
- 镜像拉取失败(国内网络):预先拉取所需镜像并重新打 tag,或使用国内镜像源/代理。示例(按需替换版本标签):
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.33.4 docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.33.4 \ k8s.gcr.io/kube-apiserver:v1.33.4 # 其余组件同理:kube-controller-manager、kube-scheduler、kube-proxy、pause、etcd、coredns - 重置与清理(重装时使用)
sudo kubeadm reset -f sudo rm -rf /etc/cni/net.d sudo iptables -F & & sudo iptables -t nat -F & & sudo iptables -t mangle -F & & sudo iptables -X sudo systemctl restart containerd - 版本与升级建议:保持 kubelet 与 API Server 版本偏差不超过 1 个次版本;升级前备份 etcd 与关键应用。
- 生产建议:启用 高可用控制面(多 Master)、持久化存储、RBAC、网络策略 与 审计日志;按需配置 镜像加速 与 私有仓库。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 怎样在Debian上运行K8s
本文地址: https://pptw.com/jishu/789769.html
