无状态负载与Kubernetes中Deployment Workloads的定义方式相同,是对Pod的服务 化封装。一个无状态负载可以包含一个或多个Pod,每个Pod的角色相同,所以系统会 自动为无状态负载的多个Pod分发请求。同一无状态负载的所有Pod共享存储卷。
在Pod这个章节介绍了Pod,Pod是Kubernetes创建或部署的最小单位,但是Pod是被 设计为相对短暂的一次性实体,Pod可以被驱逐(当节点资源不足时)、随着集群的节 点fail而消失。同时kubernetes提供了Controller(控制器)来管理Pod,Controller可 以创建和管理多个Pod,提供副本管理、滚动升级和自愈能力,其中最为常用的就是 Deployment。
一个Deployment可以包含一个或多个Pod副本,每个Pod副本的角色相同,所以系统 会自动为Deployment的多个Pod副本分发请求。
Deployment集成了上线部署、滚动升级、创建副本,恢复上线任务,在某种程度上,
Deployment可以帮我们实现无人值守的上线,大大降低我们的上线过程的复杂沟通、
操作风险。
图4-4 无状态负载
创建无状态负载
步骤1 登录云容器实例管理控制台,左侧导航栏中选择工作负载 > 无状态
(Deployment),在右侧页面单击“创建无状态负载”。
步骤2 添加基本信息。
● 负载名称
请输入以小写字母或数字开头,小写字母、数字、中划线(-)、点(.)组成(其 中两点不能相连,点不能与中划线相连),小写字母或数字结尾的1到63字符的字 符串。负载名称不支持修改,如需修改名称,需要重新创建。
● 命名空间
选择命名空间,如果还未创建命名空间,请参考命名空间创建。
● 负载描述
描述信息,少于等于250个字符。
● Pod数量
负载可以有一个或多个Pod,您可以设置具体Pod个数。每个负载Pod都由相同的
– nvidia-smi是一个命令行工具,详细信息请参考NVIDIA System Management Interface。
– CCI不提供nvidia-smi,您可以将nvidia-smi打包到镜像中,通过nvidia-smi监控GPU使 用情况。使用nvidia-smi前需要设置LD_LIBRARY_PATH值,方法请参考为什么exec进
▪
鲲鹏容器只支持arm的镜像架构类型,普通容器只支持x86的镜像架构类型。– 开源镜像中心:展示了镜像中心的公共镜像。
您还可以为容器做如下高级设置:
– 配置管理:容器支持挂载ConfigMap和Secret。ConfigMap和Secret的创建请 参见使用ConfigMap和使用Secret。
● 公网访问:将提供一个可以从Internet访问的入口,支持HTTP/HTTPS/TCP/UDP 协议。公网访问的详细内容请参见公网访问。
说明
安装探针会产生少量资源消耗,主要作用是可对java工作负载提供应用调用链、拓扑、
SQL分析、堆栈追踪等监控能力。
a. 输入监控组名称,如testapp。若已有监控组,可下拉选择。
b. 选择“探针版本”,探针版本默认为latest,具体可查看下拉框后的“版本说 明”。
图4-5 设置性能管理配置
c. 选择“探针升级策略”,默认为“重启自动升级”。
“探针升级策略”为获取探针镜像的策略,可选值有“重启自动升级”和
“手动升级”。
▪
重启自动升级:每次都尝试重新下载镜像。▪
手动升级:如果本地有该镜像,则使用本地镜像,本地不存在时下载镜 像。步骤5 配置完成后,单击“下一步:规格确认”,单击“提交”,单击“返回无状态负载列 表”。
在负载列表中,待负载状态为“运行中”,负载创建成功。您可以单击负载名进入负 载详情界面,按F5查看负载实时状态。
若需要访问负载,选择“访问配置”Tab页,查看访问地址。
----结束
删除 Pod
负载创建完后,可以对Pod进行手动删除操作,由于Pod是有控制器在控制,单击删除 按钮后会立即重新创建一个新的Pod。手动删除Pod在某些场景下非常有用,比如升级 到一半出现失败时、想重启业务进程时。
删除Pod如图4-6所示。
图4-6 删除 Pod
删除后立即重新创建Pod,如图4-7所示。
任务是负责批量处理短暂的一次性任务(short lived one-off tasks),即仅执行一次的 任务,它保证批处理任务的一个或多个 Pod 成功结束。