在Web服務托管、Serverless應用部署、AI任務、事件驅動等場景下,推薦您通過Knative服務的形式部署工作負載。使用Knative服務時,您可以隨時按需使用資源,更聚焦于業務邏輯的開發,享用Knative帶來的基于請求的自動彈性、在沒有流量時將實例數量自動縮容至0、簡化多版本管理等特性。
前提條件
已在集群中部署Knative,請參見部署Knative。
步驟一:部署Knative服務
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
單擊服務管理頁簽,在服務管理頁面頂部選擇服務所屬的命名空間。然后部署Knative服務。
您可以通過控制臺界面或YAML兩種方式部署服務。
控制臺
在服務管理頁面的右上角,單擊創建服務,按照頁面指引完成參數的配置。
配置項
說明
服務名稱
自定義該服務的名稱。
鏡像名稱
單擊選擇鏡像,在彈出的對話框選擇所需的鏡像。您也可以填寫私有registry,填寫的格式為
domainname/namespace/imagename:tag
。本例中為
registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go
。鏡像版本
單擊選擇鏡像版本。本例中為73fbdd56。
訪問協議
支持HTTP和gRPC兩種訪問協議。
容器端口
設置暴露的容器訪問端口,端口號必須介于1~65535。
高級設置
單擊高級設置,設置相關配置項。
僅內部訪問:選擇后,不支持通過公網訪問該服務。
請求最大并發數:容器允許的最大請求并發數。默認為0,表示不限制并發數。
自定義域名:為目標服務配置自定義域名。
最小縮容實例數:在無訪問請求的情況下,最小縮容的運行實例數。設置為0時,表示沒有訪問請求時,實例縮為0。
最大擴容實例數:允許擴容出來的最多實例個數。
資源限制:可指定該應用所能使用的資源上限,包括CPU、內存和GPU三種資源,防止占用過多資源。其中,CPU資源的單位為Core(核);內存的單位為Bytes,也可以為MiB。
生命周期:包含命令(Command)和參數(Args)。
如果均不配置,則使用鏡像默認的命令和參數。
如果僅配置參數,則使用鏡像默認的命令及新配置的參數。
如果均配置,則會覆蓋鏡像默認的配置。
環境變量:支持通過鍵值對的形式配置環境變量。
數據卷:支持增加本地存儲和云存儲聲明(PVC)。
本地存儲:支持主機目錄(hostpath)、配置項(ConfigMap)、保密字典(Secret)和臨時目錄,將對應的掛載源掛載到容器路徑中。更多信息,請參見Volumes。
云存儲聲明(PVC):支持云存儲。
YAML
在服務管理頁面的右上角,單擊使用模板創建。
將需要部署服務的YAML編寫至模板,然后單擊創建。
例如將如下YAML粘貼至模板,創建一個名為
helloworld-go
的服務。apiVersion: serving.knative.dev/v1 kind: Service metadata: name: helloworld-go spec: template: spec: containers: - image: registry-vpc.cn-beijing.aliyuncs.com/knative-sample/helloworld-go:73fbdd56 env: - name: TARGET value: "Knative"
服務創建完成后,您可以在服務管理頁簽查看創建的服務,并對服務進行查看、編輯或刪除操作。
步驟二:訪問服務
Knative服務創建完成后,您可以綁定Host域名與訪問網關,直接訪問服務地址。
在服務管理頁簽,單擊服務名稱。
您可以在Knative服務詳情頁的基本信息區域,查看訪問網關及域名。
將訪問網關地址與需要訪問的域名進行Host綁定,在Hosts文件中添加綁定信息。
綁定示例如下。
121.xx.xxx.xx helloworld-go.default.example.com
通過域名直接對服務進行訪問。
相關文檔
您也可以為Knative服務啟用自定義域名,請參見使用自定義域名。
關于如何為Knative服務配置HTTPS證書訪問,請參見配置HTTPS證書訪問。
您可以通過創建Revision版本,對Knative服務進行版本管理,請參見創建修訂版本。
如果您的業務有不易提前預測的瞬時波峰,推薦您使用ECI資源部署Knative服務,請參見使用ECI資源。
關于如何基于流量請求數實現Knative服務的自動擴縮容,請參見基于流量請求數實現服務自動擴縮容。
關于如何部署Knative Eventing組件并實現Knative的事件驅動,請參見Knative事件驅動。