首页主机资讯Debian系统如何实现Kubernetes部署

Debian系统如何实现Kubernetes部署

时间2025-11-27 20:27:03发布访客分类主机资讯浏览396
导读:在 Debian 上部署 Kubernetes 的标准流程 一 环境准备 节点规划:至少准备 1 台 Master 与 1 台 Worker;推荐 Debian 12(Bookworm),内核较新、兼容性更好。 硬件建议:每节点至少 2...

在 Debian 上部署 Kubernetes 的标准流程

一 环境准备

  • 节点规划:至少准备 1 台 Master1 台 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
      
  • 内核与网络参数(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
      
  • 配置 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/syslogcrictl 日志,确认容器运行时、内核参数与 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
      
  • 加入 Worker 节点:在 Master 初始化完成后,使用输出的 kubeadm join 命令在各 Worker 上执行,例如:
    sudo kubeadm join <
        MASTER_IP>
        :6443 \
      --token <
        TOKEN>
         \
      --discovery-token-ca-cert-hash sha256:<
        HASH>
        
    
    若 token 过期,可在 Master 上执行 sudo kubeadm token create --print-join-command 重新生成。
  • 验证集群:
    kubectl cluster-info
    kubectl get nodes
    kubectl get pods -A
    
  • 快速验证应用:
    kubectl create deployment nginx --image=nginx --replicas=1
    kubectl expose deployment nginx --type=NodePort --port=80
    kubectl get svc
    
    访问节点 IP 的 NodePort 即可验证服务可达。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Debian系统如何实现Kubernetes部署
本文地址: https://pptw.com/jishu/758249.html
在Debian上轻松部署Kubernetes 部署Kubernetes于Debian的秘诀

游客 回复需填写必要信息