Kubernetes在CentOS上的容器化应用案例
场景:将Node.js HTTP服务器应用容器化,并通过Kubernetes实现自动扩容(HPA)和高可用(多副本)。
关键步骤:
server.js监听8080端口)。Dockerfile,使用官方node:14镜像作为基础,设置工作目录、复制依赖文件(package*.json)、安装依赖(npm install)、复制应用代码,暴露8080端口并定义启动命令(node server.js);通过docker build -t my-node-app .构建镜像。deployment.yaml定义Deployment(3个副本、匹配app: nodejs-app标签、指定容器镜像和端口);创建hpa.yaml定义Horizontal Pod Autoscaler(最小3副本、最大10副本、CPU利用率目标50%);通过kubectl apply -f命令部署应用及HPA。场景:部署静态内容Nginx应用,通过Kubernetes实现集群内(ClusterIP)和集群外(NodePort)访问。
关键步骤:
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访问。场景:在Kubernetes集群中部署CentOS容器,用于测试或学习CentOS环境。
关键步骤:
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进入容器,执行ls、pwd等命令验证CentOS环境。