kubectl run - 创建pod
kubectl run 是 Kubernetes 命令行工具中用于快速创建并运行单个 Pod 的命令。它简化了临时 Pod 的启动过程,适合快速测试和调试场景。
基本语法
bash
kubectl run <POD_NAME> --image=<IMAGE> [其他参数]<POD_NAME>:要创建的 Pod 名称(需唯一)。--image:必填,指定容器镜像(如nginx:1.23)。
核心参数详解
容器配置
| 参数 | 说明 | 示例 |
|---|---|---|
--image | 指定容器镜像 | --image=nginx:1.23 |
--port | 暴露容器端口 | --port=80 |
--env | 设置环境变量 | --env=KEY=VALUE |
--command | 覆盖容器的默认启动命令 | --command -- sleep 3600 |
--args | 传递命令参数 | --args="--verbose" |
Pod 控制
| 参数 | 说明 | 示例 |
|---|---|---|
--restart | 重启策略: Never(不重启) OnFailure(失败时重启) Always(默认) | --restart=Never |
--rm | 退出后自动删除 Pod(需与 -it 共用) | --rm -it --image=busybox |
--dry-run | 模拟运行(不实际创建) | --dry-run=client -o yaml |
交互与调试
| 参数 | 说明 | 示例 |
|---|---|---|
-it | 交互式终端(需配合 --command) | -it --image=alpine -- sh |
--overrides | 动态覆盖 Pod 配置(JSON 格式) | --overrides='{"spec": {"nodeSelector": {"env": "dev"}}}' |
资源限制
| 参数 | 说明 | 示例 |
|---|---|---|
--requests | 设置资源请求 | --requests=cpu=100m,memory=256Mi |
--limits | 设置资源上限 | --limits=cpu=1,memory=1Gi |
经典案例
快速启动一个 Pod
bash
kubectl run nginx --image=nginx:1.23 --port=80- 创建一个名为
nginx的 Pod,使用 Nginx 镜像,暴露 80 端口。
启动临时调试 Pod
bash
kubectl run debug-tool -it --image=alpine --rm -- sh- 启动一个临时 Alpine 容器,进入交互式 Shell,退出后自动删除。
覆盖默认命令
bash
kubectl run busybox --image=busybox --command -- sleep 3600- 运行 BusyBox 容器,覆盖默认命令为
sleep 3600。
生成 YAML 模板
bash
kubectl run test --image=nginx --dry-run=client -o yaml > pod.yaml- 生成 Pod 的 YAML 模板并保存到文件,不实际创建。
带资源限制的 Pod
bash
kubectl run stress --image=stress-ng --limits=cpu=1,memory=512Mi --requests=cpu=0.5,memory=256Mi- 启动一个压力测试容器,限制 CPU 和内存使用。
