使用 Kubernetes 部署应用
本教程将引导您通过平台控制台,在已有的 Kubernetes 集群中创建一个 Deployment 并部署应用。
使用 Kubernetes 部署应用
本教程将引导您通过平台控制台,在已有的 Kubernetes 集群中创建一个 Deployment 并部署应用。
前置条件
- 已拥有一个处于运行中状态的 Kubernetes 集群。若尚未创建,请参考相关文档先创建集群。
进入集群面板
-
登录控制台后,在顶部导航栏选择 云 -> Kubernetes。
-
在 Kubernetes 集群列表中,找到您已创建好的集群,点击集群名称进入详情。

-
进入集群面板页面,您将看到集群概览、节点状态、资源用量等信息。

创建 Deployment
Deployment 是 Kubernetes 中用于管理无状态应用的核心资源,它负责维护指定数量的 Pod 副本,并支持滚动更新等发布策略。
进入部署页面
-
在集群面板左侧菜单中点击 部署。
-
点击右上角的 创建 Deployment 按钮。

填写基础信息
在创建页面中,首先配置 Deployment 的基础信息。
-
Deployment 名称:输入一个唯一名称,用于标识该 Deployment。只能包含小写字母、数字和中划线。
-
命名空间:选择刚才创建的
TestNameSpace。参数 说明 示例值 Deployment 名称 资源的唯一标识 nginx-deployment命名空间 所属命名空间 TestNameSpace
配置副本与重启策略
-
副本数:指定该 Deployment 需要维持的 Pod 副本数量。平台会根据此数值自动创建或回收 Pod,确保始终有指定数量的副本在运行。
-
重启策略:定义容器中进程退出时 Pod 的行为。
- Always:无论退出码是什么,始终重启容器(默认值,适合长期运行的服务)。
- OnFailure:仅在进程异常退出(非 0 状态码)时重启(适合批处理任务)。
- Never:不自动重启(适合一次性任务)。
参数 说明 推荐值 副本数 期望的 Pod 副本数量 3重启策略 容器退出时的行为 Always
配置 Selector 标签
Selector 标签用于让 Deployment 识别并管理属于它的 Pod。您需要定义一组键值对,后续创建的 Pod 模板中必须包含相同的标签,Deployment 才能正确关联到这些 Pod。
注意
Selector 标签在创建后不可修改。如需更改,必须删除并重新创建 Deployment。
配置更新策略
更新策略决定了当 Deployment 发生变更时(如镜像版本升级),旧版本 Pod 如何被替换为新版本。
-
滚动更新(Rolling Update):逐步用新 Pod 替换旧 Pod,升级过程中服务不中断。推荐用于生产环境。
- 最大激增(Max Surge):升级过程中允许超出副本数的最大 Pod 数量,可以是具体数值或百分比。例如设置为
25%,若副本数为 4,则最多可同时存在 5 个 Pod(4 旧 + 1 新)。 - 最大不可用(Max Unavailable):升级过程中允许不可用的最大 Pod 数量,可以是具体数值或百分比。例如设置为
25%,若副本数为 4,则最多允许 1 个 Pod 不可用。
- 最大激增(Max Surge):升级过程中允许超出副本数的最大 Pod 数量,可以是具体数值或百分比。例如设置为
-
重新创建(Recreate):先删除所有旧 Pod,再创建新 Pod。升级过程中会出现短暂的服务中断,但资源占用最少。
参数 说明 推荐值 策略类型 滚动更新或重新创建 滚动更新最大激增 升级时允许超出的 Pod 数量/比例 25%最大不可用 升级时允许不可用的 Pod 数量/比例 25%
配置 Deployment 标签
为 Deployment 资源本身添加标签,方便后续通过标签进行筛选或组织资源。标签为键值对形式,例如 app: nginx、env: test。

配置 Pod 模板
Pod 模板定义了 Deployment 所创建 Pod 的规格,包括容器、存储、网络等配置。
注解与节点选择器
-
注解(Annotations):为 Pod 添加非标识性的元数据,通常用于工具或插件读取。例如记录构建版本号、CI/CD 流水线信息等。键值对形式,如
build-version: v1.2.3。 -
节点选择器(Node Selector):通过标签约束 Pod 只能调度到匹配的节点上。例如设置
disktype: ssd,则 Pod 只会被部署到带有disktype=ssd标签的节点。
配置卷挂载(Pod 级别)
在 Pod 级别预先声明卷(Volume),后续可在容器配置中将其挂载到指定路径。支持的卷类型通常包括:
-
临时目录(EmptyDir):Pod 创建时自动创建,Pod 删除时自动清理,适合临时缓存。
-
持久卷声明(PVC):引用已创建的持久化存储,数据可跨 Pod 生命周期保留。
-
配置项(ConfigMap):将配置数据作为文件挂载到容器内。
-
密钥(Secret):将敏感数据(如密码、证书)作为文件挂载。
卷类型 适用场景 EmptyDir 临时文件、缓存 PVC 需要持久化的数据 ConfigMap 配置文件 Secret 敏感信息 
配置容器
容器是 Pod 中实际运行应用进程的单元。一个 Pod 可以包含一个或多个容器,本教程以单容器为例。
基础信息
-
容器名称:输入容器的标识名称,在同一 Pod 内必须唯一。例如
nginx。 -
镜像名称:填写容器镜像地址。支持 Docker Hub 官方镜像(如
nginx:latest)或私有镜像仓库地址(如registry.example.com/myapp:v1.0)。 -
启动命令(Command):覆盖镜像默认的启动命令。若留空,则使用镜像 Dockerfile 中定义的
ENTRYPOINT。 -
启动参数(Args):传递给启动命令的参数。例如命令为
nginx,参数可填-g daemon off;。参数 说明 示例值 容器名称 Pod 内唯一标识 nginx镜像名称 容器镜像地址 nginx:alpine启动命令 覆盖默认入口 (留空使用默认值) 启动参数 传递给命令的参数 -g daemon off;
端口映射
声明容器需要暴露的端口,供集群内其他服务或外部流量访问。
-
名称:端口的标识,方便在其他资源中引用。
-
容器端口:容器进程实际监听的端口。
-
协议:TCP 或 UDP。
参数 说明 示例值 名称 端口标识 http容器端口 进程监听端口 80协议 通信协议 TCP
资源配置
为容器指定 CPU 和内存的请求值(Request)与限制值(Limit),确保 Pod 能够获得足够的资源,同时防止单个容器耗尽节点资源。
-
请求值:Pod 调度时,Kubernetes 会确保节点上有至少这么多资源可用。也是 HPA(自动扩缩容)计算的基础。
-
限制值:容器实际运行时可使用的资源上限。超过 CPU 限制会被节流,超过内存限制会被系统 OOM Kill。
参数 说明 示例值 CPU 请求 最低保证的 CPU 核心数 100m(0.1 核)CPU 限制 最大可使用的 CPU 核心数 500m(0.5 核)内存请求 最低保证的内存 128Mi内存限制 最大可使用的内存 512Mi
配置健康检查
健康检查用于判断容器是否正常运行,以及是否已准备好接收流量。
- 存活探针(Liveness Probe):检测容器是否处于健康状态。若检查失败,Kubernetes 会自动重启容器。适合用于发现死锁或无法恢复的应用状态。
- 就绪探针(Readiness Probe):检测容器是否已准备好接收请求。若检查失败,Pod 会从 Service 的端点列表中移除,不再接收流量。适合用于应用启动耗时较长或依赖外部服务的场景。
两种探针均支持 HTTP 请求、TCP 端口检测、执行命令三种方式。以 HTTP 方式为例,常用参数如下:
| 参数 | 说明 | 推荐值 |
|---|---|---|
| 路径 | HTTP 请求的路径 | /healthz |
| 初始延迟 | 容器启动后等待多久开始探测 | 10 秒 |
| 周期 | 探测间隔 | 10 秒 |
| 超时时间 | 每次探测的最大等待时间 | 5 秒 |
| 失败阈值 | 连续失败多少次才判定为不健康 | 3 次 |
服务账户与镜像拉取密钥
服务账户
服务账户(Service Account)为 Pod 提供一个身份标识,用于与 Kubernetes API Server 或其他外部服务进行身份认证。如果不指定,Pod 将自动使用所在命名空间的 default 服务账户。
-
您可以选择 创建一个新服务账户,或从下拉列表中 选择已有的服务账户。
-
有关服务账户的详细管理,请访问 服务账户管理页面。
参数 说明 示例值 服务账户 Pod 使用的身份标识 default或自定义账户
镜像拉取密钥
镜像拉取密钥(Image Pull Secret)用于拉取私有镜像仓库中的镜像。当您的镜像仓库需要认证时,必须添加对应的 Secret。
-
在此填写用于拉取私有镜像的 Secret 名称列表。
-
如需创建新的 Secret,请前往 密钥管理页面。
参数 说明 镜像拉取密钥 填写用于拉取私有镜像的 Secret 名称
高级配置
本节包含安全上下文、容忍度等高级选项,可根据实际需求进行配置。

Pod 安全上下文
Pod 安全上下文定义了 Pod 级别的运行权限,影响 Pod 内所有容器。
| 参数 | 说明 | 示例值 |
|---|---|---|
| 运行用户(Run As User) | 指定容器内进程运行的 UID | 1000 |
| 运行组(Run As Group) | 指定容器内进程运行所属的 GID | 1000 |
| 文件系统组(FS Group) | 指定挂载卷的所有者 GID,卷内文件会自动修改组权限 | 1000 |
| 以非 root 用户运行 | 强制容器内进程以非 root 用户身份运行,提升安全性 | 勾选 |
- 以非根用户运行:启用后,容器必须以非 root 用户运行。如果镜像默认使用 root 启动,将因权限不足而失败。建议优先选择自带非 root 用户的镜像。
容器安全上下文
容器安全上下文定义了单个容器的运行权限,可以覆盖 Pod 级别的设置。
| 参数 | 说明 | 示例值 |
|---|---|---|
| 运行用户 | 指定该容器内进程运行的 UID | 1000 |
| 运行组 | 指定该容器内进程运行所属的 GID | 1000 |
| 特权模式 | 授予容器对主机设备的完全访问权限(等同于 host 上的 root 权限),生产环境不建议开启 | 关闭 |
| 允许特权提升 | 允许进程获取更多权限(允许 setuid 等系统调用),按需启用 | 关闭 |
| 只读根文件系统 | 以只读方式挂载容器的根文件系统,防止容器修改自身文件 | 勾选 |
| 以非 root 用户运行 | 强制该容器必须以非 root 用户身份启动 | 勾选 |
注意
特权模式和允许特权提升会显著降低容器的安全隔离级别,仅在确实需要直接访问宿主机硬件或特定设备时启用(如网络插件、存储驱动)。
容忍度
容忍度(Tolerations)用于让 Pod 能够调度到带有**污点(Taint)**的节点上。污点会阻止普通 Pod 调度到该节点,除非 Pod 带有匹配的容忍度。
典型的场景是允许 Pod 调度到 master 节点(通常 master 节点带有 node-role.kubernetes.io/master:NoSchedule 污点,禁止业务 Pod 运行)。
| 参数 | 说明 | 示例值 |
|---|---|---|
| 键 | 污点的 Key | node-role.kubernetes.io/master |
| 操作符 | 匹配方式:Equal(完全匹配)或 Exists(只要键存在即可) | Equal |
| 值 | 污点的值 | true |
| 效果 | 污点的效果:NoSchedule(不调度)、PreferNoSchedule(尽量不调度)、NoExecute(驱逐已有 Pod) | NoSchedule |
提示
通常情况下,您不需要配置容忍度。平台会自动将 Pod 调度到合适的 worker 节点。如需特殊调度需求,请先在节点页面查看节点的污点配置。
提交创建
完成以上配置后,点击页面底部的 创建 按钮。平台将根据您填写的配置生成 Deployment YAML 并在集群中部署。创建成功后,您可以在部署列表中查看该 Deployment 的运行状态,并通过 命名空间 页面查看关联的 Pod。
下一步
- 如需对外暴露服务,请参考 网络 - 服务。
- 如需配置流量路由,请参考 网络 - Gateway API。
本文档更新于 2026-04-25 09:00