部署服务的时候我们希望服务的更新对用户是无感知的,deployment提供了很
好的服务。
## 滚动升级
- 在`spec`下加入以下配置
~~~yaml
replicas: 2
minReadySeconds: 5
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
~~~
* minReadySeconds:
* Kubernetes在等待设置的时间后才进行升级
* 如果没有设置该值,Kubernetes会假设该容器启动起来后就提供服务了
* 如果没有设置该值,在某些极端情况下可能会造成服务服务正常运行
* maxSurge:
* 升级过程中最多可以比原先设置多出的POD数量
* 例如:maxSurage=1,replicas=5,则表示Kubernetes会先启动1一个新的Pod后才删掉一个旧的POD,整个升级过程中最多会有5+1个POD。
* maxUnavaible:
* 升级过程中最多有多少个POD处于无法提供服务的状态
* 当`maxSurge`不为0时,该值也不能为0
* 例如:maxUnavaible=1,则表示Kubernetes整个升级过程中最多会有1个POD处于无法服务的状态。
## 回滚
- 查看升级历史
~~~shell
kubectl rollout history deployment nginx-deploy
~~~
> 执行Deployment升级的时候最好带上`record`参数,可以方便查看历史信息
- 查看历史信息
~~~shell
kubectl rollout history deployment nginx-deploy --revision=3
~~~
- 回滚到指定版本
~~~shell
kubectl rollout undo deployment nginx-deploy --to-revision=2
~~~
- kubernetes基础
- 安装kubernetes
- kubeadm平滑升级群集
- Taint和Toleration
- 使用HostAliases向Pod /etc/hosts 文件添加条目
- ConfigMap
- 插件
- 支持外部dns
- 安装helm
- HPA
- 存储
- 本地存储
- 网络存储
- Secret
- ConfigMap
- QA
- k8s使用时需要注意的坑点
- 容器中的JVM资源该如何被安全的限制
- 项目实践
- eureka集群
- Traefik ingress服务发现与负载均衡
- etcd数据备份与恢复
- deployment滚动升级与回滚
- 监控
- prometheus operator初体验
- prometheus-operator监控
- metrics-server监控kubernetes资源
- weave scope可视化监控