飞天使-k8s知识点20-kubernetes实操5-pod更新与暂停-statefulset

本文主要是介绍飞天使-k8s知识点20-kubernetes实操5-pod更新与暂停-statefulset,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

        • 资源调度 Deployment:扩缩容
        • 资源调度 Deployment:更新的暂停与恢复
        • 资源调度 StatefulSet:定义一个有状态服务
            • headless service
          • 金丝雀发布

资源调度 Deployment:扩缩容
扩容和缩容,常用的功能
scale[root@kubeadm-master1 ~]# kubectl scale --help
Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet.Scale also allows users to specify one or more preconditions for the scale action.If --current-replicas or --resource-version is specified, it is validated before the scale is attempted, and it is
guaranteed that the precondition holds true when the scale is sent to the server.Examples:# Scale a replicaset named 'foo' to 3.kubectl scale --replicas=3 rs/foo# Scale a resource identified by type and name specified in "foo.yaml" to 3.kubectl scale --replicas=3 -f foo.yaml# If the deployment named mysql's current size is 2, scale mysql to 3.kubectl scale --current-replicas=2 --replicas=3 deployment/mysql# Scale multiple replication controllers.kubectl scale --replicas=5 rc/foo rc/bar rc/baz# Scale statefulset named 'web' to 3.kubectl scale --replicas=3 statefulset/web实操部分[root@kubeadm-master1 ~]# kubectl get rs
NAME                           DESIRED   CURRENT   READY   AGE
nginx-deploy-845964f5bf        4         4         4       61m
nginx-deploy-968b78ccf         0         0         0       41m
nginx-deployment-67dfd6c8f9    1         1         1       56d
tomcat-deployment-6c44f58b47   1         1         1       56d
[root@kubeadm-master1 ~]# kubectl get pod
NAME                                 READY   STATUS      RESTARTS   AGE
client                               1/1     Running     0          50d
my-pod                               1/1     Running     0          9d
my-pod1                              0/1     Completed   6          20h
net-test1                            1/1     Running     138        57d
net-test2                            1/1     Running     14         57d
nginx-deploy-845964f5bf-dqdzt        1/1     Running     0          6m33s
nginx-deploy-845964f5bf-k8vbj        1/1     Running     0          6m35s
nginx-deploy-845964f5bf-pxs78        1/1     Running     0          10s
nginx-deploy-845964f5bf-xk49f        1/1     Running     0          6m34s
nginx-deployment-67dfd6c8f9-5s6nz    1/1     Running     1          56d
tomcat-deployment-6c44f58b47-4pz6d   1/1     Running     1          56d
[root@kubeadm-master1 ~]# kubectl scale --replicas=2 deploy nginx-deploy
deployment.apps/nginx-deploy scaled
[root@kubeadm-master1 ~]# kubectl get rs
NAME                           DESIRED   CURRENT   READY   AGE
nginx-deploy-845964f5bf        2         2         2       61m
nginx-deploy-968b78ccf         0         0         0       41m
nginx-deployment-67dfd6c8f9    1         1         1       56d
tomcat-deployment-6c44f58b47   1         1         1       56d
[root@kubeadm-master1 ~]# kubectl get pod
NAME                                 READY   STATUS      RESTARTS   AGE
client                               1/1     Running     0          50d
my-pod                               1/1     Running     0          9d
my-pod1                              0/1     Completed   6          20h
net-test1                            1/1     Running     138        57d
net-test2                            1/1     Running     14         57d
nginx-deploy-845964f5bf-k8vbj        1/1     Running     0          7m1s
nginx-deploy-845964f5bf-xk49f        1/1     Running     0          7m
nginx-deployment-67dfd6c8f9-5s6nz    1/1     Running     1          56d
tomcat-deployment-6c44f58b47-4pz6d   1/1     Running     1          56d
资源调度 Deployment:更新的暂停与恢复
kubectl rollout pause 和 kubectl rollout resume 的详细示例。假设你有一个名为 my-deployment 的 Deployment,它运行的是 my-app:v1 的镜像。你想要把镜像更新为 my-app:v2,但是你希望在更新之前先暂停 Deployment,以便进行一些配置的修改。首先,用以下命令暂停 Deployment:kubectl rollout pause deployment/my-deployment
然后,你可以修改 Deployment 的配置。比如,你可以用以下命令更换镜像:kubectl set image deployment/my-deployment my-app=my-app:v2
此时,即使你修改了 Deployment 的配置,也不会触发新的滚动更新,因为 Deployment 正处于暂停状态。当你准备好进行更新时,你可以用以下命令恢复 Deployment:kubectl rollout resume deployment/my-deployment
恢复后,Deployment 控制器会开始新的滚动更新,使用你新设置的 my-app:v2 镜像。
资源调度 StatefulSet:定义一个有状态服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Kubernetes提供了StatefulSet来解决这个问题,其具体如下:StatefulSet给每个Pod提供固定名称,Pod名称增加从0-N的固定后缀,Pod重新调度后Pod名称和HostName不变。
StatefulSet通过Headless Service给每个Pod提供固定的访问域名。
StatefulSet通过创建固定标识的PVC保证Pod重新调度后还是能访问到相同的持久化数据。

在这里插入图片描述

headless service
PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 都是 Kubernetes 中用于管理存储的资源,但它们的角色和用途有所不同。PersistentVolume (PV) 是集群中的一部分存储,它被管理员提前配置好。这可以是节点内部的某个目录,如一个本地路径(在单节点的测试环境中常见),或者是某种网络存储,如 Google Compute Engine persistent disk,AWS Elastic Block Store volume,NFS mount,或者其他存储系统。PV 是集群资源,与 Pod 的生命周期无关,即使使用 PV 的 Pod 被删除,PV 也会保留其数据。PersistentVolumeClaim (PVC) 则是用户在 PV 中申请存储空间的请求。PVC 可以请求特定大小和访问模式的 PV。例如,用户可以请求一个大小为 10Gi 和 ReadWriteOnce 访问模式的 PV。Kubernetes 会寻找一个匹配的 PV 并将其绑定到 PVC。简单来说,PV 是代表集群中的实际存储空间,而 PVC 是 Pod 对这个存储空间的需求或请求。Statefulset的YAML定义与其他对象基本相同,主要有两个差异点:serviceName指定了Statefulset使用哪个Headless Service,需要填写Headless Service的名称。
volumeClaimTemplates是用来申请持久化声明PVC ,这里定义了一个名为data的模板,它会为每个Pod创建一个PVC,storageClassName指定了持久化存储的类型,在PV、PVC和StorageClass会详细介绍;volumeMounts是为Pod挂载存储。当然如果不需要存储的话可以删除volumeClaimTemplates和volumeMounts字段。
金丝雀发布

在这里插入图片描述
在这里插入图片描述

参考文档:https://support.huaweicloud.com/basics-cce/kubernetes_0015.html

这篇关于飞天使-k8s知识点20-kubernetes实操5-pod更新与暂停-statefulset的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/717171

相关文章

嵌入式软件工程师应聘知识点

嵌入式软件工程师应聘 修改浏览权限 | 删除 数据结构(C语言)部分常考的知识点: 1、局部变量能、全局变量和静态变量 2、堆和栈 3、Const、volatile、define、typedef的用途 4、链表(比如链表的插入、删除和排序) 5、排序(考查冒泡法的较多) 6、可重入函数 、malloc函数 7、指针(常考函数指针,函数指针,数组指针,指针数组和

20.Spring5注解介绍

1.配置组件 Configure Components 注解名称说明@Configuration把一个类作为一个loC容 器 ,它的某个方法头上如果注册7@Bean , 就会作为这个Spring容器中的Bean@ComponentScan在配置类上添加@ComponentScan注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <context:component-scan>@Sc

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

PAT-1039 到底买不买(20)(字符串的使用)

题目描述 小红想买些珠子做一串自己喜欢的珠串。卖珠子的摊主有很多串五颜六色的珠串,但是不肯把任何一串拆散了卖。于是小红要你帮忙判断一下,某串珠子里是否包含了全部自己想要的珠子?如果是,那么告诉她有多少多余的珠子;如果不是,那么告诉她缺了多少珠子。为方便起见,我们用[0-9]、[a-z]、[A-Z]范围内的字符来表示颜色。例如,YrR8RrY是小红想做的珠串;那么ppRYYGrrYBR2258可以

个人博客文章目录索引(持续更新中...)

文章目录 一、Java基础二、Java相关三、MySql基础四、Mybatis基础及源码五、MybatisPlus基础六、Spring基础及源码七、Tomcat源码八、SpringMVC基础及源码   随着文章数量多起来,每次着急翻找半天,而是新申请的域名下来了,决定整理下最近几年的文章目录索引。(红色标记为常检索文章) 一、Java基础 1、Java基础(一):语言概述2、J

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3、容器技术与虚拟机的比较 4、容器技术在云原生中的作用 二、Docker基础 1、Docker简介 2、Docker架构 3、Docker与工作原理 三、Kubernetes(k8s)基础 1、

HTML(20)——定位

定位 作用:灵活的改变盒子在网页中的位置 实现: 定位模式:position边偏移:设置盒子的位置 leftrighttopbottom 相对定位 position:relative 改变位置的参照物是自己原来的位置,并且不脱标占位,标签显示模式特点不变 绝对定位 position:absolute 使用场景:子级绝对定位,父级相对定位  脱标不占位参照物:先找最近的已经

C++20中的Feature Test Mocros

C++20定义了一组预处理器宏,用于测试各种语言和库的feature。       Feature Test Mocros(特性测试宏)是C++20中引入的一种强大机制,用于应对兼容性问题。Feature Test Mocros作为预处理器指令(preprocessor directives)出现,它使你能够在编译过程中仔细检查特定语言或库功能(particular language

ROS话题通信机制实操C++

ROS话题通信机制实操C++ 创建ROS工程发布方(二狗子)订阅方(翠花)编辑配置文件编译并执行注意订阅的第一条数据丢失 ROS话题通信的理论查阅ROS话题通信流程理论 在ROS话题通信机制实现中,ROS master 不需要实现,且连接的建立也已经被封装了,需要关注的关键点有三个: 发布方(二狗子)订阅方(翠花)数据(此处为普通文本) 创建ROS工程 创建一个ROS工程

Kubernetes排错(十)-处理容器数据磁盘被写满

容器数据磁盘被写满造成的危害: 不能创建 Pod (一直 ContainerCreating)不能删除 Pod (一直 Terminating)无法 exec 到容器 如何判断是否被写满? 容器数据目录大多会单独挂数据盘,路径一般是 /var/lib/docker,也可能是 /data/docker 或 /opt/docker,取决于节点被添加时的配置,可通过 docker info 确定: