Merge pull request #145 from BinaryHB0916/add-core-concerps-application
adding core concerpts of application
This commit is contained in:
commit
2185340b5c
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Cue Component
|
||||
---
|
||||
|
||||
TBD
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Rollout
|
||||
---
|
||||
|
||||
TBD
|
||||
|
|
@ -2,3 +2,102 @@
|
|||
title: 应用部署计划
|
||||
---
|
||||
|
||||
KubeVela 将 Application 应用程序作为建模的基础,使用 Components 组件和 Traits 运维特征,完成一整套的应用部署计划。在熟悉这些核心概念后,你可以根据需求,对应按照 [用户手册](../end-user/initializer-end-user) 和 [管理员手册](../platform-engineers/advanced-install.mdx) 进行开发。
|
||||
|
||||
### Application 应用程序
|
||||
|
||||
在技术建模中,YAML 文件是应用部署计划的承载。一个典型的 YAML 样例如下:
|
||||
```
|
||||
# sample.yaml
|
||||
apiVersion: core.oam.dev/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
name: website
|
||||
spec:
|
||||
components:
|
||||
- name: frontend # This is the component I want to deploy
|
||||
type: webservice
|
||||
properties:
|
||||
image: nginx
|
||||
traits:
|
||||
- type: cpuscaler # Automatically scale the component by CPU usage after deployed
|
||||
properties:
|
||||
min: 1
|
||||
max: 10
|
||||
cpuPercent: 60
|
||||
- type: sidecar # Inject a fluentd sidecar before applying the component to runtime cluster
|
||||
properties:
|
||||
name: "sidecar-test"
|
||||
image: "fluentd"
|
||||
- name: backend
|
||||
type: worker
|
||||
properties:
|
||||
image: busybox
|
||||
cmd:
|
||||
- sleep
|
||||
- '1000'
|
||||
```
|
||||
这里的字段对应着:
|
||||
|
||||
- `apiVersion`:所使用的 OAM API 版本。
|
||||
- `kind`:种类。我们最经常用到的就是 Pod 了。
|
||||
- `metadata`:业务相关信息。比如这次要创建的是一个网站。
|
||||
- `Spec`:描述我们需要应用去交付什么,告诉 Kubernetes 做成什么样。这里我们放入 KubeVela 的 `components`。
|
||||
- `components`:KubeVela 的组件系统。
|
||||
- `traits`:KubeVela 的运维特征系统。
|
||||
|
||||
下面这张示意图诠释了它们之间的关系:
|
||||

|
||||
|
||||
先有一个应用程序 Application。在此基础之上我们申明应用主体为可配置、可部署的组件 Components,并同时对应地去申明,期望每个组件要拥有的相关运维特征 Traits。
|
||||
|
||||
你使用 KubeVela 的时候,就像在玩“乐高“积木:先拿起一块大的“应用程序”,然后往上固定一块或几块“组件”,组件上又可以贴上任何颜色大小的“运维特征”。同时根据需求的变化,你随时可以重新组装,形成新的应用部署计划。
|
||||
|
||||
### Components 组件
|
||||
|
||||
KubeVela 内置了常用的组件类型,使用 [KubeVela CLI](../getting-started/quick-install.mdx##3) 命令查看:
|
||||
```
|
||||
vela components
|
||||
```
|
||||
返回结果:
|
||||
```
|
||||
NAME NAMESPACE WORKLOAD DESCRIPTION
|
||||
alibaba-rds default configurations.terraform.core.oam.dev Terraform configuration for Alibaba Cloud RDS object
|
||||
task vela-system jobs.batch Describes jobs that run code or a script to completion.
|
||||
webservice vela-system deployments.apps Describes long-running, scalable, containerized services
|
||||
that have a stable network endpoint to receive external
|
||||
network traffic from customers.
|
||||
worker vela-system deployments.apps Describes long-running, scalable, containerized services
|
||||
that running at backend. They do NOT have network endpoint
|
||||
to receive external network traffic.
|
||||
|
||||
```
|
||||
|
||||
作为用户的你,可以继续使用 [CUE 组件](../end-user/components/cue)、[Helm 组件](../end-user/components/helm)、[Kustomize 组件](../end-user/components/kustomize)和[云服务组件](../end-user/components/cloud-services/terraform/rds)来实现你需要的任何组件类型。
|
||||
|
||||
同时作为管理员的你,也可以使用 [自定义组件](../platform-engineers/components/component-cue)、[Terraform 组件](../platform-engineers/components/component-terraform) 来自定义你的用户所需要的任何组件类型。
|
||||
|
||||
### Traits 运维特征
|
||||
|
||||
KubeVela 也内置了常用的运维特征类型,使用 [KubeVela CLI](../getting-started/quick-install.mdx##3) 命令查看:
|
||||
```
|
||||
vela traits
|
||||
```
|
||||
返回结果:
|
||||
```
|
||||
NAME NAMESPACE APPLIES-TO CONFLICTS-WITH POD-DISRUPTIVE DESCRIPTION
|
||||
annotations vela-system deployments.apps true Add annotations for your Workload.
|
||||
cpuscaler vela-system webservice,worker false Automatically scale the component based on CPU usage.
|
||||
ingress vela-system webservice,worker false Enable public web traffic for the component.
|
||||
labels vela-system deployments.apps true Add labels for your Workload.
|
||||
scaler vela-system webservice,worker false Manually scale the component.
|
||||
sidecar vela-system deployments.apps true Inject a sidecar container to the component.
|
||||
```
|
||||
|
||||
作为用户的你,可以继续阅读用户手册里的 [挂载运维特征](../end-user/traits/ingress) ,具体查看如何完成各种运维特征的开发。
|
||||
|
||||
同时作为管理员的你,也可以继续使用 [自定义运维特征](../platform-engineers/traits/trait) 为你的用户,自定义任何需要的运维特征类型。
|
||||
|
||||
## 下一步
|
||||
|
||||
在理解了应用部署计划这套核心概念后,你可以进一步阅读关于 Workflow 交付工作流的概念。
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Cue 组件
|
||||
---
|
||||
|
||||
TBD
|
||||
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
title: 默认组件
|
||||
---
|
||||
|
||||
TBD
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: 滚动更新
|
||||
---
|
||||
|
||||
TBD
|
||||
|
|
@ -54,7 +54,7 @@ status:
|
|||
|
||||
在 `Sepc` 字段里,我们也看到比如 `components` 和 `traits` 这样陌生的字段。
|
||||
|
||||
在下一章节中,我们将带你进一步深入它们背后 KubeVlea 的核心概念:应用程序、组件系统和特征系统。
|
||||
在下一章节中,我们将带你进一步深入它们背后 KubeVela 的核心概念:应用程序、组件系统和运维特征系统。
|
||||
|
||||
同时,在底层的 K8s 资源也被创建了出来:
|
||||
|
||||
|
|
@ -91,7 +91,7 @@ Hello World
|
|||
```
|
||||
**太棒了!** 你已经全都部署成功了。
|
||||
|
||||
也就是说 KubeVlea 的应用交付,围绕 Application、Components 和 Traits 这三个核心概念展开。
|
||||
也就是说 KubeVlea 的应用交付,围绕应用程序、组件系统和运维特征系统这一整套应用部署计划的核心概念展开,同时通过 Workflow 工作流、CUE 粘合开源生态等进行场景和能力的按需扩展,达成跨云、标准和统一的交付目标。
|
||||
|
||||
## 下一步
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ module.exports = {
|
|||
'end-user/initializer-end-user',
|
||||
{
|
||||
'Components': [
|
||||
'end-user/components/cue',
|
||||
'end-user/components/helm',
|
||||
'end-user/components/kustomize',
|
||||
{
|
||||
|
|
@ -69,6 +70,7 @@ module.exports = {
|
|||
'end-user/traits/annotations-and-labels',
|
||||
'end-user/traits/sidecar',
|
||||
'end-user/traits/metrics',
|
||||
'end-user/traits/rollout',
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue