为什么要在Kubernetes中设置部署的修订版?

时间:2018-11-06 13:20:40

标签: kubernetes

在书Kubernetes: Up & Running的“创建部署”部分中,它具有一个yaml文件,该文件用于这样开始的部署:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations: 
    deployment.kubernetes.io/revision: "1"

设置deployment.kubernetes.io/revision: "1"有什么意义?

这是一个将要应用的文件,而不是查询服务器的结果。

2 个答案:

答案 0 :(得分:4)

此注释由Kubernetes设置。部署时需要识别出它们各自的Replicaset。

好,让我解释一下。部署将创建Replicaset。此Replicaset负责创建Pod。

无论何时,只要在部署的podTemplate中进行了一些更改,它都会创建一个新的副本集。但是它不会删除旧的副本集,因为如果您想回滚到以前的版本,则很有必要。

现在,部署如何知道当前正在使用哪个副本集?这里是deployment.kubernetes.io/revision:批注。复制副本也包含此注释。因此,部署人员可以通过将其批注的修订版号与副本集的批注的修订版号进行匹配来知道正在使用哪个副本集。

您可以阅读这篇不错的文章以了解更多信息:How Kubernetes Deployments Work

要了解如何将部署回滚到以前的版本,请参阅here

答案 1 :(得分:0)

当我看到inside the book时,我看到您引用的文本显示为命令kubectl get deployments kuard -- export -o yaml的输出:

excerpt from book

因此,您所问的前提是错误的-这是由于查询服务器所致。

您的更广泛的假设是正确的:这不是您要在原始资源中创建Deployment的内容。