详情页标题前

腾讯云容器服务StatefulSet 管理同尘科技

详情页1

简介

StatefulSet 主要用于管理有状态的应用,可以创建具有持久性标识符的 Pod。Pod 迁移或销毁重启后,标识符仍会保留。在需要持久化存储时,您可以通过标识符对存储卷进行一一对应。如果应用程序不需要持久的标识符,建议您使用 Deployment 部署应用程序。

StatefulSet 控制台操作指引

创建 StatefulSet

1. 登录容器服务控制台,选择左侧导航栏中的 集群。2. 单击需要创建 StatefulSet 的集群 ID,进入待创建 StatefulSet 的集群管理页面。3. 选择工作负载 > StatefulSet,进入 StatefulSet 管理页面。如下图所示:

腾讯云容器服务StatefulSet 管理同尘科技

4. 单击新建,进入 “新建Workload” 页面。
根据实际需求,设置 StatefulSet 参数。关键参数信息如下:工作负载名:输入自定义名称。标签:一个键 – 值对(Key-Value),用于对资源进行分类管理。命名空间:根据实际需求进行选择。类型:选择StatefulSet(有状态集的运行Pod)数据卷(选填):为容器提供存储,目前支持临时路径、主机路径、云硬盘数据卷、文件存储 NFS、配置文件、PVC,还需挂载到容器的指定路径中。实例内容器:根据实际需求,为 StatefulSet 的一个 Pod 设置一个或多个不同的容器。名称:自定义。镜像:根据实际需求进行选择。镜像版本(Tag):根据实际需求进行填写。镜像拉取策略:提供以下3种策略,请按需选择。
若不设置镜像拉取策略,当镜像版本为空或 latest 时,使用 Always 策略,否则使用 IfNotPresent 策略。Always:总是从远程拉取该镜像。IfNotPresent:默认使用本地镜像,若本地无该镜像则远程拉取该镜像。Never:只使用本地镜像,若本地没有该镜像将报异常。CPU/内存限制:可根据 Kubernetes 资源限制 进行设置 CPU 和内存的限制范围,提高业务的健壮性。GPU 资源:配置该工作负载使用的最少 GPU 资源。高级设置:可设置 “工作目录”、“运行命令”、“运行参数”、“容器健康检查”和“特权级”等参数。镜像访问凭证:容器镜像默认私有,在创建工作负载时,需选择实例对应的镜像访问凭证。实例数量:根据实际需求选择调节方式,设置实例数量。节点调度策略:可根据调度规则,将 Pod 调度到符合预期的 Label 的节点中。访问设置:根据实际需求,设置 Service 参数。详情见 服务访问方式。5. 单击创建Workload,完成创建。

更新 StatefulSet

更新 YAML

1. 登录容器服务控制台,选择左侧导航栏中的 集群。2. 单击需要更新 YAML 的集群 ID,进入待更新 YAML 的集群管理页面。3. 选择工作负载 > StatefulSet,进入 StatefulSet 信息页面。如下图所示:

腾讯云容器服务StatefulSet 管理同尘科技

4. 在需要更新 YAML 的 StatefulSet 行中,选择更多 > 编辑YAML,进入更新 StatefulSet 页面。5. 在 “更新StatefulSet” 页面编辑 YAML,并单击完成即可更新 YAML。

更新 Pod 配置

1. 在集群管理页面,单击需要更新 Pod 配置的 StatefulSet 的集群 ID,进入待更新 Pod 配置的 StatefulSet 的集群管理页面。2. 在需要更新 Pod 配置的 StatefulSet 行中,单击更新Pod配置。如下图所示:

腾讯云容器服务StatefulSet 管理同尘科技

3. 在 “更新Pod配置” 页面,根据实际需求修改更新方式,设置参数。如下图所示:

腾讯云容器服务StatefulSet 管理同尘科技

4. 单击完成,即可更新 Pod 配置。

Kubectl 操作 StatefulSet 指引

YAML 示例

apiVersion: v1kind: Service  ## 创建一个 Headless Service,用于控制网络域metadata:  name: nginx  namespace: default  labels:    app: nginxspec:  ports:  - port: 80    name: web  clusterIP: None  selector:    app: nginx---apiVersion: apps/v1kind: StatefulSet ### 创建一个 Nginx的StatefulSetmetadata:  name: web  namespace: defaultspec:  selector:    matchLabels:      app: nginx  serviceName: "nginx"  replicas: 3 # by default is 1  template:    metadata:      labels:        app: nginx    spec:      terminationGracePeriodSeconds: 10      containers:      - name: nginx        image: nginx:latest        ports:        - containerPort: 80          name: web        volumeMounts:        - name: www          mountPath: /usr/share/nginx/html  volumeClaimTemplates:  - metadata:      name: www    spec:      accessModes: [ "ReadWriteOnce" ]      storageClassName: "cbs"      resources:        requests:          storage: 10Gi

kind:标识 StatefulSet 资源类型。metadata:StatefulSet 的名称、Label等基本信息。metadata.annotations:对 StatefulSet 的额外说明,可通过该参数设置腾讯云 TKE 的额外增强能力。spec.template:StatefulSet 管理的 Pod 的详细模板配置。spec.volumeClaimTemplates:提供创建 PVC&PV 的模板。更多参数详情可查看 Kubernetes StatefulSet 官方文档

创建 StatefulSet

1. 参考 YAML 示例,准备 StatefulSet YAML 文件。2. 安装 Kubectl,并连接集群。操作详情请参考 通过 Kubectl 连接集群。3. 执行以下命令,创建 StatefulSet YAML 文件。

kubectl create -f StatefulSet YAML 文件名称

例如,创建一个文件名为 web.yaml 的 StatefulSet YAML 文件,则执行以下命令:

kubectl create -f web.yaml

4. 执行以下命令,验证创建是否成功。

kubectl get StatefulSet

返回类似以下信息,即表示创建成功。

NAME      DESIRED   CURRENT   AGEtest      1         1         10s

更新 StatefulSet

执行以下命令,查看 StatefulSet 的更新策略类型。

kubectl get ds/ -o go-template='{{.spec.updateStrategy.type}}{{"\n"}}'

StatefulSet 有以下两种更新策略类型:OnDelete:默认更新策略。该更新策略在更新 StatefulSet 后,需手动删除旧的 StatefulSet Pod 才会创建新的 StatefulSet Pod。RollingUpdate:支持 Kubernetes 1.7或更高版本。该更新策略在更新 StatefulSet 模板后,旧的 StatefulSet Pod 将被终止,并且以滚动更新方式创建新的 StatefulSet Pod(Kubernetes 1.7或更高版本)。

方法一

执行以下命令,更新 StatefulSet。

kubectl edit StatefulSet/[name]

此方法适用于简单的调试验证,不建议在生产环境中直接使用。您可以通过此方法更新任意的 StatefulSet 参数。

方法二

执行以下命令,更新指定容器的镜像。

kubectl patch statefulset  --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":""}]'

建议保持 StatefulSet 的其他参数不变,业务更新时,仅更新容器镜像。如果更新的 StatefulSet 是滚动更新方式的策略,可执行以下命令查看更新状态:

kubectl rollout status sts/

删除 StatefulSet

执行以下命令,删除 StatefulSet。

kubectl delete  StatefulSet [NAME] --cascade=false

–cascade=false 参数表示 Kubernetes 仅删除 StatefulSet,且不删除任何 Pod。如需删除 Pod,则执行以下命令:

kubectl delete  StatefulSet [NAME]

更多 StatefulSet 相关操作可查看 Kubernetes官方指引。
容器服务官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/147442.html

(0)
上一篇 2023年12月9日 下午12:39
下一篇 2023年12月9日 下午12:39
详情页2

相关推荐

  • 腾讯云云点播Web

    本文档是介绍适用于直播和点播播放的 Web 播放器( TCPlayer )的相关参数以及 API。本文档适合有一定 Javascript 语言基础的开发人员阅读。 初始化参数 播放器初始化需要传入两个参数,第一个为播放器容器 ID,第二个为功能参数对象。 var player = TCPlayer(‘player-container-id’, options…

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)SCF + CLS 日志转存至 ES-云淘科技

    操作场景 本文为您介绍如何通过云函数 SCF 将 CLS 日志转储至 Elasticsearch Service(ES)。其中,CLS 主要用于日志采集,SCF 主要提供数据加工的节点计算能力。数据处理流程图请参见 函数处理概述。 操作步骤 创建日志集和主题 1. 登录 日志服务控制台,在左侧导航栏中单击日志主题。2. 进入日志集管理页面,在页面上方选择日志…

    2023年12月9日
  • 腾讯云容器服务节点池分类(NodeGroup)同尘科技

    本文介绍如何通过容器服务控制台,对边缘容器的边缘节点池进行分组管理。 概述 节点池分类可以对不同的节点池再进行一级分组,将互斥的不同节点池加入到同一个分组后,应用可以指定在此分组上进行部署,实现一键批量在多个节点池部署应用的能力。如下图: 例如集群中的节点,您可以按照需求进行两种场景的分类,一种场景是按照地域(location),另一种场景是按照体系结…

    2023年12月9日
  • 腾讯云容器服务内存精细调度同尘科技

    内存精细调度能力提供了一系列功能,保证业务内存方面的服务质量保证。全方位提升内存表现,以及灵活限制容器对内存的使用。 功能一:异步回收 功能介绍 内存异步回收允许容器内部设置一个阈值,超过该阈值则会触发后台异步回收,保证对应 memcg 内使用维持一定量的空闲内存;对后续的内存分配提供保障,减少其进入直接内存回收的次数。 使用方式 1. 部署 QoS Age…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • DataWorks在使用数据集成中的同步任务从mysql同步表到oss,这个属性可以在哪里配置么?-云小二-阿里云

    DataWorks在使用数据集成中的同步任务从mysql同步表到oss,存储为csv时,最终生成的文件中没有表头,这个属性可以在哪里配置么?我暂时没发现可以在哪配置,路径是可以自定义规则?

    阿里云 2023年12月23日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。