Kubernetes滚动更新

GA666666 2023-02-21 AM 67℃ 1条

Deployment对象可以定义一个副本集(ReplicaSet),并且支持滚动更新。具体来说,滚动更新会先在新的ReplicaSet中启动一些Pod,然后逐步停止旧的ReplicaSet中的Pod,直到所有的Pod都被更新完成。

以下是一个示例Deployment配置文件:

apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp-deployment
spec:
replicas: 3
selector:

matchLabels:
  app: myapp

template:

metadata:
  labels:
    app: myapp
spec:
  containers:
  - name: myapp
    image: myapp:v1
    ports:
    - containerPort: 80

strategy:

type: RollingUpdate
rollingUpdate:
  maxUnavailable: 1
  maxSurge: 1

在这个示例中,spec.replicas指定了要启动的Pod的数量,spec.selector指定了要选择的Pod的标签,spec.template定义了要创建的Pod的配置,spec.strategy指定了滚动更新的策略。

spec.strategy.type指定了滚动更新的类型,这里使用了RollingUpdate类型。spec.strategy.rollingUpdate.maxUnavailable指定了在滚动更新期间最多可以停止的Pod的数量,spec.strategy.rollingUpdate.maxSurge指定了在滚动更新期间最多可以启动的Pod的数量。这两个参数的值可以根据实际情况进行调整。

当您需要进行滚动更新时,只需要更新Deployment配置文件中的spec.template部分即可。Kubernetes将自动根据您的配置进行滚动更新。

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~



唉呀 ~ 仅有一条评论


  1. 云原生 - GA666666 Blog ~ 个人博客
    云原生 - GA666666 Blog ~ 个人博客

    [...]Kubernetes 概念 Kubernetes(v1.21)工作负载 Kubernetes(v1.21)配置和存储Kubernetes(v1.21)网络Kubernetes(v1.21)调度原理Kubernetes(v1.21)安全K8s - Ingress 限流K8s-Pod重启策略Kubernetes滚动更新解决Mac/Windows版Desktop Docker中自带的K8s无法访问pod[...]

    回复 2024-02-21 11:07