<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Rolling_Update_%E6%BB%9A%E5%8A%A8%E6%9B%B4%E6%96%B0</id>
	<title>Rolling Update 滚动更新 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Rolling_Update_%E6%BB%9A%E5%8A%A8%E6%9B%B4%E6%96%B0"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Rolling_Update_%E6%BB%9A%E5%8A%A8%E6%9B%B4%E6%96%B0&amp;action=history"/>
	<updated>2026-04-23T11:09:07Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Rolling_Update_%E6%BB%9A%E5%8A%A8%E6%9B%B4%E6%96%B0&amp;diff=944&amp;oldid=prev</id>
		<title>Evan：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Rolling_Update_%E6%BB%9A%E5%8A%A8%E6%9B%B4%E6%96%B0&amp;diff=944&amp;oldid=prev"/>
		<updated>2019-10-14T13:52:34Z</updated>

		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=更新=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
** 7.1 practice&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl  get deployment httpd -o wide &lt;br /&gt;
NAME    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd   2/3     3            2           68s   httpd        httpd:2.2.31   run=httpd&lt;br /&gt;
evan@k8s-master:~$ kubectl  get pod &lt;br /&gt;
\NAME                            READY   STATUS             RESTARTS   AGE&lt;br /&gt;
httpd-5ddb558f47-2pmhw          1/1     Running            0          78s&lt;br /&gt;
httpd-5ddb558f47-rwbhc          1/1     Running            0          78s&lt;br /&gt;
httpd-5ddb558f47-xtfb2          0/1     ImagePullBackOff   0          78s&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl  get pod &lt;br /&gt;
NAME                            READY   STATUS             RESTARTS   AGE&lt;br /&gt;
httpd-5ddb558f47-2pmhw          1/1     Running            0          12m&lt;br /&gt;
httpd-5ddb558f47-rwbhc          1/1     Running            0          12m&lt;br /&gt;
httpd-5ddb558f47-xtfb2          1/1     Running            0          12m&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl  get deployment httpd -o wide &lt;br /&gt;
NAME    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd   3/3     3            3           12m   httpd        httpd:2.2.31   run=httpd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl get replicaset -o wide &lt;br /&gt;
NAME               DESIRED   CURRENT   READY   AGE   CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd-5ddb558f47   3         3         3       13m   httpd        httpd:2.2.31   pod-template-hash=5ddb558f47,run=httpd&lt;br /&gt;
&lt;br /&gt;
将配置文件中 httpd:2.2.31 替换为 httpd:2.2.32，再次执行 kubectl apply&lt;br /&gt;
&lt;br /&gt;
 ----    ------             ----  ----                   -------&lt;br /&gt;
  Normal  ScalingReplicaSet  16m   deployment-controller  Scaled up replica set httpd-5ddb558f47 to 3&lt;br /&gt;
  Normal  ScalingReplicaSet  99s   deployment-controller  Scaled up replica set httpd-8bdffc6d8 to 1&lt;br /&gt;
  Normal  ScalingReplicaSet  99s   deployment-controller  Scaled down replica set httpd-5ddb558f47 to 2&lt;br /&gt;
  Normal  ScalingReplicaSet  98s   deployment-controller  Scaled up replica set httpd-8bdffc6d8 to 2&lt;br /&gt;
  Normal  ScalingReplicaSet  6s    deployment-controller  Scaled down replica set httpd-5ddb558f47 to 1&lt;br /&gt;
  Normal  ScalingReplicaSet  6s    deployment-controller  Scaled up replica set httpd-8bdffc6d8 to 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ----    ------             ----  ----                   -------&lt;br /&gt;
  Normal  ScalingReplicaSet  16m   deployment-controller  Scaled up replica set httpd-5ddb558f47 to 3&lt;br /&gt;
  Normal  ScalingReplicaSet  99s   deployment-controller  Scaled up replica set httpd-8bdffc6d8 to 1&lt;br /&gt;
  Normal  ScalingReplicaSet  99s   deployment-controller  Scaled down replica set httpd-5ddb558f47 to 2&lt;br /&gt;
  Normal  ScalingReplicaSet  98s   deployment-controller  Scaled up replica set httpd-8bdffc6d8 to 2&lt;br /&gt;
  Normal  ScalingReplicaSet  6s    deployment-controller  Scaled down replica set httpd-5ddb558f47 to 1&lt;br /&gt;
  Normal  ScalingReplicaSet  6s    deployment-controller  Scaled up replica set httpd-8bdffc6d8 to 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=回滚=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
** 7.2 回滚&lt;br /&gt;
ubectl apply 每次更新应用时 Kubernetes 都会记录下当前的配置，保存为一个 revision（版次），这样就可以回滚到某个特定 revision。&lt;br /&gt;
&lt;br /&gt;
默认配置下，Kubernetes 只会保留最近的几个 revision，可以在 Deployment 配置文件中通过 revisionHistoryLimit 属性增加 revision 数量。&lt;br /&gt;
&lt;br /&gt;
下面实践回滚功能。应用有如下三个配置文件 httpd.v1.yml，httpd.v2.yml 和 httpd.v3.yml，分别对应不同的 httpd 镜像 2.4.16，2.4.17 和 2.4.18：&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl  apply -f httpd.v1.yml --record &lt;br /&gt;
deployment.extensions/httpd created&lt;br /&gt;
evan@k8s-master:~$ kubectl  get deployment httpd -o wide &lt;br /&gt;
NAME    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd   0/3     3            0           3s    httpd        httpd:2.4.16   run=httpd&lt;br /&gt;
evan@k8s-master:~$ kubectl  apply -f httpd.v2.yml --record &lt;br /&gt;
deployment.extensions/httpd configured&lt;br /&gt;
evan@k8s-master:~$ kubectl  get deployment httpd -o wide &lt;br /&gt;
NAME    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd   0/3     2            0           30s   httpd        httpd:2.4.18   run=httpd&lt;br /&gt;
evan@k8s-master:~$ kubectl  apply -f httpd.v3.yml --record &lt;br /&gt;
deployment.extensions/httpd configured&lt;br /&gt;
evan@k8s-master:~$ kubectl  get deployment httpd -o wide &lt;br /&gt;
NAME    READY   UP-TO-DATE   AVAILABLE   AGE   CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd   0/3     2            0           39s   httpd        httpd:2.4.18   run=httpd&lt;br /&gt;
&lt;br /&gt;
--record 的作用是将当前命令记录到 revision 记录中，这样我们就可以知道每个 revison 对应的是哪个配置文件。通过 kubectl rollout history deployment httpd 查看 revison 历史记录&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl rollout history deployment httpd&lt;br /&gt;
deployment.extensions/httpd &lt;br /&gt;
REVISION  CHANGE-CAUSE&lt;br /&gt;
1         kubectl apply --filename=httpd.v1.yml --record=true&lt;br /&gt;
2         kubectl apply --filename=httpd.v3.yml --record=true&lt;br /&gt;
3         kubectl apply --filename=httpd.v2.yml --record=true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl  get deployment httpd -o wide &lt;br /&gt;
NAME    READY   UP-TO-DATE   AVAILABLE   AGE    CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd   2/3     2            2           3m9s   httpd        httpd:2.4.17   run=httpd&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl rollout undo deployment httpd --to-revision=1&lt;br /&gt;
deployment.extensions/httpd rolled back&lt;br /&gt;
evan@k8s-master:~$ kubectl  get deployment httpd -o wide &lt;br /&gt;
NAME    READY   UP-TO-DATE   AVAILABLE   AGE     CONTAINERS   IMAGES         SELECTOR&lt;br /&gt;
httpd   2/3     3            2           3m36s   httpd        httpd:2.4.16   run=httpd&lt;br /&gt;
&lt;br /&gt;
evan@k8s-master:~$ kubectl rollout history deployment httpd&lt;br /&gt;
deployment.extensions/httpd &lt;br /&gt;
REVISION  CHANGE-CAUSE&lt;br /&gt;
2         kubectl apply --filename=httpd.v3.yml --record=true&lt;br /&gt;
3         kubectl apply --filename=httpd.v2.yml --record=true&lt;br /&gt;
4         kubectl apply --filename=httpd.v1.yml --record=true&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=see also=&lt;br /&gt;
https://www.cnblogs.com/CloudMan6/p/8543006.html&lt;br /&gt;
&lt;br /&gt;
https://www.cnblogs.com/CloudMan6/p/8553331.html&lt;br /&gt;
&lt;br /&gt;
[[category:k8s]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>