K8S哲学 - statefulSet 灰度发布

2024-04-29 13:04

本文主要是介绍K8S哲学 - statefulSet 灰度发布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

kubectl  get

   - 获取资源及配置文件   kubectl get  resource 【resourceName  -o=yaml】 

 kubectl  create  

   - 指定镜像创建或者 指定文件创建

       kubectl create  resource  【resourceName】 --image=myImage 【-f my.yaml】

 kubectl  delete

 kubectl describe resource resourceName

 kubectl  rollout histroy resource resourceName 【--revision 版本、修订】

 kubectl rollout  pause/resume resource resourceName

 kubectl edit  resource resourceName

 kubectl set property   resource resourceName value=myVAalue

 kubectl scale  resource resourceName  --replicas=num

创建 statefulSet    kind: StatefulSet

statusfulSet.yaml

---
apiVersion: v1
kind: Service
metadata:name: nginxlabels:app: nginx
spec: ports:- port: 80name: webclusterIP: Noneselector: app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata: name: web
spec: serviceName: nginxreplicas: 2selector: matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec: containers:- name: nginximage: nginxports: - containerPort: 80name: webvolumeMounts:- name: wwwmountPath: /usr/share/nginx/htmlvolumeClaimTemplates:- metadata: name: wwwspec: accessModes: ['ReadWriteOnce']resources:requests:storage: 500Mi 

statefulSet  的 pod 的 dns 的命名方式:

statefulSetName-[0、1、2 ......]-namespace-svc.cluster.local

 扩容和缩容

kubectl scale sts  statefulSetName  --replicas=num

 镜像更新

1、通过set

kubectl set image sts/web  nginx=nginx:1.25.5

 2、通过 patch

3、更新模式

   -、 rollingUpdate (default)

利用 partition (分区) 实现 灰度发布 (金丝雀发布)

修改 partition 的值为想要的 更新范围 , 目前为 3

当前 5个 pod ng 版本为 1.25.5

修改 sts web 的 image 为 nginx

再次查看  web-0 web-1 web-2 的 依旧为 ng:1.25.5

但是 web-3 web-4 已改为 nginx

后续进一步 扩大发布范围 继续修改  partition的值 即可   2 -1 -0

k8s 的 partition 只和当前的配置文件的内容有关联、现在 image: nginx 如果修改 partition: 0
 那么所有的 pod 的 image 都会变成 image: nginx
    -、onDelete 
updateStrategy:type: onDelete

修改后不会有任何变化

只有 删除 pod 时  k8s 会立即 创建一个新的 pod ,pod配置为 修改后的  配置

目前 pod  image 都是 nginx

修改为

nginx:1.25.5

updateStrategy: OnDelete

删除前查看 web-1 

删除后查看 web-1

是否级联删除

当删除 父级资源 时默认会删除 子级资源

deployment -> pod

statefulSet - > pod

--cascsde = true(default)

 

这篇关于K8S哲学 - statefulSet 灰度发布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Maven 依赖发布与仓库治理的过程解析

《Maven依赖发布与仓库治理的过程解析》:本文主要介绍Maven依赖发布与仓库治理的过程解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录Maven 依赖发布与仓库治理引言第一章:distributionManagement配置的工程化实践1

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加