Linux海外云服务器K8s容器化部署入门指南
文章分类:更新公告 /
创建时间:2025-08-25
在Linux海外云服务器上通过Kubernetes(K8s,容器编排领域的事实标准)实现容器化部署,是企业高效管理应用的关键技能。本文从环境准备到应用发布,详解全流程实践步骤,帮助新手快速掌握核心操作。
新手常见困惑:K8s部署从哪下手?
初次接触K8s的用户常遇到这样的问题:如何在Linux海外云服务器上搭建集群?Docker与K8s的依赖关系是什么?从节点初始化到应用上线,每一步需要注意哪些细节?这些问题的核心在于理清环境要求与操作逻辑。
前置条件:环境与资源准备
K8s作为自动化管理容器化应用的开源系统,对Linux海外云服务器有明确要求:
- 至少1台主节点(Master)+1台工作节点(Worker),推荐Ubuntu 20.04或CentOS 7系统;
- 节点间网络需互通(建议使用同一VPC下的海外云服务器,减少网络延迟);
- 主节点资源不低于2核4G,工作节点不低于2核2G(根据业务规模可弹性扩展);
- 所有节点需预先安装Docker(K8s默认容器运行时)。
以Ubuntu系统为例,安装Docker的命令如下:
sudo apt-get update && sudo apt-get install -y docker.io
sudo systemctl enable docker && sudo systemctl start docker
实战步骤:从集群搭建到应用部署
Step1 安装K8s核心组件
在所有节点执行以下命令,安装kubeadm(集群初始化工具)、kubelet(节点代理)、kubectl(命令行工具):
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 # 锁定版本防止自动更新
Step2 初始化主节点集群
在主节点执行初始化命令(需提前规划Pod网络CIDR,避免与现有网络冲突):
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
Step3 安装网络插件(Flannel)
K8s集群需要网络插件实现Pod跨节点通信,这里选择Flannel(轻量且兼容性强):
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Step4 加入工作节点
主节点初始化成功后会生成加入命令(类似下方示例),在工作节点执行该命令:
sudo kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef
Step5 部署Nginx应用验证
创建`nginx-deployment.yaml`文件,定义Deployment(应用副本)和Service(服务暴露):
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
selector:
matchLabels:
app: nginx
replicas: 2 # 部署2个Pod副本
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.23 # 使用较新的稳定版本
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80 # 服务对外端口
targetPort: 80 # Pod内部端口
type: LoadBalancer # 通过负载均衡暴露服务(需云厂商支持)
执行部署命令并验证:
kubectl apply -f nginx-deployment.yaml
kubectl get pods -o wide # 查看Pod运行状态及所在节点
kubectl get service # 查看服务暴露的外部IP
通过以上步骤,你已在Linux海外云服务器上完成K8s集群搭建与应用部署。实际生产环境中,可根据业务需求调整副本数、存储配置及网络策略,充分发挥K8s自动化运维的优势。