Kubernetes(k8s)集群如何进行多节点安装?

问题浏览数Icon
16
问题创建时间Icon
2025-05-06 16:41:00
回答 | 共 3 个
作者头像
vmstar01
  1. 环境准备:

    • 所有节点配置静态IP,禁用swap,确保主机名唯一
    • 配置/etc/hosts域名解析,同步系统时间
    • 开放6443、2379-2380、10250-10255等必要端口
  2. 安装容器运行时:

    apt-get install -y containerd
    systemctl enable --now containerd
  3. 安装kubeadm/kubelet/kubectl:

    apt-get install -y apt-transport-https ca-certificates curl
    curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/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:/v1.28/deb/ /' > /etc/apt/sources.list.d/kubernetes.list
    apt-get update && apt-get install -y kubelet kubeadm kubectl
  4. 初始化Master节点:

    kubeadm init --apiserver-advertise-address=MASTER_IP --pod-network-cidr=10.244.0.0/16
    mkdir -p $HOME/.kube
    cp /etc/kubernetes/admin.conf $HOME/.kube/config
  5. 加入Worker节点: 在Worker节点执行kubeadm init输出的join命令,格式如:

    kubeadm join MASTER_IP:6443 --token xxx --discovery-token-ca-cert-hash sha256:xxx
  6. 安装网络插件:

    kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.22.0/Documentation/kube-flannel.yml
  7. 验证集群状态:

    kubectl get nodes -o wide
    kubectl get pods -n kube-system
作者头像
firestone77

Kubernetes多节点安装的核心步骤包括环境准备、组件部署及集群配置。建议按以下流程实施:

  1. 节点规划

    • 至少1个Master节点(推荐3节点实现HA)
    • 多个Worker节点(按业务需求扩展)
    • 所有节点需满足: • 2GB+内存/2核CPU+ • 禁用swap • 唯一主机名与静态IP • 时间同步(NTP)
  2. 容器运行时安装

    • 所有节点安装Docker(20.10+)或containerd
      apt-get install docker.io && systemctl enable docker
  3. Kubernetes组件安装

    • 所有节点安装kubeadm/kubelet/kubectl
      apt-get install -y kubeadm=1.28.0-00 kubelet=1.28.0-00 kubectl=1.28.0-00
      systemctl enable kubelet
  4. Master节点初始化

    kubeadm init --apiserver-advertise-address=MASTER_IP \
    --pod-network-cidr=10.244.0.0/16
    • 记录生成的join命令
    • 配置kubectl环境
      mkdir -p $HOME/.kube
      cp /etc/kubernetes/admin.conf $HOME/.kube/config
  5. 网络插件部署

    • 推荐Calico/Flannel
      kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  6. Worker节点加入

    • 执行初始化时生成的kubeadm join命令
      kubeadm join MASTER_IP:6443 --token xxxx --discovery-token-ca-cert-hash sha256:xxxx
  7. 集群验证

    kubectl get nodes -o wide
    kubectl get pods -A

关键注意事项

  • 确保所有节点间网络互通(API Server端口6443等)
  • 不同Kubernetes版本需对应匹配组件版本
  • 生产环境建议通过RKE/kubeadm HA方案部署多Master
作者头像
vmblueberry
  1. 环境准备(所有节点)

    • 禁用Swap:swapoff -a并注释/etc/fstab中的swap条目
    • 配置主机名解析:确保/etc/hosts包含所有节点IP与主机名映射
    • 加载内核模块:modprobe overlay br_netfilter,并配置sysctl参数
    • 安装容器运行时(如containerd):通过包管理器安装并配置cgroup驱动为systemd
    • 安装kubeadm/kubelet/kubectl:添加K8s仓库,安装指定版本并设置开机启动
  2. 初始化Master节点

    • 执行kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=<MASTER_IP>
    • 配置kubectl:mkdir -p $HOME/.kube并复制admin.conf到~/.kube/config
    • 记录加入命令:保存输出的kubeadm join命令(含token和证书哈希)
  3. 部署网络插件

    • 安装Calico:kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
  4. 添加Worker节点

    • 在Worker节点执行保存的kubeadm join命令
    • 验证节点状态:在Master执行kubectl get nodes,等待所有节点状态变为Ready
  5. 验证集群功能

    • 部署测试应用:kubectl create deployment nginx --image=nginx
    • 检查Pod调度:确认Pod可跨节点正常运行