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: nginx
 labels:
   app: nginx
spec: 
  ports:
   - port: 80
     name: web
  clusterIP: None
  selector: 
     app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata: 
  name: web
spec: 
  serviceName: nginx
  replicas: 2
  selector: 
    matchLabels:
     app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec: 
      containers:
        - name: nginx
          image: nginx
          ports: 
           - containerPort: 80
             name: web
          volumeMounts:
           - name: www
             mountPath: /usr/share/nginx/html

  volumeClaimTemplates:
         - metadata: 
            name: www
           spec: 
             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)

 

相关推荐

  1. K8s: 控制器之StatefulSets对象

    2024-04-29 07:52:02       10 阅读
  2. k8s笔记 | StatefulSet 有状态

    2024-04-29 07:52:02       12 阅读
  3. K8S 哲学 - yaml文件

    2024-04-29 07:52:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-29 07:52:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-29 07:52:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-29 07:52:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-29 07:52:02       20 阅读

热门阅读

  1. am62x linux sdk环境搭建

    2024-04-29 07:52:02       11 阅读
  2. Docker安装Elasticsearch

    2024-04-29 07:52:02       17 阅读
  3. Rust特征

    2024-04-29 07:52:02       14 阅读
  4. 行列视平台的应用

    2024-04-29 07:52:02       14 阅读
  5. 微信小程序常用的api

    2024-04-29 07:52:02       15 阅读
  6. CMUS狮身人面像(四)-构建语言模型

    2024-04-29 07:52:02       11 阅读
  7. python 贪吃蛇

    2024-04-29 07:52:02       11 阅读