首页主机资讯Debian与Kubernetes部署指南

Debian与Kubernetes部署指南

时间2025-11-27 20:30:03发布访客分类主机资讯浏览406
导读:Debian 12 上部署 Kubernetes 的标准流程 一 环境准备 节点规划:至少准备 1 台控制平面(Master) 与 1 台工作节点(Worker);建议 2 核 CPU、2GB RAM、20GB 磁盘 以上,节点间可互通,...

Debian 12 上部署 Kubernetes 的标准流程

一 环境准备

  • 节点规划:至少准备 1 台控制平面(Master)1 台工作节点(Worker);建议 2 核 CPU、2GB RAM、20GB 磁盘 以上,节点间可互通,最好使用 静态 IP
  • 系统设置:
    • 关闭 Swap:sudo swapoff -a,并在 /etc/fstab 中注释 Swap 行。
    • 内核与转发:加载模块 overlaybr_netfilter,开启桥接与转发。
    • 时间同步:安装并启用 NTP/chrony,避免证书与调度异常。
    • 主机名与解析:为各节点设置唯一 hostname,必要时在 /etc/hosts 配置解析。
    • 防火墙:放通 6443(API Server)10250(kubelet)8472(Flannel VXLAN)30000–32767(NodePort) 等端口,或临时关闭防火墙用于测试。

二 安装容器运行时 containerd

  • 安装与启用:
    sudo apt update &
        &
         sudo apt install -y containerd
    sudo systemctl enable --now containerd
    
  • 配置 SystemdCgroup(与 kubelet 一致):
    sudo mkdir -p /etc/containerd
    containerd config default | sudo tee /etc/containerd/config.toml
    sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml
    sudo systemctl restart containerd
    
  • 说明:本指南采用 containerd 作为运行时(更符合当前主流实践);如需使用 Docker,可改为安装 docker-ce 并配置其 cri-dockerd 适配器。

三 安装 kubeadm kubelet kubectl

  • 添加 Kubernetes APT 源并安装组件:
    sudo apt update &
        &
         sudo apt install -y apt-transport-https curl gnupg
    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
    sudo apt update
    sudo apt install -y kubelet kubeadm kubectl
    sudo apt-mark hold kubelet kubeadm kubectl
    sudo systemctl enable --now kubelet
    
  • 提示:保持 kubelet 为最新稳定版,避免与控制平面版本偏差过大。

四 初始化控制平面与网络

  • 初始化(示例网段可按需调整):
    sudo kubeadm init \
      --pod-network-cidr=10.244.0.0/16 \
      --service-cidr=10.96.0.0/12 \
      --apiserver-advertise-address=<
        MASTER_IP>
        
    
  • 配置 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,与上面 Pod CIDR 匹配):
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  • 可选镜像加速(国内环境):
    sudo kubeadm init \
      --image-repository registry.aliyuncs.com/google_containers \
      --pod-network-cidr=10.244.0.0/16 \
      --apiserver-advertise-address=<
        MASTER_IP>
        
    
  • 验证:
    kubectl cluster-info
    kubectl get nodes
    kubectl get pods -n kube-system
    

五 加入工作节点与验证

  • 在 Worker 节点执行 kubeadm init 完成后输出的 kubeadm join 命令,例如:
    sudo kubeadm join <
        MASTER_IP>
        :6443 \
      --token <
        TOKEN>
         \
      --discovery-token-ca-cert-hash sha256:<
        HASH>
        
    
  • 在 Master 上验证:
    kubectl get nodes
    kubectl get pods -n kube-system
    
  • 部署测试应用(验证网络与服务发布):
    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
    # 访问 http://<
        任一节点IP>
        :<
        NodePort>
        
    

六 常见问题与优化

  • 节点 NotReady:多因 CNI 未就绪kubelet 未启动;检查 kubectl get pods -n kube-system、确认 Flannel/其他 CNI 已 Running,查看 journalctl -u kubelet
  • Swap 未关闭:Kubelet 要求关闭 Swap,执行 sudo swapoff -a 并注释 /etc/fstab 中的 Swap 行。
  • 镜像拉取慢/失败:使用国内镜像仓库或在 kubeadm init 中指定 --image-repository
  • 端口未放通:确保 6443/10250/8472/30000–32767 等端口在防火墙放行。
  • 时间不同步:部署 NTP/chrony 并校准时间。
  • 自动化部署:可使用 Ansible 编排上述步骤,或使用 KubeKey 一键部署(适合快速交付与测试)。

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


若转载请注明出处: Debian与Kubernetes部署指南
本文地址: https://pptw.com/jishu/758252.html
Debian环境下Kubernetes怎么部署 Kubernetes部署在Debian上的方法

游客 回复需填写必要信息