在 Kubernetes (k8s) 中,版本回滚通常指的是将 Deployment、DaemonSet 或 StatefulSet 等资源回滚到之前的版本。Kubernetes 通过记录资源的修订历史(revision history)来支持回滚操作。以下是回滚操作的步骤:
1. 查看历史版本
首先,你需要查看资源的修订历史,确定要回滚到的版本。
kubectl rollout history deployment/<deployment-name>
这将列出该 Deployment 的所有修订版本。例如:
REVISION CHANGE-CAUSE
1 <none>
2 kubectl set image deployment/<deployment-name> <container-name>=<new-image>
3 kubectl set image deployment/<deployment-name> <container-name>=<new-image>
2. 查看特定版本的详细信息
如果你想查看某个特定版本的详细信息,可以使用以下命令:
kubectl rollout history deployment/<deployment-name> --revision=<revision-number>
例如:
kubectl rollout history deployment/my-app --revision=2
3. 回滚到上一个版本
如果你想回滚到上一个版本,可以使用以下命令:
kubectl rollout undo deployment/<deployment-name>
4. 回滚到特定版本
如果你想回滚到某个特定的版本,可以使用以下命令:
kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number>
例如,回滚到版本 2:
kubectl rollout undo deployment/my-app --to-revision=2
5. 验证回滚
回滚完成后,你可以通过以下命令查看 Deployment 的状态,确保回滚成功:
kubectl rollout status deployment/<deployment-name>
你也可以通过以下命令查看 Pod 的状态:
kubectl get pods
6. 查看回滚后的资源状态
你可以通过以下命令查看 Deployment 的详细信息,确认回滚后的资源配置:
kubectl describe deployment/<deployment-name>
注意事项
- 修订历史保留策略:Kubernetes 默认会保留 10 个修订历史。你可以通过
spec.revisionHistoryLimit
字段来调整这个值。 - 回滚的影响:回滚操作会触发 Pod 的重新创建,因此可能会导致服务短暂中断。
通过以上步骤,你可以轻松地在 Kubernetes 中回滚到之前的版本。
标签:kubectl,回滚,版本,deployment,rollout,k8s,revision From: https://www.cnblogs.com/ydswin/p/18639283