Debian Kubernetes安装步骤是什么
导读:在 Debian 上使用 kubeadm 安装 Kubernetes 的步骤 一 环境准备 系统建议:使用 Debian 12(Bookworm),内核较新,容器生态兼容更好。 硬件建议:每个节点至少 2 核 CPU、2GB 内存、20G...
在 Debian 上使用 kubeadm 安装 Kubernetes 的步骤
一 环境准备
- 系统建议:使用 Debian 12(Bookworm),内核较新,容器生态兼容更好。
- 硬件建议:每个节点至少 2 核 CPU、2GB 内存、20GB 磁盘(生产环境建议更高)。
- 网络与时间:节点间网络互通,建议启用 NTP/chrony 时间同步。
- 主机标识:设置唯一 主机名,必要时在 /etc/hosts 做解析;克隆的虚拟机需确保 MAC 地址 与 product_uuid 唯一。
- 防火墙与安全组:放通 6443(API Server)、10250(kubelet)、10251/10252(kube-scheduler/controller-manager)、以及 8472(Flannel VXLAN) 等端口(或临时关闭防火墙以便部署)。
- 容器运行时:安装 Docker 或 containerd(下文以 Docker 为例)。
二 安装容器运行时与系统参数
- 安装 Docker(示例)
sudo apt update sudo apt 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 update sudo apt install -y docker-ce docker-ce-cli containerd.io sudo systemctl enable --now docker - 关闭 Swap
sudo swapoff -a sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab - 加载内核模块与开启桥接转发
sudo modprobe overlay sudo modprobe br_netfilter cat < < EOF | sudo tee /etc/modules-load.d/containerd.conf overlay br_netfilter EOF cat < < EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 net.bridge.bridge-nf-call-ip6tables = 1 EOF sudo sysctl --system
三 安装 kubeadm kubelet kubectl
- 添加 Kubernetes APT 源并安装组件
sudo apt update sudo apt install -y apt-transport-https curl # 注意:Debian 12 的发行代号是 bookworm,但 Kubernetes 仓库仍使用 xenial 目录 curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.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 update sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl - 启动 kubelet
sudo systemctl enable --now kubelet
四 初始化控制平面并配置 kubectl
- 初始化 Master(示例)
如在国内环境拉取镜像较慢,可指定镜像仓库:sudo kubeadm init \ --apiserver-advertise-address=< MASTER_IP> \ --pod-network-cidr=10.244.0.0/16 \ --service-cidr=10.96.0.0/12sudo kubeadm init \ --apiserver-advertise-address=< MASTER_IP> \ --image-repository=registry.aliyuncs.com/google_containers \ --pod-network-cidr=10.244.0.0/16 \ --service-cidr=10.96.0.0/12 - 配置 kubectl
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config - 安装网络插件(Flannel)
如使用 Calico,可替换为:kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.ymlkubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml - 获取加入命令(在 Master 上)
kubeadm token create --print-join-command
五 加入工作节点与验证
- 加入 Worker
sudo kubeadm join < MASTER_IP> :6443 \ --token < TOKEN> \ --discovery-token-ca-cert-hash sha256:< HASH> - 验证集群
kubectl get nodes kubectl get pods -A kubectl cluster-info - 简单应用测试
kubectl create deployment nginx-app --image=nginx --replicas=2 kubectl expose deployment nginx-app --name=nginx-web-svc --type=NodePort --port=80 --target-port=80 kubectl get svc nginx-web-svc # 在浏览器或使用 curl 访问 NodeIP:NodePort
六 常见问题与排错要点
- 镜像拉取失败:使用国内镜像仓库(如 registry.aliyuncs.com/google_containers),或提前 docker pull 所需镜像。
- 节点 NotReady:确认 Flannel/Calico 已成功部署,Pod 网段与控制平面网段不冲突,内核转发与桥接规则已生效。
- kubelet 启动失败:确认 Swap 已关闭、cgroups 驱动一致(Docker 默认 cgroupfs,kubelet 常用 systemd;如不一致需统一),以及 /var/lib/kubelet 权限正确。
- 加入命令过期:在 Master 重新生成 kubeadm token create --print-join-command。
- 时间不同步:部署并启用 chrony 或 NTP,确保节点间时间误差在合理范围内。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian Kubernetes安装步骤是什么
本文地址: https://pptw.com/jishu/766920.html
