
香港服务器租用后如何部署 Kubernetes?
2024-12-07 15:54
阅读量:399
在租用香港服务器后,部署 Kubernetes (K8s) 是一个复杂但强大的过程,用于实现容器编排和管理。
一、环境准备
在部署 Kubernetes 集群之前,需要确保服务器满足以下条件:
1. 基础硬件和系统要求
- 操作系统:
- 推荐使用 64 位的 Linux 发行版(如 Ubuntu 20.04/22.04 或 CentOS 7/8)。
- CPU 和内存:
- 控制平面节点(Master):至少 2 核 CPU,2 GB 内存。
- 工作节点(Worker):至少 1 核 CPU,1 GB 内存。
- 磁盘空间:
- 每个节点至少需要 10 GB 的可用空间。
2. 网络要求
- 开放必要端口:
- 控制平面节点需要开放以下端口:
- TCP/6443:Kubernetes API 服务器。
- TCP/2379-2380:etcd 服务。
- TCP/10250:Kubelet API。
- TCP/10259:kube-scheduler。
- TCP/10257:kube-controller-manager。
- 工作节点需要开放以下端口:
- TCP/10250:Kubelet API。
- TCP/30000-32767:NodePort 服务的默认范围。
- 控制平面节点需要开放以下端口:
- 固定 IP 地址:
- 需要为每个节点分配固定的内部 IP 地址(或静态公网 IP)。
3. 软件要求
在每台服务器上安装以下组件:
- Container Runtime:
- 推荐使用 containerd 或 Docker。
- Kubernetes CLI 工具:
kubeadm
:用于初始化和配置 Kubernetes 集群。kubectl
:用于管理 Kubernetes 集群。kubelet
:在每个节点上运行的主要 Kubernetes 组件。
二、部署 Kubernetes 集群
以下步骤用于部署一个基本的 Kubernetes 集群,包括一个控制平面节点和多个工作节点。
1. 设置主机名并更新系统
在每台节点服务器上:
bash
# 设置主机名(根据节点类型设置不同的主机名)
sudo hostnamectl set-hostname k8s-master # 控制平面节点
sudo hostnamectl set-hostname k8s-worker1 # 工作节点
# 更新系统包
sudo apt update && sudo apt upgrade -y
2. 禁用交换分区
Kubernetes 要求交换分区被禁用,否则会导致 kubelet 报错。
bash
sudo swapoff -a # 临时禁用交换分区
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab # 永久禁用交换分区
3. 配置网络
- 修改
iptables
设置,确保 Kubernetes 能正确处理网络流量:
bash
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
sudo modprobe br_netfilter
sudo sysctl --system
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
4. 安装 Docker 或 containerd
安装 Docker
- 安装 Docker:
bash
# 安装必要的依赖
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
# 添加 Docker 官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# 添加 Docker 的 apt 仓库
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable"
# 安装 Docker
sudo apt update && sudo apt install -y docker-ce docker-ce-cli containerd.io
- 配置 Docker:
bash
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker
sudo systemctl enable docker
5. 安装 Kubernetes 组件
在所有节点(控制平面节点和工作节点)上安装以下 Kubernetes 组件:
- 添加 Kubernetes 的 apt 仓库:
bash
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt update
- 安装 kubeadm、kubectl 和 kubelet:
bash
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl # 防止自动更新
6. 初始化控制平面节点
在控制平面节点(k8s-master
)上执行以下操作:
- 初始化集群:
bash
sudo kubeadm init --pod-network-cidr=192.168.0.0/16
- 配置
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
- 记录加入集群的命令:
安装完成后,kubeadm init
会给出一个kubeadm join
命令,类似如下:
bash
kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
将此命令保存下来,用于稍后将工作节点加入集群。
7. 配置网络插件
Kubernetes 需要一个网络插件来管理 Pod 的网络。这里以 Calico 为例:
- 安装 Calico:
bash
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- 验证网络插件是否正常运行:
bash
kubectl get pods --all-namespaces
8. 加入工作节点
在每个工作节点(如 k8s-worker1
, k8s-worker2
)上执行以下命令:
- 使用控制平面节点生成的
kubeadm join
命令加入集群:
bash
sudo kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
- 验证工作节点是否成功加入集群:
在控制平面节点上运行:
bash
kubectl get nodes
9. 测试 Kubernetes 集群
- 部署一个测试应用:
bash
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
- 获取服务的访问地址:
bash
kubectl get svc
将输出的 NodePort
端口与服务器 IP 结合在浏览器中访问,验证是否可以正常显示 Nginx 默认页面。
三、注意事项
-
香港网络延迟:
- 如果需要部署跨境服务,例如访问中国大陆用户,可以优化网络(如使用 CDN 或负载均衡)。
- 确保集群的 API 服务器和节点之间的网络延迟较低。
-
安全加固:
- 修改默认的 kube-apiserver 配置,限制 API 访问来源。
- 使用 RBAC(基于角色的访问控制)管理权限。
- 定期更新 Kubernetes 和容器运行时的版本。
-
备份与监控:
- 使用工具(如 Velero)定期备份 Kubernetes 集群资源。
- 部署监控系统(如 Prometheus + Grafana)监控集群运行状态。
通过以上步骤,您可以在香港服务器上成功部署 Kubernetes 集群,并利用其强大的容器编排能力来管理和运行您的应用程序。
- Tags:
- 香港服务器租用,租用香港服务器,香港服务器
上一篇:香港服务器网站与日本服务器的选择对比
下一篇:香港服务器购买后如何更换 IP 地址?