首页 > 其他分享 >Kubernetes StatefulSet 扩缩容与升级

Kubernetes StatefulSet 扩缩容与升级

时间:2024-05-30 19:33:46浏览次数:27  
标签:web set Terminating Kubernetes 0s 扩缩容 stateful StatefulSet 9h

Kubernetes StatefulSet 扩缩容与升级

StatefulSet 扩容

kubectl scale sts stateful-set-web --replicas=5
root@k8s-master1:~# kubectl get pods --watch -l app=pod-nginx
NAME                 READY   STATUS    RESTARTS   AGE
stateful-set-web-0   1/1     Running   0          7h23m
stateful-set-web-1   1/1     Running   0          7h23m
stateful-set-web-2   0/1     Pending   0          0s
stateful-set-web-2   0/1     Pending   0          0s
stateful-set-web-2   0/1     Pending   0          2s
stateful-set-web-2   0/1     ContainerCreating   0          2s
stateful-set-web-2   0/1     ContainerCreating   0          2s
stateful-set-web-2   1/1     Running             0          3s
stateful-set-web-3   0/1     Pending             0          0s
stateful-set-web-3   0/1     Pending             0          0s
stateful-set-web-3   0/1     Pending             0          2s
stateful-set-web-3   0/1     ContainerCreating   0          2s
stateful-set-web-3   0/1     ContainerCreating   0          2s
stateful-set-web-3   1/1     Running             0          3s
stateful-set-web-4   0/1     Pending             0          0s
stateful-set-web-4   0/1     Pending             0          0s
stateful-set-web-4   0/1     Pending             0          2s
stateful-set-web-4   0/1     ContainerCreating   0          2s
stateful-set-web-4   0/1     ContainerCreating   0          2s
stateful-set-web-4   1/1     Running             0          2s

StatefulSet 缩容

kubectl patch sts stateful-set-web -p '{"spec":{"replicas":3}}'
root@k8s-master1:~# kubectl get pods --watch -l app=pod-nginx
NAME                 READY   STATUS    RESTARTS   AGE
stateful-set-web-0   1/1     Running   0          9h
stateful-set-web-1   1/1     Running   0          9h
stateful-set-web-2   1/1     Running   0          107m
stateful-set-web-3   1/1     Running   0          107m
stateful-set-web-4   1/1     Running   0          107m
stateful-set-web-4   1/1     Terminating   0          107m
stateful-set-web-4   1/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-3   1/1     Terminating   0          107m
stateful-set-web-3   1/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m

StatefulSet 更新

RollingUpdate 定义与使用

滚动更新将会以倒叙的方式逐次更新 Pod , 同时我们也可以用partition字段来分割更新部分与不更新部分。假设partition为2,副本数为3,则副本索引为 0,1,2。即更新部分为副本数(3-1)至 2,索引 2 更新;不更新部分索引 0 和 1。

kubectl patch statefulset stateful-set-web --type='json' -p='[{"op":
"replace", "path": "/spec/template/spec/containers/0/image", "value":"registry.k8s.io/ngi
nx-slim:0.7"}]'
root@k8s-master1:~# kubectl get pods --watch -l app=pod-nginx
NAME                 READY   STATUS    RESTARTS   AGE
stateful-set-web-0   1/1     Running   0          9h
stateful-set-web-1   1/1     Running   0          9h
stateful-set-web-2   1/1     Running   0          112m
stateful-set-web-2   1/1     Terminating   0          122m
stateful-set-web-2   1/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Pending       0          0s
stateful-set-web-2   0/1     Pending       0          0s
stateful-set-web-2   0/1     ContainerCreating   0          0s
stateful-set-web-2   0/1     ContainerCreating   0          1s
stateful-set-web-2   1/1     Running             0          8s
stateful-set-web-1   1/1     Terminating         0          9h
stateful-set-web-1   1/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Pending             0          0s
stateful-set-web-1   0/1     Pending             0          0s
stateful-set-web-1   0/1     ContainerCreating   0          0s
stateful-set-web-1   0/1     ContainerCreating   0          1s
stateful-set-web-1   1/1     Running             0          5s
stateful-set-web-0   1/1     Terminating         0          9h
stateful-set-web-0   1/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Pending             0          0s
stateful-set-web-0   0/1     Pending             0          0s
stateful-set-web-0   0/1     ContainerCreating   0          0s
stateful-set-web-0   0/1     ContainerCreating   0          0s
stateful-set-web-0   1/1     Running             0          0s

OnDelete 定义与使用

OnDelete 指的是不直接更新 Pod,只有在 Pod 被删除后才会被更新。

kubectl patch statefulset web -p '{"spec":{"updateStrategy":{"type":"OnDelete"}}}'

标签:web,set,Terminating,Kubernetes,0s,扩缩容,stateful,StatefulSet,9h
From: https://blog.csdn.net/baidu_34688878/article/details/139332601

相关文章

  • Kubernetes 硬盘持久化之 StorageClass
    Kubernetes硬盘持久化之StorageClassStorageClass定义StorageClass为管理员提供了描述存储"类"的方法。不同的类型可能会映射到不同的服务质量等级或备份策略,或是由集群管理员制定的任意策略。这个类的概念在其他存储系统中有时被称为"配置文件"。每个StorageClass......
  • 在kubernetes里使用seccomp限制容器的系统调用
    目录一.系统环境二.前言三.系统调用简介四.使用seccomp限制docker容器系统调用五.在kubernetes里使用seccomp限制容器的系统调用5.1配置seccomp允许pod进行所有系统调用5.2配置seccomp禁止pod进行所有系统调用5.3配置seccomp允许pod进行50个系统调用六.总结一.系统环境本文主......
  • 三、(1)Kubernetes基本概念和术语
    目录1.1资源对象概述1.2集群类1.3应用类1. serviceandpod:应用类相关的资源对象主要是围绕service和pod来进行说明的。2.Lable与标签选择器3.pod与deployment4.service的clusterIP地址5.service的外网访问问题6.有状态的应用集群7.与应用运维相关对象考虑......
  • filebeat配置参数add_kubernetes_metadata
    在Kubernetes集群中,我们可以使用Filebeat来从容器中收集日志,并为每个日志事件添加Kubernetes相关的元数据信息,例如Pod名称、命名空间、标签等。这样我们就可以更好地分析和理解日志数据。filebeat.inputs:-type:containerpaths:-/var/log/containers/*.log......
  • 在kubernetes里使用AppArmor限制容器对资源的访问
    目录一.系统环境二.前言三.AppArmor简介四.AppArmor和SELinux的区别五.使用AppArmor限制nginx程序访问目录5.1安装nginx5.2修改nginx的默认主页5.3安装AppArmor实用工具5.4AppArmor规则解释5.5配置AppArmor规则限制nginx程序访问目录六.在kubernetes里使用AppArmor限制容器对......
  • 自动化测试在 Kubernetes Operator 开发中的应用:以 OpenTelemetry 为例
    背景最近在给opentelemetry-operator提交一个标签选择器的功能时,因为当时修改的函数是私有的,无法添加单测函数,所以社区建议我补充一个e2etest.因为在当前的版本下,只要给deployment打上了instrumentation.opentelemetry.io/inject-java:"true"这类注解就会给该deployme......
  • Kubernetes(k8s) v1.30.1 本地集群部署 安装metallb 支持LoadBalancer 生产环境 推荐
    1 metallb安装参考:Kubernetes(k8s)v1.30.1本地集群部署默认不支持LoadBalancermetallb来解决-CSDN博客2 删除Layer2模式配置kubectldelete-fIPAddressPool.yamlkubectldelete-fL2Advertisement.yamlkubectldelete-fdiscuz-srv.yaml3配置k8sMeta......
  • Kubernetes中Pod容器的资源限制和探针配置
    前言在Kubernetes中,定义Pod时可以选择性地为每个容器设定所需要的资源数量。最常见的可设定资源是CPU和内存大小,以及其他类型的资源;另一方面,通过配置探针,可以确保容器在运行时保持健康,并且只有在准备好接收流量时才会被负载均衡器引导流量。从而提高应用程序的可靠性和......
  • 改造 Kubernetes 自定义调度器
    原文出处:改造Kubernetes自定义调度器|Jayden'sBlog(jaydenchang.top)OverviewKubernetes默认调度器在调度Pod时并不关心特殊资源例如磁盘、GPU等,因此突发奇想来改造调度器,在翻阅官方调度器框架[1]、调度器配置[2]和参考大佬的文章[3]后,自己也来尝试改写一下。环境......
  • Kubernetes Service 之原理与 ClusterIP 和 NodePort 用法
    KubernetesService之原理与ClusterIP和NodePort用法Service定义在Kubernetes中,由于Pod是有生命周期的,如果Pod重启它的IP可能会发生变化以及升级的时候会重建Pod,我们需要Service服务去动态的关联这些Pod的IP和端口,从而使我们前端用户访问不受后端变更......