如何解决我可以查看更多详细信息吗?
我当时在网站killer.sh上进行了一次实践考试,遇到一个问题,我觉得我对此做了一个拙劣的解决方案。如果部署的部署不正确,请恢复到没有任何问题的 最后 版本。如果我检查部署的推出历史记录,例如,使用以下命令:
kubectl rollout history deployment mydep
我得到一个带有版本号和“更改原因”命令的小表。有什么方法可以检查对部署的yaml文件所做的更改以获取特定版本吗?因为我很困惑,无法确定哪个特定修订版没有错误。
解决方法
Deployment
在幕后创建了一个ReplicaSet
,其metadata.generation
设置为您在REVISION
中看到的kubectl rollout history deployment mydep
,因此您可以查看和与ReplicaSet
关联的旧Deployment
。
另一方面,作为最终一致的系统,kubernetes没有“好”或“坏”状态的概念,因此,例如,它不知道最后成功的部署是什么。这就是为什么存在诸如helm
,kapp
等部署工具的原因。
由于kubernetes不是版本控制系统,因此Kubernetes所存储的内容不超过其操作所需的存储量,并且在大多数情况下只是所需状态。
这就是为什么需要使用版本控制系统以及诸如helm或kustomize之类的工具来存储部署Yaml并将其应用到具有新版本软件的群集中的原因。这有助于追溯历史,以便在发生问题时挖掘出细节。
,您可以使用--record选项记录最后执行的更改了部署的命令。使用--record时,您会看到部署元数据.annotations上一次执行的命令(更改原因)。您不会在本地yaml文件中看到此消息,但是当您尝试将部署导出为yaml时,您会注意到更改。
-如下记录选项
kubectl create deployment <deployment name> --image=<someimage> > testdelpoyment.yaml
kubectl create -f testdeployment.yaml --record
or
kubectl set image deployment/<deploymentname> imagename=newimagename:newversion --record
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。