通过分析实操题来学习、巩固cka中的考点。本次的重点是发布应用时为应用注入环境变量。
题目
使用 busybox 最新版本的镜像建立一个 pod, 并运行 sleep 命令,间隔为1小时,并为该pod配置一个环境变量,变量名为:PLANET, 值为: blue
解题思路
核心概念
- run 命令
在 kubernetes 集群中,可以使用run命令直接部署一个pod,但这样的pod是不能通过ReplicaSet进行扩展,更糟糕的是Pod不具有自愈性。生产环境不建议直接用run命令。
- 为Pod指定环境变量
创建 Pod 时,可以为其下的容器设置环境变量。通过配置文件的 env 或者 envFrom 字段来设置环境变量。
相关命令
- kubectl run 命令
通过 kubectl run –help 可以获得如下的帮助信息:
1 | Create and run a particular image in a pod. |
解题步骤
方法1
直接执行以下命令
1 | kubectl run envvar --image=busybox:latest --env="PLANET=blue" --command -- sleep "3600" |
注意: “–command” 一定要放在最后,否则后面的参数有可能会被当成命令的参数来处理,比如这样写: –command – sleep “3600” –env=”PLANET=blue” 的结果就是错误的
方法2
首先使用 –dry-run 选项生成一个指令文件:envvar.yml
1 | kubectl run envvar --image=busybox:latest --dry-run=client -o yaml > envvar.yml |
编辑 envvar.yml 文件, 以运行 sleep 及加入环境变量
1 | apiVersion: v1 |
然后运行
运行
1 | kubectl apply -f envvar.yml |
验证结果
1 | kubectl exec envvar -- env | grep PLANET |