跳到內容

內建元件型別

RAPD 提供一些內建的元件型別。每個元件的規格描述都採用相同的資料綱要,不同元件型別的特點由其所含的「特徵」決定。

Webservice 容器

透過網路端口提供服務的容器化工作負載元件。

規格

元件型別分類說明
webservice.container工作負載容器化的工作負載元件。
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

Worker 容器

用於持續在背景工作的容器化工作負載元件,例如:持續處理佇列(queue)中的訊息。

規格

元件型別分類說明
worker.container工作負載容器實現的背景進程。
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

StatefulSet 容器

透過網路端口提供有狀態服務的容器化工作負載元件。

規格

元件型別分類說明
statefulset.container工作負載容器化的工作負載元件。
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

Job 容器

用於執行一次性任務的容器化工作負載元件。

規格

元件型別分類說明
job.container工作負載容器化的工作負載元件。
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

Cronjob 容器

用於定期執行任務的容器化工作負載元件。

規格

元件型別分類說明
cronjob.container工作負載容器化的工作負載元件。
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

MinIO 儲存體

用於分布式物件存儲的系統,兼容 Amazon S3 雲端儲存服務。

規格

元件型別分類說明
storage.minio存儲服務物件儲存服務
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

連線Secret

NameTypeRequiredDefaultDescription
hoststringvMinIO 服務主機地址
api_portstringv9000API port
console_portstringv9001控制台 port
usernamestringv登入用戶名
passwordstringv登入密碼

Messaging AMQP (RabbitMQ)

RabbitMQ 是一個實現了 AMQP 的開源訊息佇列。

規格

元件型別分類說明
messaging.amqp訊息佇列訊息佇列服務
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

連線Secret

NameTypeRequiredDefaultDescription
hoststringvRabbitMQ 服務主機地址
amqp_portstringv5672AMQP 協議 port
http_portstringv15672HTTP 管理介面 port
usernamestringv登入用戶名
passwordstringv登入密碼

Config Secret

Config Secret 用於在 Kubernetes 中創建和管理敏感的數據

規格

元件型別分類說明
config.secretSecret用於建立機敏資訊
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

K8s 物件

K8s 物件允許您在 Kubernetes 中部署自定義的 Kubernetes 資源。

規格

元件型別分類說明
package.k8s-objectObject用於在 kubernetes 中建立資源
叢集型別是否內建說明
kubernetesv使用 Kubernetes 叢集作為容器工作負載交付標的。

MySQL 資料庫

MySQL 相容資料庫服務。

範例

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: mysql-app
spec:
version: "1.0"
revisionHistory: 3
components:
- type: database.mysql
name: mysql
target: bind-mysql

規格

元件型別分類說明
database.mysql支援服務MySQL 資料庫,多個資料庫可能共用同一個 MySQL 叢集。
叢集型別是否內建說明
mysql.gcp-cloudsqlGCP Cloud SQL for MySQL

連線Secret

NameTypeRequiredDefaultDescription
hoststringv
portstringv
usernamestringv登入用戶名
passwordstringv登入密碼
dbstring連線資料庫
如果沒提供,表示用戶有所有資料庫的操作權限

PostgreSQL 資料庫

PostgreSQL 相容資料庫服務。

範例

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: postgres-app
spec:
version: "1.0"
revisionHistory: 3
components:
- type: database.postgresql
name: mypostgres
target: bind-postgres

規格

元件型別分類說明
database.postgredqlSupport servicePostgreSQL database. Multiple PostgreSQL databases might be provided by a single PostgreSQL cluster.
叢集型別是否內建說明
postgresql.gcp-cloudsqlGCP Cloud SQL for PostrgreSQL

連線Secret

NameTypeRequiredDefaultDescription
hoststringv
portstringv
usernamestringv登入username
passwordstringv登入密碼
dbstringv連線資料庫
schemastring如果沒提供,表示用戶有此資料庫及schema的操作、管理權限

Redis 服務

Redis 快取服務。

範例

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: redis-app-gcp
spec:
version: "1.0"
revisionHistory: 3
components:
- type: caching.redis
name: redis
target: bind-redis-gcp

規格

元件型別分類說明
caching.redis支援服務Redis cache 服務。
叢集型別是否內建說明
redis.gcp-clustervGCP Memorystore

連線Secret

NameTypeRequiredDefaultDescription
hoststringv
portstringv
usernamestring""username為空時表示與Redis連線不需要使用username
passwordstring""password為空時表示與Redis連線不需要使用password
dbstring連線資料庫
如果沒提供,表示用戶有所有資料庫的操作權限

API 閘道

支援 Kubernetes Gateway API 的 API Gatway 元件。 Webservice 容器元件依賴此元件才能正確運作。 httpRoute 特徵也依賴此元件才能正確運作。

範例

apiVersion: po.rapd.app/v1beta1
kind: Application
metadata:
labels:
auto.mavis.work/environment: default
name: gateway
spec:
version: "1.0"
revisionHistory: 3
components:
- type: networking.api-gateway
name: kong
target: default

規格

元件型別分類說明
networking.api-gateway支援服務API 閘道。
叢集型別是否內建說明
kubernetesv使用 Kong gateway 提供 Gateway API。