上云无忧 > 文档中心 > 天翼云容器云服务引擎CCSE工作负载 - 有状态
容器云服务引擎CCSE
天翼云容器云服务引擎CCSE工作负载 - 有状态

文档简介:
本节介绍了有状态服务的用户指南。 基本概念: 有状态工作负载:即kubernetes中的“StatefulSet”,有状态工作负载支持实例有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、mysql-HA等。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

本节介绍了有状态服务的用户指南。

基本概念

有状态工作负载:即kubernetes中的“StatefulSet”,有状态工作负载支持实例有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、mysql-HA等。

操作场景

在运行过程中会保存数据或状态的工作负载称为“有状态工作负载(statefulset)”。例如Mysql,它需要存储产生的新数据。

因为容器可以在不同主机间迁移,所以在宿主机上并不会保存数据,这依赖于CCSE提供的高可用存储卷,将存储卷挂载在容器上,从而实现有状态工作负载的数据持久化。

前提条件

在创建容器工作负载前,您需要存在一个可用集群。若没有请参照集群开通中内容创建。

若工作负载需要被外网访问,请确保集群中至少有一个节点已绑定弹性IP,或已购买负载均衡实例。

创建多个工作负载时,请确保容器使用的端口不冲突 ,否则部署会失败。

操作步骤及说明

创建StatefulSet与创建Deployment的过程类似,但主要有以下几个方面的差异,需要注意:

数据卷

除了Deployment能够使用的六种类型的数据卷之外,StatefulSet还多了新建PVC这种类型的数据卷挂载,而且这种类型的数据卷仅StatefulSet能够使用。一般情况下,如果我们使用StatefulSet来做数据的持久化,即可使用新建PVC这种数据卷。

使用这种数据卷挂载的时候,我们需要提前创建好存储类,然后点击上面的新建pvc。

新建pvc时的参数需要留意,只有同时满足下述条件,新建PVC才能成功绑定到我们提前创建的持久存储卷上: - 名称可以任意填写 -StorageClass

名称:一定要选择我们提前创建好的持久存储类 - 所需容器:一定不能超过我们提前创建好的持久存储卷的容量 - 访问模式:一定要和我们提前创建的持久存储卷的访问模式一致。

高级设置-升级方式

StatefulSet的另外一个差异点就是升级方式和Deployment不同,(升级方式需要点开工作负载的高级设置): - 删除升级:如果设置StatefulSet的升级方式为删除升级,那么我们全量替换升级StatefulSet时,全量替换更新的内容在我们重新部署Pods前是不会生效的。

不推荐这种升级方式 - 滚动升级:如果设置StatefulSet的升级方式为滚动升级,那么我们全量替换升级StatefulSet时,k8s会自动帮我们删除重建StatefulSet的每一个Pod,此时有一个可选的参数Partition: - Partition:一般情况下请不要设置,除非遇到了如下的这些情形: - 执行预发布 - 执行金丝雀更新 - 执行按阶段的更新 - Partition含义:只有序号大于或等于partition 的 Pod 将被删除重建,即序号小于partition的Pod会维持原状不更新,默认值为0,意味着所有的Pod都会被删除重建(序号的含义:假设StatefulSet有3个副本,即对应三个Pod,那么StatefulSet的这三个Pod会依次命名为0, 1, 2号,这里的编号即是序号) - 设置partition的注意点: - 序号小于partition的Pod不会被升级,即是手动删除该Pod,重新创建出来的也是旧版本的Pod。如果序号大于了StatefulSet的副本数,那么升级将不会影响到任何一个Pod。

服务名称

强烈建议创建有状态工作负载的同时创建Headless服务,同时创建有状态工作负载和服务时可以忽略这个参数 - 这个参数仅对于分开创建有状态工作负载和服务的用户有效 - 如果分开创建有状态工作负载和服务,那么请务必设置这个参数,并且后续创建服务时,服务名称必须和这个参数保持一致。

相似文档
  • 本节介绍了守护进程的用户指南。 基本概念: 创建守护进程集:即kubernetes中的“DaemonSet”,守护进程集确保全部(或者某些)节点都运行一个Pod实例,支持实例动态添加到新节点,适用于实例在每个节点上都需要运行的场景,如ceph、fluentd、Prometheus Node Exporter等。
  • 本节介绍了任务的用户指南。 基本概念: 普通任务:即kubernetes中的“Job”,普通任务是一次性运行的短任务,部署完成后即可执行。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜像仓库。
  • 本节介绍了定时任务的用户指南。 基本概念: 定时任务:即kubernetes中的“CronJob”,定时任务是按照指定时间周期运行的短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。
  • 本节介绍了容器组的用户指南。 基本概念: 容器组(Pod)是Kubernetes中最小的可部署单元。一个Pod(容器组)包含了一个应用程序容器(某些情况下是多个容器)、存储资源、一个唯一的网络IP地址、以及一些确定容器该如何运行的选项。
  • 本节介绍了自定义资源的用户指南。 基本概念: Kubernetes集群支持通过自定义资源定义(Custom Resource Definition)扩展Kubernetes API,并允许您添加自定义资源(Custom Resources)。您可以查看集群中的所有API组和其包含的资源类型,查看各个资源类型的对象列表并进行管理操作。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部