检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
要求每个Pod都有自己单独的状态时,比如分布式数据库,每个Pod要求有单独的存储,这时Deployment就不能满足需求了。 详细分析下有状态应用的需求,分布式有状态的特点主要是应用中每个部分的角色不同(即分工不同),比如数据库有主备,Pod之间有依赖,对应到Kubernetes中就是对Pod有如下要求:
击“创建工作负载”。 配置工作负载的信息。 基本信息 负载类型:选择有状态工作负载StatefulSet。工作负载类型的介绍请参见工作负载概述。 负载名称:填写工作负载的名称。请输入1到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。
创建有状态负载(StatefulSet) 操作场景 在运行过程中会保存数据或状态的工作负载称为“有状态工作负载(statefulset)”。例如MySQL,它需要存储产生的新数据。 因为容器可以在不同主机间迁移,所以在宿主机上并不会保存数据,这依赖于CCE提供的高可用存储卷,将存
本管理、滚动升级和自愈能力,其中最为常用的就是Deployment。 图1 Deployment 一个Deployment可以包含一个或多个Pod副本,每个Pod副本的角色相同,所以系统会自动为Deployment的多个Pod副本分发请求。 Deployment集成了上线部署、滚
无状态工作负载 kind metadata spec
击“创建工作负载”。 配置工作负载的信息。 基本信息 负载类型:选择无状态工作负载Deployment。工作负载类型的介绍请参见工作负载概述。 负载名称:填写工作负载的名称。请输入1到63个字符的字符串,可以包含小写英文字母、数字和中划线(-),并以小写英文字母开头,小写英文字母或数字结尾。
工作负载 工作负载概述 创建工作负载 配置工作负载 调度工作负载 登录容器实例 管理工作负载 管理自定义资源 Pod安全配置 工作负载最佳实践
有状态负载(StatefulSet) 有状态负载(StatefulSet) Deployment控制器下的Pod都有个共同特点,那就是每个Pod除了名称和IP地址不同,其余完全相同。
工作负载异常:已停止 问题现象 工作负载的状态为“已停止”。 问题原因: 工作负载的yaml的中metadata.enable字段为false,导致工作负载被停止,Pod被删除导致工作负载处于已停止状态,如下图所示: 解决方案 将enable字段删除或者将false修改为true。
无状态负载(Deployment) 无状态负载与Kubernetes中Deployment Workloads的定义方式相同,是对Pod的服务化封装。一个无状态负载可以包含一个或多个Pod,每个Pod的角色相同,所以系统会自动为无状态负载的多个Pod分发请求。同一无状态负载的所有Pod共享存储卷。
将上面Deployment的定义保存到deployment.yaml文件中,使用kubectl创建这个Deployment。
单击“容忍策略”下的,可新增策略。相关参数说明见容忍策略。 配置完成后,单击“创建工作负载”。返回有状态工作负载列表查看工作负载状态。 在工作负载列表中,待工作负载状态为“运行中”,工作负载创建成功。 相关操作 通过集群控制台,您还可以执行表3中的操作。 表3 相关操作 操作
无状态负载 UCS集群联邦可实现多个不同区域、不同云的Kubernetes管理,支持统一的全局应用部署,可将Deployment、StatefulSet、DaemonSet等不同类型的工作负载部署到集群联邦下的集群。 在运行中始终不保存任何数据或状态的工作负载称为“无状态负载 D
有状态负载 在运行过程中会保存数据或状态的工作负载称为“有状态工作负载(statefulset)”,创建的Pod拥有持久型标识符,Pod迁移或销毁重启后,标识符仍会保留。有状态负载不支持弹性伸缩,适用于需要使用持久化存储的场景,如ETCD等。 创建有状态负载 登录UCS控制台,在左侧导航栏中选择“容器舰队”。
本服务kubelet的GC回收机制与社区保持一致,在清除Pod的Owner(例如Deployment)后,异常Pod也会随之清理。 通过kubelet命令,删除有异常记录的Pod。 父主题: 工作负载异常问题排查
方法如下: systemctl restart kubelet 此时重新拉起或创建工作负载,已可成功执行。 解决方式链接:CCE节点变更规格后,为什么无法重新拉起或创建工作负载? 父主题: 工作负载异常问题排查
Pod出现Terminating 状态的原因可能有多种,以下是一些常见的情况: 节点异常:在节点处于“不可用”状态时,CCE会迁移节点上的容器实例,并将节点上运行的Pod置为Terminating状态。 待节点恢复后,处于Terminating状态的Pod会自动删除。 容器无响应:如果Pod中的
Headless Service一般结合StatefulSet来部署有状态的应用,比如Redis集群、MySQL集群等。 父主题: 其他
进入CCE控制台,单击“工作负载 > 有状态负载 StatefulSet”,选择BCS实例所使用的集群,找到对应新加组织或新建节点的工作负载,单击负载名称进入负载详情页,查看实例列表,找到异常实例。
327.png----结束2. 打开或关闭工作负载管理工作负载管理配置包括工作负载开关、全局最大并发数。这里的全局最大并发数指的是单个CN上的最大并发数,如果您通过工作负载开关关闭了工作负载管理功能,那么所有的工作负载管理功能将不再可用。1606208453433085874
配置管理:容器支持挂载ConfigMap和Secret。ConfigMap和Secret的创建请参见使用ConfigMap和使用Secret。 单击“下一步”,选择升级策略。 您可以指定无状态工作负载的升级方式,包括逐步“滚动升级”和整体“替换升级”。 滚动升级:将逐步用新版本
本视频以nginx为例,介绍使用CCE部署工作负载的基本流程。
ReplicaSet,但其理想值取决于新 Deployment 的频率和稳定性。 - 升级最大时长(progressDeadlineSeconds) 指定系统在报告 Deployment 进展失败 之前等待 Deployment 取得进展的秒数。 这类报告会在资源状态中体现为 Type=Prog
podAffinity/podAntiAffinity 您可以根据工作负载标签,使用标签选择器来筛选需要亲和/反亲和的Pod,并将新建的工作负载调度/不调度至目标Pod所在的节点(或节点组),同时支持必须满足和尽量满足的亲和性规则。 说明: 工作负载亲和性和反亲和性需要一定的计算时间,因此在大规模集群中
工作负载异常:实例拉取镜像失败 问题定位 当工作负载状态显示“实例未就绪:Back-off pulling image "xxxxx"”,该状态下工作负载实例K8s事件名称为“实例拉取镜像失败”或“重新拉取镜像失败”。查看K8s事件的方法请参见Pod事件查看方法。 排查思路 根据