温馨提示×

k8s在centos上的容器化应用案例

小樊
53
2025-10-05 06:36:29
栏目: 智能运维

Kubernetes在CentOS上的容器化应用案例

1. Node.js应用容器化部署案例

场景:将Node.js HTTP服务器应用容器化,并通过Kubernetes实现自动扩容(HPA)和高可用(多副本)。
关键步骤

  • 准备阶段:在CentOS上安装Docker,创建简单的Node.js应用(如server.js监听8080端口)。
  • 容器化配置:编写Dockerfile,使用官方node:14镜像作为基础,设置工作目录、复制依赖文件(package*.json)、安装依赖(npm install)、复制应用代码,暴露8080端口并定义启动命令(node server.js);通过docker build -t my-node-app .构建镜像。
  • Kubernetes部署:创建deployment.yaml定义Deployment(3个副本、匹配app: nodejs-app标签、指定容器镜像和端口);创建hpa.yaml定义Horizontal Pod Autoscaler(最小3副本、最大10副本、CPU利用率目标50%);通过kubectl apply -f命令部署应用及HPA。

2. Nginx Web应用容器化部署案例

场景:部署静态内容Nginx应用,通过Kubernetes实现集群内(ClusterIP)和集群外(NodePort)访问。
关键步骤

  • 环境准备:在CentOS上安装Kubernetes集群(使用kubeadm init初始化Master节点,配置kubectl,安装Flannel网络插件)。
  • 容器化配置:使用官方nginx:latest镜像,编写nginx-deployment.yaml定义Deployment(3个副本、匹配app: nginx标签、指定容器镜像和80端口);编写nginx-service.yaml定义Service(ClusterIP类型、端口映射80→8001,或NodePort类型暴露集群外访问)。
  • 验证部署:通过kubectl apply -f命令部署应用;使用kubectl get pods检查Pod状态(应为Running),kubectl get svc查看Service IP(ClusterIP或NodePort);通过集群内Pod(kubectl exec -it <pod-name> -- /bin/sh)或外部浏览器(访问Node节点IP+NodePort)验证Nginx访问。

3. CentOS基础容器部署案例

场景:在Kubernetes集群中部署CentOS容器,用于测试或学习CentOS环境。
关键步骤

  • 环境准备:在CentOS上安装Kubernetes集群(使用Minikube或kubeadm初始化Master/Node节点)。
  • 容器化配置:编写centos-deployment.yaml定义Deployment(1个副本、匹配app: centos标签、指定容器镜像为centos:latest)。
  • 验证部署:通过kubectl apply -f centos-deployment.yaml创建Deployment;使用kubectl get pods查看Pod状态(应为Running);通过kubectl exec -it <pod-name> -- /bin/bash进入容器,执行lspwd等命令验证CentOS环境。

0