kubernetes - 使用 Kubernetes 进行零停机部署
问题描述
我正在尝试使用 Kubernetes 实现零停机部署。我读到的是,我们readiness-probe
可以RollingUpdate
为Deployments
. 我已经在我的文件中尝试了这两件事,Deployment.yml
但是每次我遇到停机时间时,我都想避免这种情况。该服务是基于 HTTP 的服务,因此我使用了HTTP-Get
探针。
我正在使用Helm 图表进行部署。我正在通过重新部署相同的代码和相同的 K8s 配置来测试 0 停机时间。
下面给出的是 YAML 文件。
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: depName
labels:
app: appName
chart: chart
release: relName
heritage: relService
spec:
selector:
matchLabels:
app: appName
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 0
maxSurge: 1
template:
metadata:
labels:
app: appName
spec:
containers:
- name: chartName
resources:
limits:
cpu: 2000m
requests:
cpu: 1000m
image: "repsitoryImage:tag"
imagePullPolicy: always
env:
- name: GET_HOSTS_FROM
value: dns
- name: SOME_OTHER_VAR
value: yasssd
ports:
- containerPort: internalPort
name: someName
readinessProbe:
httpGet:
path: /config
port: 8080
initialDelaySeconds: 15
periodSeconds: 15
successThreshold: 1
除此之外,我还配置了 HPA。我希望停机时间为零——这是我无法实现的。
提前致谢 !
解决方案
推荐阅读
- mysql - 我的不和谐机器人上的数据库(Discord.js + mysql)
- sql - 您可以使用连接来创建包含缺失值的表吗?
- android - 当应用程序关闭或手机处于打盹模式时在android中执行后台任务
- snowflake-cloud-data-platform - 相同的同时查询和缓存
- c++ - 如何使用 LLVM/Clang 插入模板特化?
- unity3d - 在不加入频道的情况下在 Unity 中播放音频效果?
- swift - 如何使不同 DynamoDB 表中的数据相互关联?
- hasura - 如何在 Hasura 中建立朋友关系
- entity-framework - 带有 EF Core 和 CosmosDB 的 ASP.Net Core - IdentityRole 问题
- jsf - 当我不使用任何 JSF 命令组件来调用发送方法时,PushContext 不会向打开的套接字发送任何内容