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: 应用部署计划
|
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` 这样陌生的字段。
|
在 `Sepc` 字段里,我们也看到比如 `components` 和 `traits` 这样陌生的字段。
|
||||||
|
|
||||||
在下一章节中,我们将带你进一步深入它们背后 KubeVlea 的核心概念:应用程序、组件系统和特征系统。
|
在下一章节中,我们将带你进一步深入它们背后 KubeVela 的核心概念:应用程序、组件系统和运维特征系统。
|
||||||
|
|
||||||
同时,在底层的 K8s 资源也被创建了出来:
|
同时,在底层的 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',
|
'end-user/initializer-end-user',
|
||||||
{
|
{
|
||||||
'Components': [
|
'Components': [
|
||||||
|
'end-user/components/cue',
|
||||||
'end-user/components/helm',
|
'end-user/components/helm',
|
||||||
'end-user/components/kustomize',
|
'end-user/components/kustomize',
|
||||||
{
|
{
|
||||||
|
|
@ -69,6 +70,7 @@ module.exports = {
|
||||||
'end-user/traits/annotations-and-labels',
|
'end-user/traits/annotations-and-labels',
|
||||||
'end-user/traits/sidecar',
|
'end-user/traits/sidecar',
|
||||||
'end-user/traits/metrics',
|
'end-user/traits/metrics',
|
||||||
|
'end-user/traits/rollout',
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue