首页主机资讯怎样在Debian上运行K8s

怎样在Debian上运行K8s

时间2026-01-22 08:20:03发布访客分类主机资讯浏览238
导读:在 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
      
  • 安装 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
      
  • 验证
    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
怎样解决Debian上K8s部署问题 Debian下K8s部署步骤是什么

游客 回复需填写必要信息