9.2.1 运行第一个版本的应用

创建 v1 版本的应用

返回 hostname 的 web 应用.

使用单个 YAML 文件运行应用并通过 Service 暴露

  • --- 分隔多个对象
  • ReplicationController
  • LoadBalancer

image.png

image.png

9.2.2 使用 kubectl 来执行滚动式升级

创建 v2 版本应用, 返回 “This is v2”.

  • imagePullPolicy: Always

image.png

image.png

查看新 ReplicationController 描述:

image.png
image.png

了解滚动升级前 kubectl 所执行的操作

  • kubectl 复制原 ReplicationController 并在其 pod 模板中改变镜像版本
    • 标签选择器, deployment
    • 原 ReplicationController 所管理的 pod 标签选择器和 pod 的标签也会被修改

image.png

image.png

图示:

image.png

就是说新旧 pod 被打上的标签包括 app, deployment, 并通过 deployment 标签表示新旧 pod.

通过伸缩两个 ReplicationController 将旧 pod 替换成新 pod

kubectl 输出:

image.png

观察返回结果:

image.png

image.png

最后结果:

image.png

9.2.3 为什么 kubectl rolling-update 已经过时

  • 会修改 pod 和 ReplicationController 的标签
  • kubectl 负责执行滚动升级 (会出现问题)
  • 手动对 pod 的数量进行维护 (违反声明式)