暂停和继续

    在 KubeVela 中,你可以选择使用 命令来手动暂停工作流的执行,也可以使用一个内置的特殊步骤类型 suspend 使工作流自动进入暂停状态。

    如果你有一个正在运行的应用,并且你希望暂停它的执行,你可以使用 vela workflow suspend 来暂停该工作流。

    部署如下例子:

    1. apiVersion: core.oam.dev/v1beta1
    2. kind: Application
    3. metadata:
    4. name: suspend
    5. namespace: default
    6. spec:
    7. components:
    8. - name: comp1
    9. type: webservice
    10. properties:
    11. image: crccheck/hello-world
    12. port: 8000
    13. - name: comp2
    14. type: webservice
    15. properties:
    16. image: crccheck/hello-world
    17. port: 8000
    18. workflow:
    19. steps:
    20. - name: apply1
    21. properties:
    22. component: comp1
    23. - name: suspend
    24. type: suspend
    25. - name: apply2
    26. properties:
    27. component: comp2

    使用 vela status 命令查看应用状态:

    继续工作流

    当工作流进入暂停状态后,你可以使用 vela workflow resume 命令来手动继续工作流。workflow resume 命令会把工作流从暂停状态恢复到执行状态。

    以上面处于暂停状态的应用为例:

    1. $ vela workflow resume suspend
    2. Successfully resume workflow: suspend

    成功继续工作流后,查看应用的状态:

    可以看到,工作流已经继续执行完毕。

    1. $ vela workflow terminate my-app
    2. Successfully terminate workflow: my-app

    如果你希望经过了一段时间后,工作流能够自动被继续。那么,你可以在 suspend 步骤中加上 duration 参数。当 duration 时间超过后,工作流将自动继续执行。

    部署如下例子:

    查看应用状态:

    1. $ vela status auto-resume
    2. About:
    3. Name: auto-resume
    4. Namespace: default
    5. Created at: 2022-06-27 17:57:35 +0800 CST
    6. Status: running
    7. Workflow:
    8. mode: StepByStep
    9. finished: true
    10. Suspend: false
    11. Terminated: false
    12. Steps
    13. type:apply-component
    14. phase:succeeded
    15. message:
    16. - id:3xgfcp3cuj
    17. name:suspend
    18. type:suspend
    19. phase:succeeded
    20. message:
    21. - id:zjux8ud876
    22. name:apply2
    23. type:apply-component
    24. phase:succeeded
    25. message:
    26. Services:
    27. - Name: comp2
    28. Cluster: local Namespace: default
    29. Type: webservice
    30. Healthy Ready:1/1
    31. No trait applied
    32. - Name: comp1
    33. Cluster: local Namespace: default
    34. Type: webservice
    35. Healthy Ready:1/1

    可以看到,suspend 步骤在五秒后自动执行成功,继续了工作流。