Debian系统如何实现Kubernetes部署
导读:在 Debian 上部署 Kubernetes 的标准流程 一 环境准备 节点规划:至少准备 1 台 Master 与 1 台 Worker;推荐 Debian 12(Bookworm),内核较新、兼容性更好。 硬件建议:每节点至少 2...
在 Debian 上部署 Kubernetes 的标准流程
一 环境准备
- 节点规划:至少准备 1 台 Master 与 1 台 Worker;推荐 Debian 12(Bookworm),内核较新、兼容性更好。
- 硬件建议:每节点至少 2 核 CPU、2 GB RAM、20 GB 磁盘,并确保节点间 网络互通。
- 基础配置:
- 设置 主机名 并在需要时完善 /etc/hosts 解析。
- 关闭 Swap:
sudo swapoff -a并注释 /etc/fstab 中的 swap 行,避免 kubelet 异常。 - 防火墙放行:确保 6443、10250、10251、10252、8472/udp(Flannel VXLAN) 等端口在节点间放通(如使用 firewalld/ufw,请按需放行)。
二 安装容器运行时与系统参数
- 安装容器运行时(两种常见做法,二选一):
- 使用 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 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(更贴近 K8s 原生,生产常用):
sudo apt update sudo apt install -y containerd sudo systemctl enable --now containerd
- 使用 Docker(传统方式,便于上手):
- 内核与网络参数(K8s 必需):
sudo modprobe overlay sudo modprobe br_netfilter echo -e "overlay\nbr_netfilter" | sudo tee /etc/modules-load.d/containerd.conf cat < < EOF | sudo tee /etc/sysctl.d/99-kubernetes-k8s.conf net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl --system - 说明:若使用 containerd,建议按需配置 SystemdCgroup = true(/etc/containerd/config.toml),并重启 containerd。
三 安装 kubeadm kubelet kubectl
- 添加 Kubernetes APT 源并安装组件:
sudo apt update sudo apt install -y apt-transport-https curl curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor | sudo tee /usr/share/keyrings/kubernetes-archive-keyring.gpg > /dev/null 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 sudo apt update sudo apt install -y kubelet kubeadm kubectl sudo apt-mark hold kubelet kubeadm kubectl sudo systemctl enable --now kubelet - 提示:如遇 GPG 导入兼容问题,优先使用 signed-by 方式导入密钥(如上所示)。
四 初始化控制平面与配置 kubectl
- 初始化 Master(按需调整参数):
- 使用 Flannel(默认 Pod CIDR 为 10.244.0.0/16):
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 - 使用国内镜像加速(可选,提升拉取镜像速度):
sudo kubeadm init \ --image-repository registry.aliyuncs.com/google_containers \ --pod-network-cidr=10.244.0.0/16
- 使用 Flannel(默认 Pod 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 - 常见排错:若 kubelet 未就绪,检查 /var/log/syslog 与 crictl 日志,确认容器运行时、内核参数与 cgroup 配置正确。
五 安装网络插件与加入节点
- 安装网络插件(二选一,确保与 Pod CIDR 一致):
- 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 节点:在 Master 初始化完成后,使用输出的 kubeadm join 命令在各 Worker 上执行,例如:
若 token 过期,可在 Master 上执行sudo kubeadm join < MASTER_IP> :6443 \ --token < TOKEN> \ --discovery-token-ca-cert-hash sha256:< HASH>sudo kubeadm token create --print-join-command重新生成。 - 验证集群:
kubectl cluster-info kubectl get nodes kubectl get pods -A - 快速验证应用:
访问节点 IP 的 NodePort 即可验证服务可达。kubectl create deployment nginx --image=nginx --replicas=1 kubectl expose deployment nginx --type=NodePort --port=80 kubectl get svc
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian系统如何实现Kubernetes部署
本文地址: https://pptw.com/jishu/758249.html
