CKAD-CN 考试知识点分享(19) 创建 Deployment 并指定环境变量
⚠️ 重要提示:
在考试中,必须连接到正确的节点主机。连接错误将导致所有操作无效,最终可能得分为零。[candidate@base] $ ssh ckad00014
任务要求
在命名空间 ckad00014
中完成以下操作:
- 创建名为
api
的 Deployment; - 使用镜像
nginx:1.16
; - 部署 6 个副本;
- 添加环境变量
NGINX_PORT=8000
; - 容器暴露端口
80
;
步骤一:生成 Deployment YAML 模板
我们可以使用 kubectl create deployment
结合 --dry-run=client -o yaml
来生成 Deployment 的 YAML 模板,避免手动编写出错。
kubectl -n ckad00014 create deployment api \--image=nginx:1.16 \--replicas=6 \--port=80 \--dry-run=client \-o yaml > api.yaml
步骤二:编辑 YAML 文件,添加环境变量
使用编辑器(如 vim
)打开 api.yaml
,在容器配置中添加环境变量 NGINX_PORT=8000
。
vim api.yaml
修改后的 api.yaml
内容如下:
kind: Deployment
apiVersion: apps/v1
metadata:name: apinamespace: ckad00014labels:app: api
spec:replicas: 6selector:matchLabels:app: apitemplate:metadata:labels:app: apispec:containers:- name: nginximage: nginx:1.16ports:- containerPort: 80env:- name: NGINX_PORTvalue: "8000" # 注意:值使用双引号以确保为字符串resources: {}
✅ 说明:
env
字段用于注入环境变量;- 值
"8000"
使用双引号,确保 Kubernetes 将其识别为字符串而非整数(尽管在大多数情况下类型自动推断也可工作,但明确指定更安全);containerPort: 80
表示容器监听 80 端口。
步骤三:应用配置创建 Deployment
kubectl apply -f api.yaml
验证 Deployment 是否创建成功:
kubectl -n ckad00014 get deployment api
输出应显示 6 个副本均就绪:
NAME READY UP-TO-DATE AVAILABLE AGE
api 6/6 6 6 2m
步骤四:验证 Pod连通性
查看 Pod 状态和 IP 地址:
kubectl -n ckad00014 get pod -owide
输出示例:
NAME READY STATUS RESTARTS AGE IP NODE
api-766b96587f-5qhp8 1/1 Running 0 7m31s 10.0.2.117 192-168-100-1
api-766b96587f-gtkrl 1/1 Running 0 7m31s 10.0.2.52 192-168-100-1
...
测试访问任意 Pod 的 IP(需在集群节点内执行):
curl 10.0.2.117
预期输出为 Nginx 默认欢迎页面:
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
...
这表明服务已正常运行并可通过网络访问。
总结
本任务涵盖了 CKAD 考试中的多个核心知识点:
- 使用
--dry-run=client -o yaml
快速生成资源配置; - 在 Deployment 中添加环境变量;
- 正确配置容器端口;
- 在指定命名空间中操作资源。
📌 考试技巧:
- 善用
--dry-run
和kubectl run --image --dry-run=client -o yaml
快速生成模板;- 注意命名空间(namespace)是否正确;
- 环境变量值建议加双引号避免类型问题;
- 可通过
curl
快速验证。
掌握这些技能,将帮助你在 CKAD 考试中高效、准确地完成部署类任务。
📌 参考链接
- Kubernetes 官方文档:为容器定义环境变量