--- title: 交付第一个应用 --- > 开始之前,请确认你已完成 KubeVela 的安装,参考 [安装指导文档](./install.mdx) 欢迎使用 KubeVela, 在该章节中你可以学习到使用 KubeVela 部署一个基础的应用。 ## 通过 CLI 部署应用 下面给出了一个经典的 OAM 应用定义,它包括了一个无状态服务组件和运维特征,三个部署策略和工作流步骤。此应用描述的含义是将一个服务部署到两个目标命名空间,并且在第一个目标部署完成后等待人工审核后部署到第二个目标,且在第二个目标时部署2个实例。 ```yaml apiVersion: core.oam.dev/v1beta1 kind: Application metadata: name: first-vela-app spec: components: - name: express-server type: webservice properties: image: crccheck/hello-world ports: - port: 8000 expose: true traits: - type: scaler properties: replicas: 1 policies: - name: target-default type: topology properties: # local 集群即 Kubevela 所在的集群 clusters: ["local"] namespace: "default" - name: target-prod type: topology properties: clusters: ["local"] # 此命名空间需要在应用部署前完成创建 namespace: "prod" - name: deploy-ha type: override properties: components: - type: webservice traits: - type: scaler properties: replicas: 2 workflow: steps: - name: deploy2default type: deploy properties: policies: ["target-default"] - name: manual-approval type: suspend - name: deploy2prod type: deploy properties: policies: ["target-prod", "deploy-ha"] ``` * 开始应用部署 ```bash # 此命令用于在管控集群创建命名空间 $ vela env init prod --namespace prod $ vela up -f https://kubevela.net/example/applications/first-app.yaml ``` > 需要注意的是需要你的部署环境可以正常获取 `crccheck/hello-world` 镜像 * 查看部署状态 ```bash $ vela status first-vela-app ``` 正常情况下应用完成第一个目标部署后进入暂停状态。 * 人工审核,批准应用进入第二个目标部署 ```bash $ vela workflow resume first-vela-app ``` * 通过下述方式来访问该应用 ```bash $ vela port-forward first-vela-app 8000:8000