美VPS部署K8s集群实战指南
在云计算与容器化技术快速发展的当下,Kubernetes(K8s)已成为容器编排管理的行业标杆。不少开发者和企业看中美国VPS的网络优势,希望在其上搭建K8s集群。今天就为大家详细分享一个实战案例。
前期准备工作
首先要准备一台配置达标的美VPS。K8s对硬件有基础要求,建议选择至少2GB内存、2核CPU的实例,操作系统推荐Ubuntu或CentOS等主流Linux发行版。除了VPS本身,还需预先安装Docker作为容器运行时,并准备好网络工具。
安装Docker容器运行时
不同Linux系统的Docker安装命令略有差异。以Ubuntu系统为例,执行以下命令:
sudo apt-get update
sudo apt-get install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
若使用CentOS系统,则需通过Docker官方源安装:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io -y
sudo systemctl start docker
sudo systemctl enable docker
安装K8s核心组件
搭建K8s集群需要安装kubeadm(集群管理工具)、kubelet(节点代理)和kubectl(命令行客户端)。在Ubuntu或CentOS系统中,可通过以下步骤添加K8s软件源并安装:
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
集群初始化与配置
在主节点执行初始化命令,这里以Flannel网络插件所需的Pod网络地址段为例:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
初始化完成后,系统会输出工作节点加入集群的命令(包含token和CA证书哈希值),务必妥善保存。
接下来配置kubectl,使其能与集群交互:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
安装网络插件
K8s集群需要网络插件实现Pod间通信,这里选择Flannel作为示例:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
工作节点加入集群
在准备好的工作节点上,执行初始化时保存的加入命令(需替换实际参数):
sudo kubeadm join : --token --discovery-token-ca-cert-hash
应用部署实践
集群搭建完成后,即可部署应用。以Nginx服务为例,首先创建Deployment(部署控制器):
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.14.2
ports:
- containerPort: 80
通过以下命令创建Deployment:
kubectl apply -f nginx-deployment.yaml
为暴露应用访问入口,创建Service(服务):
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
执行命令完成Service创建:
kubectl apply -f nginx-service.yaml
通过以上步骤,我们成功在美VPS上搭建了K8s集群并部署了Nginx应用。实际使用中可根据业务需求调整集群规模、网络配置或应用副本数,充分发挥K8s的自动化管理优势。希望这份实战指南能为你在美VPS上开展容器化部署提供有效参考。
上一篇: 香港服务器运维常见问题FAQ解答
下一篇: Linux VPS服务器面试题解析与解答