部署服务的时候我们希望服务的更新对用户是无感知的,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可视化监控
 
