kubevela.github.io/i18n/zh/docusaurus-plugin-content-docs/version-v1.4/end-user/components/references.md

395 lines
18 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: 内置组件列表
---
本文档将展示所有内置组件的参数列表。
## Webservice
### 描述
定义一个长期运行的,可伸缩的容器化的服务,并且会暴露一个服务端点用来接受来自客户的外部流量。
### 参数定义
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
cmd | 容器的启动命令 | []string | false |
env | 容器中的环境变量 | [[]env](#env) | false |
volumeMounts | | [volumeMounts](#volumemounts) | false |
labels | 工作负载的标签 | map[string]string | false |
annotations | 工作负载的注解 | map[string]string | false |
image | 使用的镜像 | string | true |
ports | 承接用户流量的端口,默认 80 | [[]ports](#ports) | false |
imagePullPolicy | 镜像拉取策略,可选值为("Always""Never" 或者 "IfNotPresent"| string | false |
cpu | CPU 核数 `0.5` (0.5 CPU 核), `1` (1 CPU 核) | string | false |
memory | 所需要的内存大小 | string | false |
livenessProbe | 判断容器是否存活的探针 | [livenessProbe](#livenessprobe) | false |
readinessProbe | 判断容器是否就绪,能够接受用户流量的探针 | [readinessProbe](#readinessprobe) | false |
imagePullSecrets | 容器的镜像拉取密钥 | []string | false |
hostAliases | 定义容器内的 hostAliases | [[]hostAliases](#hostaliases) | true |
#### readinessProbe
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
exec | 通过在容器中执行一条命令判断是否就绪。请注意就绪性检查必须并且也只能定义 httpGettcpSocket 或者 exec 中的一个 | [exec](#exec) | false |
httpGet | 通过发送 httpGet 请求判断容器是否就绪。 请注意就绪性检查必须并且也只能定义 httpGettcpSocket 或者 exec 中的一个 | [httpGet](#httpget) | false |
tcpSocket | 通过 tcpSocket 是否开启判断容器是否就绪。请注意就绪性检查必须并且也只能定义 httpGettcpSocket 或者 exec 中的一个 | [tcpSocket](#tcpsocket) | false |
initialDelaySeconds | 定义容器启动多少秒之后开始第一次检查 | int | true | 0
periodSeconds | 定义每次检查之间的时间间隔 | int | true | 10
timeoutSeconds | 定义检查的超时时间 | int | true | 1
successThreshold | 定义检查成功多少次之后判断容器已经就绪 | int | true | 1
failureThreshold | 定义检查失败多少次之后判断容器已经不健康 | int | true | 3
##### tcpSocket
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
port | TCP 检查的端口号 | int | true |
##### httpGet
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
path | 定义服务端点请求的路径 | string | true |
port | 定义服务端点的端口号 | int | true |
httpHeaders | 检查请求中的请求头 | [[]httpHeaders](#httpheaders) | false |
###### httpHeaders
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | | string | true |
value | | string | true |
##### exec
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
command | 容器中执行的命令,命令返回 0 则为正常,否则则为失败 | []string | true |
##### hostAliases
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
ip | | string | true |
hostnames | | []string | true |
#### ports
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | 端口名称 | string | false |
port | 端口号 | int | true |
protocol | 端口协议类型 UDP TCP 或者 SCTP | string | true | TCP
expose | 端口是否需要暴露 | bool | true | false
#### volumeMounts
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
pvc | 挂载一个 PVC 卷 | [[]pvc](#pvc) | false |
configMap | 挂载一个 configmap 卷 | [[]configMap](#configmap) | false |
secret | 挂载一个 secret 卷 | [[]secret](#secret) | false |
emptyDir | 挂载一个 emptyDir 的卷 | [[]emptyDir](#emptydir) | false |
hostPath | 挂载主机目录卷 | [[]hostPath](#hostpath) | false |
##### hostPath
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
path | | string | true |
name | | string | true |
mountPath | | string | true |
##### emptyDir
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | | string | true |
mountPath | | string | true |
medium | | string | true | empty
##### secret
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | | string | true |
mountPath | | string | true |
defaultMode | | int | true | 420
items | | [[]items](#items) | false |
secretName | | string | true |
###### items
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
path | | string | true |
key | | string | true |
mode | | int | true | 511
##### configMap
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | | string | true |
mountPath | | string | true |
defaultMode | | int | true | 420
cmName | | string | true |
items | | [[]items](#items) | false |
###### items
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
path | | string | true |
key | | string | true |
mode | | int | true | 511
##### pvc
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | | string | true |
mountPath | | string | true |
claimName | PVC 名称 | string | true |
#### env
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | 环境变量的名称 | string | true |
value | 环境变量的值 | string | false |
valueFrom | 从哪个资源中读取环境变量的定义 | [valueFrom](#valuefrom) | false |
##### valueFrom
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
secretKeyRef | secret 键的引用 | [secretKeyRef](#secretkeyref) | false |
configMapKeyRef | configmap 键的引用 | [configMapKeyRef](#configmapkeyref) | false |
###### configMapKeyRef
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | configmap 名称 | string | true |
key | configmap 中的键名 | string | true |
###### secretKeyRef
字段名称 | 描述 | 类型 | 是否必须 | 默认值
------------ | ------------- | ------------- | ------------- | -------------
name | secret 名称 | string | true |
key | secret 中的键名 | string | true |
### 样例
```yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: website
spec:
components:
- name: frontend
type: webservice
properties:
image: oamdev/testapp:v1
cmd: ["node", "server.js"]
port: 8080
cpu: "0.1"
env:
- name: FOO
value: bar
- name: FOO
valueFrom:
secretKeyRef:
name: bar
key: bar
```
## Worker
定义一个长期运行的,可伸缩的容器化的服务,并且不会暴露承接用户流量的网络端点。
### Parameters
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
| ---------------- | ----------------------------------------------------------------------------------------- | --------------------------------- | -------- | ------- |
| cmd | 容器的启动命令 | []string | false | |
| env | 容器中的环境变量 | [[]env](#env) | false | |
| image | 使用的镜像 | string | true | |
| imagePullPolicy | 镜像拉取策略,可选值为("Always""Never" 或者 "IfNotPresent" | string | false | |
| cpu | CPU 核数 `0.5` (0.5 CPU 核), `1` (1 CPU 核) | string | false | |
| memory | 所需要的内存大小 | string | false | |
| volumeMounts | | [volumeMounts](#volumemounts) | false |
| livenessProbe | 判断容器是否存活的探针 | [livenessProbe](#livenessProbe) | false | |
| readinessProbe | 判断容器是否就绪,能够接受用户流量的探针 | [readinessProbe](#readinessProbe) | false | |
| imagePullSecrets | 容器的镜像拉取密钥 | []string | false | |
### 样例
```yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: app-worker
spec:
components:
- name: myworker
type: worker
properties:
image: "busybox"
cmd:
- sleep
- "1000"
```
## Task
定义一个只执行一次代码或者脚本的任务。
### Parameters
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
| ---------------- | ------------------------------------------------------------------------------------------------ | --------------------------------- | -------- | ------- |
| cmd | 容器的启动命令 | []string | false | |
| env | 容器中的环境变量 | [[]env](#env) | false | |
| count | 定义任务执行的并行度 | int | true | 1 |
| restart | 定义失败重启策略,可选值为 Never 或者 OnFailure默认是 OnFailure | string | true | Never |
| image | 使用的镜像 | string | true | |
| cpu | CPU 核数 `0.5` (0.5 CPU 核), `1` (1 CPU 核) | string | false | |
| memory | 所需要的内存大小 | string | false | |
| volumeMounts | | [volumeMounts](#volumemounts) | false |
| livenessProbe | 判断容器是否存活的探针 | [livenessProbe](#livenessProbe) | false | |
| readinessProbe | 判断容器是否就绪,能够接受用户流量的探针 | [readinessProbe](#readinessProbe) | false | |
| labels | 工作负载的标签 | []string | false | |
| annotations | 工作负载的注解 | []string | false | |
| imagePullPolicy | 镜像拉取策略,可选值为("Always""Never" 或者 "IfNotPresent" | string | false | |
| imagePullSecrets | 容器的镜像拉取密钥 | []string | false | |
### 样例
```yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: app-worker
spec:
components:
- name: mytask
type: task
properties:
image: perl
count: 10
cmd: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
```
## Cron Task
定义一个周期性运行代码或者脚本的任务。
### Parameters
| NAME | DESCRIPTION | TYPE | REQUIRED | DEFAULT |
|----------------------------|--------------------------------------------------------------------------------------------------|-----------------------------------|----------|---------|
| cmd | 容器的启动命令 | []string | false | |
| env | 容器中的环境变量 | [[]env](#env) | false | |
| schedule | 执行规则 [Cron 规范](https://en.wikipedia.org/wiki/Cron) | string | true | |
| suspend | 是否暂停执行 | bool | false | false |
| concurrencyPolicy | 定义任务如何处理任务的重叠运行,可选值为 "Allow""Forbid" 或者 "Replace",默认值为 Allow | string | false | Allow |
| successfulJobsHistoryLimit | 保留多少个已经成功完成的任务记录 | int | false | 3 |
| failedJobsHistoryLimit | 保留多少个已经失败的任务记录 | int | false | 1 |
| count | 每次任务执行的并行度 | int | true | 1 |
| restart | 定义失败重启策略,可选值为 Never 或者 OnFailure默认是 OnFailure | string | true | Never |
| image | 容器使用的镜像 | string | true | |
| cpu | CPU 核数 `0.5` (0.5 CPU 核), `1` (1 CPU 核) | string | false | |
| memory | 所需要的内存大小 | string | false | |
| volumeMounts | | [volumeMounts](#volumemounts) | false |
| livenessProbe | 判断容器是否存活的探针 | [livenessProbe](#livenessProbe) | false | |
| readinessProbe | 判断容器是否就绪,能够接受用户流量的探针 | [readinessProbe](#readinessProbe) | false | |
| labels | 工作负载的标签 | []string | false | |
| annotations | 工作负载的注解 | []string | false | |
| imagePullPolicy | 镜像拉取策略,可选值为("Always""Never" 或者 "IfNotPresent" | string | false | |
| imagePullSecrets | 容器的镜像拉取密钥 | []string | false | |
### 样例
```yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: cron-worker
spec:
components:
- name: mytask
type: cron-task
properties:
image: perl
count: 10
cmd: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
schedule: "*/1 * * * *"
```
## k8s-objects
### 参数说明
| 字段名称 | 描述 | 类型 | 是否必填 | 默认值 |
|---------|-------------|-----------------------|----------|---------|
| objects | Kubernetes 资源列表 | [[]K8s-Object](#K8s-Object) | true | |
#### K8s-Object
列表中的元素为完整的 Kubernetes 资源结构体。
### 样例
```yaml
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: app-raw
spec:
components:
- name: myjob
type: k8s-objects
properties:
objects:
- apiVersion: batch/v1
kind: Job
metadata:
name: pi
spec:
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
backoffLimit: 4
```