对于数据库等需要持久化存储数据的容器应用,建议您使用有状态工作负载,请参见创建有状态负载(StatefulSet)。 如果您希望工作负载实例调度到指定的节点上,请参见工作负载调度策略概述。 如果创建工作负载时出现异常,请参见工作负载状态异常定位方法。 工作负载创建完成后,更多操作请参见管理工作负载。 父主题: 创建工作负载
无状态负载(Deployment) 无状态负载与Kubernetes中Deployment Workloads的定义方式相同,是对Pod的服务化封装。一个无状态负载可以包含一个或多个Pod,每个Pod的角色相同,所以系统会自动为无状态负载的多个Pod分发请求。同一无状态负载的所有Pod共享存储卷。
创建有状态负载(StatefulSet) 有状态负载(StatefulSet)是指那些在运行过程中需要保存数据或状态的应用,例如数据库、缓存服务、消息队列等。与无状态工作负载不同,有状态负载存在以下特点: 固定标识符:有状态工作负载中的每个Pod都有一个固定的标识符,这个标识符与
创建无状态负载(Deployment) 操作场景 在运行中始终不保存任何数据或状态的工作负载称为“无状态负载 Deployment”,例如nginx。您可以通过控制台或kubectl命令行创建无状态负载。 前提条件 在创建工作负载前,已存在一个可用集群。若没有可用集群,请参照购买CCE
如持续集成。 工作负载生命周期说明 表1 状态说明 状态 说明 运行中 所有实例都处于运行中、或实例数为0时显示此状态。 未就绪 容器处于异常、负载下实例没有正常运行时显示此状态。 处理中 负载没有进入运行状态但也没有报错时显示此状态。 可用 当多实例无状态工作负载运行过程中部分
无状态工作负载 kind metadata spec
将上面Deployment的定义保存到deployment.yaml文件中,使用kubectl创建这个Deployment。
有状态负载(StatefulSet) 有状态负载(StatefulSet) Deployment控制器下的Pod都有个共同特点,那就是每个Pod除了名称和IP地址不同,其余完全相同。
工作负载 工作负载概述 创建工作负载 配置工作负载 调度工作负载 登录容器实例 管理工作负载 管理自定义资源 Pod安全配置 工作负载最佳实践
单击“容忍策略”下的,可新增策略。相关参数说明见容忍策略。 配置完成后,单击“创建工作负载”。返回有状态工作负载列表查看工作负载状态。 在工作负载列表中,待工作负载状态为“运行中”,工作负载创建成功。 相关操作 通过集群控制台,您还可以执行表3中的操作。 表3 相关操作 操作
使用kubectl部署带文件存储卷的有状态工作负载 操作场景 CCE支持使用已有的文件存储(PersistentVolumeClaim),创建有状态工作负载(StatefulSet)。 约束与限制 如下配置示例适用于Kubernetes 1.13及以下版本的集群。 操作步骤 参照
工作负载异常:已停止 问题现象 工作负载的状态为“已停止”。 问题原因: 工作负载的yaml的中metadata.enable字段为false,导致工作负载被停止,Pod被删除导致工作负载处于已停止状态,如下图所示: 解决方案 将enable字段删除或者将false修改为true。
无状态负载 UCS集群联邦可实现多个不同区域、不同云的Kubernetes管理,支持统一的全局应用部署,可将Deployment、StatefulSet、DaemonSet等不同类型的工作负载部署到集群联邦下的集群。 在运行中始终不保存任何数据或状态的工作负载称为“无状态负载 D
有状态负载 在运行过程中会保存数据或状态的工作负载称为“有状态工作负载(statefulset)”,创建的Pod拥有持久型标识符,Pod迁移或销毁重启后,标识符仍会保留。有状态负载不支持弹性伸缩,适用于需要使用持久化存储的场景,如ETCD等。 创建有状态负载 登录UCS控制台,在左侧导航栏中选择“容器舰队”。
本服务kubelet的GC回收机制与社区保持一致,在清除Pod的Owner(例如Deployment)后,异常Pod也会随之清理。 通过kubelet命令,删除有异常记录的Pod。 父主题: 工作负载异常问题排查
在页面左上角选择命名空间,找到对应的工作负载,查看其状态。 如果工作负载状态为“未就绪”,可通过查看Pod的事件等信息确定异常原因,详情请参见Pod事件查看方法。根据事件,参考Pod常见异常问题查找异常的解决方案。 如果工作负载状态为“处理中”,一般为过程中的状态,请耐心等待。 如果工作负载状态为“运行中”
可以通过更换镜像或镜像版本实现无状态工作负载、有状态工作负载、守护进程集的快速升级,业务无中断。 编辑YAML 可通过在线YAML编辑窗对无状态工作负载、有状态工作负载、守护进程集、定时任务和容器组的YAML文件进行修改和下载。普通任务的YAML文件仅支持查看、复制和下载。 说明: 如果对
工作负载状态正常但未正常工作 问题现象 Pod已经处于Running状态(查看Pod状态)但未正常工作,或者访问结果不符合预期。 问题原因 可能是您的部署描述YAML文件(例如 Pod、Deployment、StatefulSet等)存在错误。例如: 镜像版本未更新。您可能未使用
解决方式链接:CCE节点变更规格后,为什么无法重新拉起或创建工作负载? 父主题: 工作负载异常问题排查
进入CCE控制台,单击“工作负载 > 有状态负载 StatefulSet”,选择BCS实例所使用的集群,找到对应新加组织或新建节点的工作负载,单击负载名称进入负载详情页,查看实例列表,找到异常实例。
容器工作负载类 为什么业务运行性能不达预期? 如何设置实例(Pod)数? 如何查看资源配额? 如何设置应用的探针? 弹性伸缩策略如何配置? 使用sample镜像创建工作负载无法运行 调用接口删除Deployment后怎么还能查看到Pod?
达到实例间发现和访问的效果。 Headless Service使用场景 当某个工作负载的多个Pod之间没有任何区别时,可以使用普通Service,利用集群kube-proxy实现Service的负载均衡,例如常见的无状态应用Nginx。 但是某些应用场景下,工作负载的各个实例间存
配置管理:容器支持挂载ConfigMap和Secret。ConfigMap和Secret的创建请参见使用ConfigMap和使用Secret。 单击“下一步”,选择升级策略。 您可以指定无状态工作负载的升级方式,包括逐步“滚动升级”和整体“替换升级”。 滚动升级:将逐步用新版本
实例数量(涉及deployment, statefulset,job) 参数名 取值范围 默认值 是否允许修改 作用范围 replicas 0-1500 无 允许 - 升级策略 参数名 取值范围 默认值 是否允许修改 作用范围 strategy 无 无 允许 - 父主题: 无状态工作负载
kind 负载类型 参数名 取值范围 默认值 是否允许修改 作用范围 kind 无 无 支持初始化时配置,不支持后续修改 - 父主题: 无状态工作负载
您即将访问非华为云网站,请注意账号财产安全