AKS 應用服務對 Kubernetes 原生的 Deployment 做了能力增強,通過創建應用服務您可以定義容器服務的基本信息、訪問策略、發布及調度策略等信息,為后續容器服務的部署做準備。
AKS 產品支持通過以下兩種方式創建應用服務:
本文介紹創建應用服務的標準操作流程。通過應用商店的產品模板快捷地創建應用服務,請參見 產品發布。
前提條件
創建應用服務的標準流程分為以下 6 個步驟:
一、填寫基本信息
登錄容器應用服務控制臺,在左側導航欄單擊 應用發布 > 應用服務。
在應用服務列表頁,單擊 創建。
在 創建應用服務 頁面,填寫以下基礎信息,單擊 下一步。
命名空間:選擇一個集群中的命名空間(namespace),默認為 default。
應用服務名稱:容器服務的名稱。
所屬應用:選擇一個該容器服務所關聯的應用。
有狀態應用 app:默認關閉。有狀態應用使用 StatefulSet 作為部署工作負載。
若開啟,需配置數據卷模板,具體配置步驟如下:
單擊 創建新模板。
在 創建數據卷模版 頁面,填寫以下信息后,單擊 創建。
名稱:輸入模板名稱。允許包含字母、數字、連字符,且必須以字母開頭,以字母或數字結尾。
存儲類型:用于指定支持的存儲類別。支持 alicloud-disk-available、alicloud-disk-efficiency、alicloud-disk-essd、alicloud-disk-ssd、alicloud-disk-topology。
容量:輸入大于 20 的整數。單位 Gi。
描述:選填。容器服務的描述。
二、Pod 模板配置
對 Pod 里的容器做詳細的配置。完成基本選項配置和(可選)高級配置后,單擊 下一步。
基本選項
容器名稱:容器名稱。允許包含小寫字母、數字、連字符,且必須以小寫字母開頭,以小寫字母或數字結尾。
鏡像來源:支持 鏡像倉庫、構建記錄 及 從包構建 三種方式。
鏡像倉庫:直接輸入鏡像倉庫地址,比如:
registry-cnhz.cloud.alipay.com/aks/nginx:1.8
。構建記錄:選擇該類型來源時,會自動關聯應用服務所屬應用的構建,具體參見 鏡像構建。
說明您可以選擇 使用保密字典拉取鏡像,參見 創建保密字典。
從包構建:支持上傳指定技術棧應用(SOFABoot、Java 等)的代碼包。系統會根據相關配置信息自動地進行鏡像構建,并在后續的容器服務發布中使用系統構建的目標鏡像進行發布。
技術棧:選擇鏡像技術棧,即構建基于的基礎鏡像。包括用戶自定義的技術棧和官方提供的技術棧。詳情參見 鏡像技術棧。
技術棧版本:選擇鏡像技術棧的版本。
發布包:上傳代碼包,無格式限制。
目標鏡像中的位置:代碼包在構建鏡像中的目錄路徑。需以
/
開頭。系統會將發布包拷貝到基礎鏡像中用戶指定的目錄。基礎鏡像:根據所選擇的技術棧及版本自動生成。
Dockerfile 預覽:構建鏡像的 Dockerfile 內容,派生自基礎鏡像,并只作發布包覆蓋。
目標鏡像倉庫地址(自定義):構建出的鏡像名稱,此處填寫目標鏡像標簽。系統會將構建出來的目標鏡像按照此處定義的地址推送到鏡像中心,供后續發布所用。
說明默認情況下,使用保密字典拉取鏡像。若尚未創建保密字典,可單擊 創建保密字典 鏈接進行創建。
默認情況下,會將構建出來的鏡像推送到鏡像倉庫中,因此必須已在容器鏡像服務(ACR)中 創建命名空間。
CPU 配置:設置容器使用的 CPU 的數量。請求核數 為能保證的最小核數,最大核數 為能使用的最大核數。換算方式:1 core = 1000 millicores。
內存配置:設置容器使用的內存的數量。請求內存 為能保證的最小內存數量,最大內存 為能使用的最大內存數量。換算方式:1024 bytes = 1 KiB;1024 KiB = 1 MiB;1024 MiB = 1 GiB;1024 GiB = 1 TiB。
啟動命令:選填。用于指定容器啟動時執行的命令。
高級配置
環境變量配置:設置在容器啟動時傳入應用進程的鍵值對,例如:
USER=tester
。數據卷配置:配置容器使用的數據卷,目前僅支持掛在當前容器所在宿主機的目錄。
健康檢查配置:包含兩種檢查機制:Readiness 和 Liveness。具體參見 Kubernetes Probe。
生命周期事件回調配置:為容器添加生命周期事件回調,分別在容器啟動后和容器停止前執行。
日志服務配置:配置阿里云日志服務(SLS),可選擇已有日志庫或創建新的日志庫。
業務實時監控:添加監控目錄,可以在應用服務詳情頁查看容器的監控數據。
更多信息參見 高級配置說明。
三、伸縮配置
副本伸縮策略配置:目前僅支持 固定副本數,默認為 1,即應用服務運行時保持固定數目的 Pod 副本。配置完成后,單擊 下一步。
四、訪問配置(選填)
應用服務支持三種訪問方式:集群內訪問、內網訪問、公網訪問,您可以根據業務需要做好規劃。
集群內訪問
選擇 集群內訪問 會建一個 Cluster IP 類型的 Service,并將流量轉發到容器的相應端口上。您可以在創建應用服務時設置訪問方式,也可以應用服務創建完成后添加訪問方式。
創建應用服務時添加訪問方式
在 訪問配置 頁面,單擊 創建服務。
在 創建服務 窗口,填寫以下信息后,單擊 提交。
服務名稱:應用服務名稱。
訪問方式:選擇 集群內訪問。
端口映射:單擊 +,填寫以下信息。
協議:支持 TCP、UDP 協議。
訪問端口:容器鏡像中工作負載程序實際監聽的端口,端口范圍為 1~65535。
容器端口:容器端口映射到集群虛擬 IP 上的端口,用虛擬 IP 訪問工作負載時使用,端口范圍為 1~65535。
內網訪問
創建一個內部的 Service,并將流量轉發到容器的相應端口上。您可以在創建應用服務時設置訪問方式,也可以應用服務創建完成后添加訪問方式。
創建應用服務時設置訪問方式
在 訪問配置 頁面,單擊 創建服務。
在 創建服務 窗口,填寫以下信息后,單擊 提交。
服務名稱:應用服務名稱。
訪問方式:選擇 內網訪問。
端口映射:單擊 添加端口映射,填寫以下信息。
協議:支持 TCP、 HTTP、HTTPS 協議。
說明TCP 協議下,默認開啟健康檢查,不可關閉。
轉發規則:支持 按權重、按權重并且最小連接數。
前端端口:容器鏡像中工作負載實際監聽的端口,端口范圍為 1~65535。
后端端口:容器端口映射到負載均衡實例上的端口,用負載均衡 IP 訪問工作負載時使用,端口范圍為 1~65535。
健康檢查:若開啟,根據選擇的協議類型,需填寫對應的配置項。
公網訪問
配置外部 Service 會創建一個公網的 LoadBalancer,并將流量轉發到容器的相應端口上。訪問方式由公網負載均衡服務地址以及設置的訪問端口組成,例如 10.117.117.117:80
。
創建應用服務時設置訪問方式
在 訪問配置 頁面,單擊 創建服務。
在 創建服務 窗口,填寫以下信息后,單擊 提交。
服務名稱:應用服務名稱。
訪問方式:選擇 公網訪問。
端口映射:單擊 添加端口映射,填寫以下信息。
協議:支持 TCP、HTTP、HTTPS 協議。本例中選擇 TCP。
說明TCP 協議下,默認開啟健康檢查,不可關閉。
轉發規則:支持 按權重、按權重并且最小連接數。
前端端口:容器鏡像中工作負載實際監聽的端口,端口范圍為 1~65535。
后端端口:容器端口映射到負載均衡實例上的端口,用負載均衡 IP 訪問工作負載時使用,端口范圍為 1~65535。
健康檢查:若開啟,根據選擇的協議類型,需填寫對應的配置項。
五、部署和調度配置(選填)
您可以自定義部署和調度配置,若不修改,發布應用服務時,系統會使用默認配置。
該配置項用于配置容器服務在部署時需要用到的信息,包括以下內容:
升級模式:
原地升級:默認選項。保持 Pod 不變,IP 不會更改。若選擇 原地升級,則不能開啟 服務網格。
說明原地升級在敏捷 PaaS 底座的專有云場景和 ACK 集群的公有云場景下會做能力降級:僅升級鏡像時,Pod IP 能保持不變,其他變更如環境參數等,會通過滾動升級的方式用新 Pod 替換掉舊 Pod。
替換升級:會用新的 Pod 替換老的 Pod,類似原生 Deployment 的 RollingUpdate 策略。
說明若服務部署后切換升級模式,會造成服務短暫不可用。
部署單元:該配置限定了容器服務的 Pod 只能調度到打了所選中部署單元標簽的節點上。默認選中所有部署單元。
部署分組策略:指定發布容器服務時 Pod 的分組策略,有以下幾種策略,默認為快速分組。
快速分組:分組進行發布,并且盡量讓每一組的 Pod 都平均分布在每個部署單元。
每個 Pod 一組:每組一個 Pod,有幾個 Pod 就分幾組。
共分一組:所有 Pod 在一組中進行發布。
最小分組數:該選項僅在快速分組時設置。默認為 3。僅當副本數量大于等于該值時生效。每組副本數最多 20 個。
說明最小分組數是發布時分組的參考值,實際分組數受發布時 Pod 在部署單元的分布情況影響。
添加 Beta 分組:發布時選取部分 Pod 先行發布,待確認無異常后繼續發布。默認選中該選項。
選擇 添加 Beta 分組 后,發布時會給應用服務設置一個特殊的 Beta 分組,在該組中,系統會在每個部署單元選擇一個 Pod,Beta 分組會在第一組發布。
Beta 分組發布完成后系統會自動暫停應用服務發布,等待系統負責人或者運維工程師對應用服務的發布情況進行確認。若容器服務發布正常,則單擊 Beta 分組確認,使應用服務繼續分組發布。
Beta 分組可以與所有分組策略共同決定分組。創建新的發布申請時,默認選中 添加 Beta 分組。
分組暫停:每組發完后暫停發布,確認發布后繼續發布。默認選中該選項。
Pod 調度策略:目前支持 按部署單元平均分配。
說明該選項僅在容器服務有多個部署單元時有效。當某個部署單元資源不足以調度平均的 pod 數目時,該部署單元上的 pod 會被動態調整到其他單元。
應用服務與節點親和性配置:添加應用服務在節點級別的親和性配置。可以通過 node 標簽來限定應用服務可以調度的節點范圍。
說明親和性需要 Pod 重新創建才會生效。首次發布時,親和性配置一定會生效,后續發布時,必須選擇替換升級方式,才能讓親和性配置生效。
應用服務間親和性配置:添加應用服務在 Pod 級別的親和性配置。通過選擇與某些應用服務在相同或不同的節點來限定應用服務可以調度的節點范圍。
說明親和性需要 Pod 重新創建才會生效。首次發布時,親和性配置一定會生效,后續發布時,必須選擇替換升級方式,才能讓親和性配置生效。
注入SOFAMesh:需集群開啟服務網格功能。開啟引流配置時,每次發布會按所設置的引流規則轉發流量到新版本,也可在發布過程中配置。開啟后需填寫引流比例,系統按所設置的比例轉發流量到新發布的版本,以及引流的目標服務。
六、預覽并提交
在應用服務 預覽 頁面,確認信息無誤,單擊 提交。
提交前,您可以單擊修改圖標對應用服務信息進行修改。
應用服務提交后處于 待部署 狀態,需要單擊 發布 才會將應用服務部署到集群中。