一、案例1:单Pod部署(Nginx应用)
目标:用命令行创建并验证Pod
-
创建Pod
bashkubectl run nginx-pod --image=nginx:1.14 --port=80注:镜像选择参考智优达Docker容器化部署指南 ,优先使用指定版本标签(如
1.14)而非latest,避免版本波动。 -
查看Pod状态
bashkubectl get pods # 输出示例:NAME READY STATUS RESTARTS AGE # nginx-pod 1/1 Running 0 30s -
集群内访问
bash# 获取Pod IP kubectl get pods -o wide | grep nginx-pod # 访问Pod(集群节点内执行) curl 10.244.1.5:80 # 替换为实际Pod IP
---
二、案例2:多副本管理(Deployment)
目标:用Deployment实现Pod自愈与扩缩容
-
创建Deployment
bashkubectl create deployment nginx-deploy --image=nginx:1.14 --replicas=3--replicas=3:指定3个Pod副本,Deployment会自动维护数量(删除后自动重建)。 -
查看资源状态
bashkubectl get deployments # 查看Deployment kubectl get pods # 输出3个Pod,名称格式:nginx-deploy-xxxx-yyyy -
验证自愈能力
bash# 删除一个Pod kubectl delete pod nginx-deploy-xxxx-yyyy # 几秒后重新查看,Pod总数仍为3(Deployment自动重建) kubectl get pods
---
三、案例3:服务暴露(NodePort Service)
目标:通过Service让外部访问Pod
-
创建NodePort Service
bashkubectl expose deployment nginx-deploy --type=NodePort --port=80 --target-port=80 --name=nginx-svc--type=NodePort:在集群节点开放端口(范围30000-32767);--port=80:Service集群内端口;--target-port=80:Pod容器端口。
-
查看Service信息
bashkubectl get svc nginx-svc # 输出示例:NAME TYPE CLUSTER-IP PORT(S) AGE # nginx-svc NodePort 10.96.xx.xx 80:30080/TCP 1m30080为节点暴露端口,外部通过节点IP:30080访问。 -
外部访问验证
浏览器访问
http://节点IP:30080(如http://192.168.1.100:30080),能看到Nginx默认页面即成功。
---
核心概念速查表
| 资源 | 作用 | 关键命令 |
|---|---|---|
| Pod | 最小部署单元(封装容器) | kubectl run / kubectl get pods |
| Deployment | 管理Pod副本(自愈/扩缩容) | kubectl create deployment / kubectl scale |
| Service | 暴露Pod网络访问(固定入口) | kubectl expose / kubectl get svc |