版本:v1.3

交付第一个应用

开始之前,请确认你已完成 KubeVela 的安装,参考 安装指导文档

欢迎使用 KubeVela, 在该章节中你可以学习到使用 KubeVela 部署一个基础的应用。

下面给出了一个经典的 OAM 应用定义,它包括了一个无状态服务组件和运维特征,三个部署策略和工作流步骤。此应用描述的含义是将一个服务部署到两个目标命名空间,并且在第一个目标部署完成后等待人工审核后部署到第二个目标,且在第二个目标时部署2个实例。

  1. apiVersion: core.oam.dev/v1beta1
  2. kind: Application
  3. metadata:
  4. name: first-vela-app
  5. spec:
  6. components:
  7. - name: express-server
  8. type: webservice
  9. properties:
  10. image: oamdev/hello-world
  11. ports:
  12. - port: 8000
  13. expose: true
  14. traits:
  15. - type: scaler
  16. properties:
  17. replicas: 1
  18. policies:
  19. - name: target-default
  20. type: topology
  21. properties:
  22. # local 集群即 Kubevela 所在的集群
  23. clusters: ["local"]
  24. namespace: "default"
  25. - name: target-prod
  26. type: topology
  27. properties:
  28. clusters: ["local"]
  29. # 此命名空间需要在应用部署前完成创建
  30. namespace: "prod"
  31. - name: deploy-ha
  32. type: override
  33. properties:
  34. components:
  35. - type: webservice
  36. traits:
  37. - type: scaler
  38. properties:
  39. replicas: 2
  40. workflow:
  41. steps:
  42. - name: deploy2default
  43. type: deploy
  44. properties:
  45. policies: ["target-default"]
  46. - name: manual-approval
  47. type: suspend
  48. - name: deploy2prod
  49. type: deploy
  50. properties:
  51. policies: ["target-prod", "deploy-ha"]
  • 开始应用部署
  1. # 此命令用于在管控集群创建命名空间
  2. $ vela env init prod --namespace prod
  3. $ vela up -f https://kubevela.net/example/applications/first-app.yaml

需要注意的是需要你的部署环境可以正常获取 oamdev/hello-world 镜像

  • 查看部署状态
  1. $ vela status first-vela-app

正常情况下应用完成第一个目标部署后进入暂停状态。

  • 人工审核,批准应用进入第二个目标部署
  1. $ vela workflow resume first-vela-app
  • 通过下述方式来访问该应用
  1. $ vela port-forward first-vela-app 8000:8000
  2. <xmp>
  3. Hello World
  4. ## .
  5. ## ## ## ==
  6. ## ## ## ## ## ===
  7. /""""""""""""""""\___/ ===
  8. ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
  9. \______ o _,/
  10. \ \ _,'
  11. `'--.._\..--''
  12. </xmp>

到这里,你已完成了第一个应用的部署。

目前,通过 CLI 创建的应用会同步到 UI 进行可视化,但它是只读的。

登陆到 KubeVela UI 控制后,默认你将进入应用管理页面。点击页面右上方的 新建应用 按钮,输入应用基础信息:

  1. 应用名称、别名等基础信息;
  2. 选择一个应用所属项目,平台默认生成了 Default 项目,你可以根据需要创建新的项目;
  3. 选择主组件类型,这里我们选择默认的 webservice 类型。
  4. 选择部署环境,部署环境选项由不同的项目决定。

设置完应用基础信息后进入第二步,设置主组件的部署参数,我们需要设置的参数包括:

  • 镜像地址: oamdev/hello-world
  • 端口信息:将默认的 80 端口变更为 8080 端口。

create hello world app

确认创建后即可完成应用配置,控制台创建的应用默认会根据所选环境生成 工作流 和一个设置副本数的 运维特征

点击应用详情页右上方的 部署 按钮,选择指定环境的工作流即可开始部署应用。

交付第一个应用 - 图2

如果在你测试完成后需要删除该应用,操作方式如下:

  1. 进入应用环境页面,点击 回收 按钮完成所有环境的资源回收。
  2. 回到应用列表页面,点击卡片中的操作按钮,点击删除选项确认删除即可。

到此,你完成了 KubeVela 的初体验。

Last updated on 2022年11月1日 by Tianxin Dong