更新时间:2022-08-13 21:30:54
► 配置容器镜像
1. 点击【添加容器镜像】,再根据需求添加容器镜像,如下所示:

• 选择已有镜像部署容器
从公开或者私有镜像仓库中拉取镜像,若不填写镜像仓库地址,则镜像默认从 Docker Hub 中拉取。输入容器名称和对应的镜像名,镜像名一般需要指定 tag,比如:nginx:1.16。

为了实现集群的资源被有效调度和分配,同时提高资源的利用率;平台采用了 request 和 limit 两种限制类型对资源进行分配。
request 通常是容器使用的最小资源需求,而 limit 通常是容器能使用资源的最大值,设置为 0 表示对使用的资源不做限制,可无限使用。request 能保证 Pod 有足够的资源来运行;而 limit 则是防止某个 Pod 无限制的使用资源,导致其他 Pod 崩溃。

表1:CPU 配额说明
参数 说明
最小使用 (requests) 容器使用的 CPU 最小值,作为容器调度时资源分配的判断依赖。
只有当节点上可分配 CPU 总量 ≥ 容器 CPU 最小值时,才允许将容器调度到该节点
最大使用 (limits) 容器能使用的 CPU 最大值

表2:内存配额说明
参数 说明
最小使用 (requests) 容器使用的最小内存需求,作为容器调度时资源分配的判断依赖。
只有当节点上可分配内存总量 ≥ 容器内存申请数时,才允许将容器调度到该节点
最大使用 (limits) 容器能使用的内存最大值,如果内存使用量超过这个限定值,容器可能会被 kill

2. 如果用户有更进一步的需求,可下滑至端口设置和其他的设置部分,如下所示:
参数 说明
端口设置 设置容器的访问策略,指定容器需要暴露的端口并自定义端口名称,端口协议可以选择 TCP 和 UDP
健康检查 在业务级的监控检查方面,Kubernetes 定义了 2 种类型的健康检查探针,详细可参见 KubeSphere 官方文档
• 存活探针:监测到容器实例不健康时,重启应用;
• 就绪探针:监测到容器实例不健康时,将工作负载设置为未就绪状态,业务流量不会导入到该容器中
启动命令 • 运行命令:可自定义容器启动的运行命令,Kubernetes 的容器启动命令可参见 Kubernetes 官方文档
• 参数:可自定义容器的启动参数,Kubernetes 的容器启动参数可参见 Kubernetes 官方文档
环境变量 环境变量是指容器运行环境中设定的一个变量,与 Dockerfile 中的“ENV”效果相同,为创建的工作负载提供极大的灵活性。
• 添加环境变量:以添加键值对的形式来设置环境变量;
• 引入配置中心:支持添加 Secret 和 ConfigMap 作为环境变量,用来保存键值对形式的配置数据,详细可参见 KubeSphere 官方文档
镜像拉取策略 默认的镜像拉取策略是 IfNotPresent,在镜像已在本地存在的情况下,kubelet 不再去拉取镜像,将使用本地已有的镜像;
如果需每次拉取仓库中的镜像,则设置拉取策略为 Always;如果设置为 IfNotPresent 或者 Never,则会优先使用本地镜像
3. 设置完成后点击【保存】。
► 更新策略
更新策略包括:滚动更新 (RollingUpdate) 和替换升级 (Recreate),如下所示:

• 滚动更新:推荐使用滚动更新 (Rolling-update)的方式更新 Deployment,滚动升级将逐步用新版本的容器组替换旧版本的容器组,升级过程中业务流量会同时负载均衡分布到新老的容器组上,所以业务不会中断。您可以指定容器组最小可用数量和更新时容器组最大数量来控制滚动更新的进程;
    
• 容器组最小可用数量:可选配置项,每次滚动升级要求存活的最小容器组数量,建议配置为正整数(最小为 1),该值可以是一个绝对值 (例如 5);
    • 更新时容器组最大数量:可选配置项,升级过程中 Deployment 中允许超出副本数量的容器组的最大数量
• 替换升级:在创建出新的 Pod 之前会先杀掉所有已存在的 Pod,意味着替换升级会先删除旧的容器组,再创建新容器组,升级过程中业务会中断。
上述配置信息填写完成以后,点击【下一步】。