题目
如何创建一个运行Nginx的Kubernetes Pod?
信息
- 类型:问答
- 难度:⭐
考点
Pod基本概念,YAML文件结构,kubectl基础命令
快速回答
创建一个运行Nginx的Pod需要以下步骤:
- 编写YAML定义文件,包含apiVersion、kind、metadata和spec字段
- 在spec.containers中定义容器名称和镜像(nginx:latest)
- 使用
kubectl apply -f命令部署 - 通过
kubectl get pods验证状态
1. 原理说明
Pod是Kubernetes的最小调度单元,包含一个或多个共享网络/存储的容器。每个Pod有独立IP地址,容器通过localhost互相访问。
2. 代码示例
# nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
app: nginx
spec:
containers:
- name: nginx-container
image: nginx:latest
ports:
- containerPort: 80部署命令:kubectl apply -f nginx-pod.yaml
3. 关键字段解析
- apiVersion: 核心API版本(v1)
- kind: 资源类型(Pod)
- metadata: 名称和标签(用于识别)
- spec.containers: 容器定义(镜像/端口等)
4. 最佳实践
- 始终指定容器镜像版本(避免使用latest)
- 添加资源限制(resources.limits/requests)
- 使用标签(labels)组织资源
- 通过Service暴露端口(非直接访问Pod)
5. 常见错误
- 缩进错误(YAML必须使用空格)
- 忘记containerPort声明(不影响服务暴露)
- 直接使用
kubectl run(已弃用,应使用YAML) - 未检查Pod状态(
kubectl describe pod nginx-pod排错)
6. 扩展知识
- Pod生命周期: Pending → Running → Succeeded/Failed
- 探针(Probes): 添加livenessProbe/readinessProbe确保健康
- 多容器Pod: 在spec.containers数组添加多个容器
- 部署演进: 生产环境应使用Deployment管理Pod