交付第一个应用

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

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

通过 CLI 部署应用

下面给出了一个经典的 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 进行可视化,但它是只读的。

通过 UI 部署应用

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

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

设置部署参数

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

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

create hello world app

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

执行工作流部署应用

点击应用详情页右上方的 部署 按钮,选择指定环境的工作流即可开始部署应用,开始部署后可以切换到环境视图下打开应用资源拓扑图观测资源状态。

first-app-graph

删除应用

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

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

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

下一步