香港服务器购买后如何快速部署 Kubernetes 集群

购买香港服务器后,快速部署 Kubernetes 集群需要按照以下步骤完成环境准备、安装 Kubernetes 组件以及配置集群。


1. 前期准备

1.1 确认环境

确保您已经购买了符合 Kubernetes 运行要求的香港服务器:

  • 操作系统:Ubuntu 20.04+/CentOS 7+/Debian 10+。
  • CPU:每台节点至少 2 核。
  • 内存:每台节点至少 2GB(建议 4GB+)。
  • 存储:至少 20GB 可用磁盘空间。
  • 网络:服务器之间可以互相通信(内网或专用网络)。

1.2 规划 Kubernetes 集群

  • 主节点(Control Plane):运行 Kubernetes 控制组件(如 API Server、Scheduler)。
  • 工作节点(Worker Nodes):运行容器化的应用程序。
  • 节点角色规划
    • 1 台主节点 + 2 台工作节点(最小高可用方案:3 台服务器)。

1.3 配置香港服务器的基础环境

  1. 更新系统软件包

    bash
    sudo apt update && sudo apt upgrade -y  # Ubuntu/Debian
    sudo yum update -y                     # CentOS
    
  2. 设置主机名

    • 主节点:
      bash
      sudo hostnamectl set-hostname master-node
      
    • 工作节点:
      bash
      sudo hostnamectl set-hostname worker-node1  # 替换为具体节点名
      
  3. 配置 /etc/hosts
    在所有节点的 /etc/hosts 中添加其他节点的 IP 和主机名:

    plaintext
    192.168.1.10 master-node
    192.168.1.11 worker-node1
    192.168.1.12 worker-node2
    
  4. 关闭防火墙和交换分区

    • 关闭防火墙(测试环境):
      bash
      sudo systemctl stop ufw
      sudo systemctl disable ufw
      
    • 禁用交换分区:
      bash
      sudo swapoff -a
      sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
      
  5. 同步时间

    • 安装 ntpchrony,确保所有节点的时间同步:
      bash
      sudo apt install chrony -y  # Ubuntu/Debian
      sudo yum install chrony -y  # CentOS
      sudo systemctl enable chronyd
      sudo systemctl start chronyd
      

2. 安装 Kubernetes 和容器运行时

2.1 安装 Docker(容器运行时)

  1. 卸载旧版本

    bash
    sudo apt remove docker docker-engine docker.io containerd runc -y
    
  2. 安装新版本

    bash
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
    echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    sudo apt update
    sudo apt install docker-ce docker-ce-cli containerd.io -y
    
  3. 启动并配置 Docker

    bash
    sudo systemctl enable docker
    sudo systemctl start docker
    
  4. 配置 Docker 使用 systemd
    编辑 /etc/docker/daemon.json

    json
    {
      "exec-opts": ["native.cgroupdriver=systemd"],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2"
    }
    

    重启 Docker:

    bash
    sudo systemctl restart docker
    

2.2 安装 kubeadm、kubelet 和 kubectl

  1. 添加 Kubernetes 的软件源

    bash
    curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
    echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
    sudo apt update
    
  2. 安装 Kubernetes 组件

    bash
    sudo apt install kubeadm kubelet kubectl -y
    
  3. 禁止自动更新

    bash
    sudo apt-mark hold kubeadm kubelet kubectl
    
  4. 启动并启用 kubelet

    bash
    sudo systemctl enable kubelet
    sudo systemctl start kubelet
    

3. 初始化 Kubernetes 集群

3.1 初始化主节点

在主节点上运行以下命令初始化集群:

bash
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
  • --pod-network-cidr:为 Pod 分配的网络地址范围。

初始化成功后,输出将包含加入工作节点的 kubeadm join 命令,例如:

plaintext
kubeadm join 192.168.1.10:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

保存该命令,稍后在工作节点中使用。

3.2 配置 kubectl

在主节点上,为当前用户配置 kubectl

bash
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

验证集群状态:

bash
kubectl get nodes

3.3 添加工作节点

在每个工作节点上运行之前保存的 kubeadm join 命令,例如:

bash
sudo kubeadm join 192.168.1.10:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

成功后,工作节点会加入集群。


4. 配置网络插件

Kubernetes 需要网络插件来管理 Pod 通信。以下以 Calico 为例:

  1. 在主节点上安装 Calico:

    bash
    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    
  2. 验证网络插件状态:

    bash
    kubectl get pods -n kube-system
    

    确保所有网络相关的 Pod 都处于 Running 状态。


5. 验证 Kubernetes 集群

  1. 查看集群节点状态:

    bash
    kubectl get nodes
    

    所有节点应显示为 Ready

  2. 部署测试 Pod:

    bash
    kubectl run nginx --image=nginx --port=80
    kubectl expose pod nginx --type=NodePort --port=80
    

    检查服务是否正常运行:

    bash
    kubectl get pods
    kubectl get svc
    
  3. 使用浏览器或 curl 测试服务:

    bash
    curl http://<NodeIP>:<NodePort>
    

6. 优化与建议

6.1 启用自动高可用

  • 使用多个主节点配置高可用(HA)集群,避免单点故障。
  • 配置负载均衡器将流量分发到多个主节点。

6.2 定期更新

  • 定期检查并更新 Kubernetes 版本:
    bash
    sudo apt update && sudo apt upgrade -y
    

6.3 监控与日志

  • 部署 Kubernetes 监控工具(如 Prometheus + Grafana)。
  • 查看集群日志:
    bash
    kubectl logs <pod_name>
    

6.4 数据持久化

  • 为需要存储的应用配置持久卷(Persistent Volume)。

 

通过以上步骤,您可以快速部署一个高效、稳定的 Kubernetes 集群,并且可以根据业务需要进一步扩展和优化集群。

超过 50,000 人的信任 网硕互联期待你加入我们的会员。