元件型錄
元件分類
元件根據特性可以分為下列分類:
- 工作負載元件(workload):用於部署程式碼到目標叢集提供的執行環境。
- 支援服務元件(backing service):提供其它元件所需的支援服務。
- 組態元件(configuration):提供應用設定參數或檔案。
- 套裝元件(package):用於部署封裝多個元件的軟體套件。
- 郵包元件(parcel):用於上傳檔案到目標叢集。
型別名稱
針對元件的種類,其型別名稱有不同的規則。
- 工作負載元件:{工作負載分類}.{工作負載型別},例如:
webservice.container
- 支援服務元件:{支援服務分類}.{服務名稱},例如:
database.mysql
- 組態元件:config.{組態資料格式},例如:
config.properties
- 套裝元件:package.{套件格式名稱},例如:
package.helm
- 郵包元件:parcel.{檔案格式名稱},例如:
parcel.archive
叢集的型別名稱則是:{服務名稱}.{資源型別名稱},其中 {服務名稱} 也是支援服務元件的次型別名稱。這樣的關係便於使用支援服務型別名稱找出提供該服務相容的叢集。{資源型別名稱} 則是用於 IaC 工具指定正確的插件來建構基礎設施。
元件型錄
元件型錄將常見的元件種類按照分類定義其型別名稱。尚未內建的元件型別名稱保留作為未來擴充以及確保可操作性用途。
Webservice
Container
元件型別 | 分類 | 說明 |
---|---|---|
webservice.container | 工作負載 | 容器化的工作負載元件。 |
部署目標
- kubernetes 叢集
Function
元件型別 | 分類 | 說明 |
---|---|---|
webservice.function | 工作負載 | Serverless 函式。 |
不同的 function 叢集支援的程式語言與 API 存在差異。
Worker
Container
元件型別 | 分類 | 說明 |
---|---|---|
worker.container | 工作負載 | 容器實現的背景進程。 |
部署目標
- kubernetes 叢集
Job
需要完成的一次性工作任務,在成功前可能會重試直到過期。
Container
元件型別 | 分類 | 說明 |
---|---|---|
job.container | 工作負載 | 容器化任務工作負載元件。 |
部署目標
- kubernetes 叢集
WebHook
元件型別 | 分類 | 說明 |
---|---|---|
job.webhook | 工作負載 | 調用指定的 WebHook URL。 |
部署目標
- kubernetes 叢集
CronJob
代表需要定期執行的工作任務。
Container
元件型別 | 分類 | 說明 |
---|---|---|
job.container | 工作負載 | 容器化任務工作負載元件。 |
WebHook
元件型別 | 分類 | 說明 |
---|---|---|
job.webhook | 工作負載 | 調用指定的 WebHook URL。 |
Package
此類元件以套裝的形式提供,所以無法使用其它工作負載分類。
Helm
元件型別 | 分類 | 說明 |
---|---|---|
package.helm | 套件 | Helm chart 形式的套裝元件。 |
K8sObjects
元件型別 | 分類 | 說明 |
---|---|---|
package.k8sobjects | 套件 | K8s manifest 物件。 |
Config
需要交付到目的地的應用設定資料,資料直接內嵌在元件宣告。
Properties
元件型別 | 分類 | 說明 |
---|---|---|
config.properties | 組態 | K8s manifest 物件。 |
Parcel
代表要交付到指定目的地的檔案,用於 CLI,靜態網站等元件的發佈。
Archive
以壓縮檔形式發布的郵包元件。
元件型別 | 分類 | 說明 |
---|---|---|
parcel.archive | 包裹 | 壓縮檔包裹。 |
部署目標
- S3 叢集 (storage.s3)
Database
資料庫元件代表一個可以資料存儲庫,通常支援 SQL 或其它查詢語言。有些資料庫伺服器可以提供一個以上的資料庫。所以,多個資料庫元件可以同時部署在同一個伺服器。
MySQL
MySQL 相容資料庫。
元件型別 | 分類 | 說明 |
---|---|---|
database.mysql | 支援服務 |
PostgreSQL
元件型別 | 分類 | 說明 |
---|---|---|
database.postgresql | 支援服務 |
MongoDB
元件型別 | 分類 | 說明 |
---|---|---|
database.mongodb | 支援服務 | MongoDB 服務。 |
Caching
通常搭配資料庫元件作為快取用途。
Redis
元件型別 | 分類 | 說明 |
---|---|---|
caching.redis | 支援服務 | Redis 快取服務。 |
Memcached
元件型別 | 分類 | 說明 |
---|---|---|
caching.memcached | 支援服務 | Memcached 快取服務。 |
Messaging
訊息元件用以協助元件之間的訊息、事件或者資料的跨網路傳遞。
AMQP
元件型別 | 分類 | 說明 |
---|---|---|
messaging.amqp | 支援服務 | RabbitMQ 等支援 AMQP 協定的服務元件。 |
SMTP
透過 SMTP 寄送電子郵件服務。
元件型別 | 分類 | 說明 |
---|---|---|
messaging.smtp | 支援服務 |
MQTT
MQTT 訊息服務。
元件型別 | 分類 | 說明 |
---|---|---|
messaging.mqtt | 支援服務 |
Storage
非結構化資料存儲服務,物件存儲(object storage)以及檔案系統(filesystem) 屬於這個分類。
S3
AWS S3 相容的物件存儲服務。
元件型別 | 分類 | 說明 |
---|---|---|
storage.s3 | 支援服務 |
NFS
支援 NFS v4 協定的網路檔案系統。此元件通常用於工作負載元件需要使用檔案系統 API 共用檔案時。
元件型別 | 分類 | 說明 |
---|---|---|
storage.nfs | 支援服務 |
Networking
網路架構元件。
API Gateway
支援 Kubernetes Gateway API 的服務元件,也負責應用層的負載均衡。
元件型別 | 分類 | 說明 |
---|---|---|
networking.api-gateway | 支援服務 |
DNS
域名管理服務(domain name service)。
元件型別 | 分類 | 說明 |
---|---|---|
networking.dns | 支援服務 |
LoadBalancer
負責網路層的負載均衡。
元件型別 | 分類 | 說明 |
---|---|---|
networking.loadbalaner | 支援服務 | 網路負載均衡器。 |