我正努力在库伯内特斯部署一个码头形象。第一次部署容器时,我使用了:
kubectl apply -f <deployment_file>.yaml容器被成功地部署在一个吊舱里。
另外,deployment_file看起来也是这样的:
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: publisher
spec:
replicas: 2
strategy:
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
minReadySeconds: 300
progressDeadlineSeconds: 900
template:
metadata:
labels:
app: publisher
spec:
containers:
- name: publisher
image: 123dev.azurecr.io/publisher:{{ci-build-number}}
env:
- name: ENVIRONMENT
value: "dev"
ports:
- containerPort: 8080我在上面的yaml文件中定义了'progressDeadlineSeconds‘属性。
为了跟踪部署,我使用了:
kubectl rollout status deployment.v1beta1.apps/publisher现在,如果我想用新映像更新容器,我可以再次重用命令
kubectl apply -f <deployment_file>.yaml若要应用更新,请执行以下操作。
但是,如果由于某种原因应用更新失败(假设码头映像已损坏),是否有一种方法在- pods状态未设置为“运行”或执行时间跨越“pregressDeadlineSecond”时自动触发回滚到以前的修订?
到目前为止,我还没有找到自动执行回滚的方法。我很感激你的想法。
发布于 2020-01-02 15:12:15
在使用kubectl apply命令之后,您可以检查部署是否成功推出,然后,如果有必要,kubectl rollout undo命令可以回滚到以前的版本。此外,您还可以使用sleep Linux命令在此之前等待一段时间。
在Linux上:
sleep 900 && \
if [[ $(timeout 5 kubectl rollout status -f <deployment_file>.yaml) != *"successfully rolled out"* ]]; then
kubectl rollout undo -f <deployment_file>.yaml
fi > /dev/null 2>&1 &如果timeout 5在5秒后被卡住,则kubectl rollout status将停止。
> /dev/null 2>&1 &在后台运行命令,没有终端输出。
发布于 2019-05-24 12:02:41
按照以下步骤操作。
1. append the --record param to deployment, as shown below
kubectl apply -f <deployment_file>.yaml --record
2. kubectl rollout history deploy <deployment-name> to check deployment history. for example,
kubectl rollout history deploy mynginx
deployments "mynginx"
REVISION CHANGE-CAUSE
3 kubectl set image deploy mynginx mynginx=nginx:1.12.2
4 kubectl set image deploy mynginx mynginx=nginx:1.13.8
3. you can rollback to previous version using revision, say to revision 3
kubectl rollout undo deploy mynginx --to-revision=3发布于 2021-10-19 12:50:30
以下是我撤销部署的展开所遵循的步骤
这里,客户端是部署的名称。
步骤1要获取特定部署的历史记录,请使用以下命令
kubectl rollout history deploy client-depl在此之后,您将得到这样的输出。
因此,假设我希望将部署部署到修订1,然后使用以下命令
$ kubectl rollout undo deploy client-depl --to-revision=1在此之后,您将得到如下输出
祝贺您成功地将部署推出到以前的版本。如有任何疑问,请回复将乐意帮助您。
https://stackoverflow.com/questions/56291964
复制相似问题