創(chuàng)建應(yīng)用服務(wù)
LHC 應(yīng)用服務(wù)對(duì) Kubernetes 原生的 Deployment 做了能力增強(qiáng),您可以通過創(chuàng)建應(yīng)用服務(wù)定義容器服務(wù)的基本信息、訪問策略、發(fā)布及調(diào)度策略等信息,為后續(xù)容器服務(wù)的部署做準(zhǔn)備。
前提條件
創(chuàng)建應(yīng)用服務(wù)的過程分為以下 6 個(gè)步驟:
一、填寫基本信息
登錄控制臺(tái),在左側(cè)導(dǎo)航欄單擊 發(fā)布運(yùn)維 > 應(yīng)用服務(wù)。
在應(yīng)用服務(wù)列表頁(yè),單擊 創(chuàng)建應(yīng)用服務(wù)。
在 創(chuàng)建應(yīng)用服務(wù) 頁(yè)面,填寫以下基本信息,單擊 下一步。
命名空間:選擇命名空間,默認(rèn)為列表第一個(gè)。
應(yīng)用服務(wù)名稱:容器服務(wù)的名稱。服務(wù)實(shí)例名稱允許包含(小寫)字母、數(shù)字、連字符,且必須以字母開頭,以字母或數(shù)字結(jié)尾。同一個(gè)工作空間組下不允許同名。
所屬應(yīng)用:選擇一個(gè)該容器服務(wù)所關(guān)聯(lián)的應(yīng)用。
有狀態(tài)模式:默認(rèn)關(guān)閉。開啟后,Pod 名稱會(huì)加上
-0
、-1
... 數(shù)字后綴,重建過程中不會(huì)生成新 Pod 名稱。相關(guān)操作,請(qǐng)參見 LHC Pod 域名配置。數(shù)據(jù)卷模板配置:可選,用于掛載存儲(chǔ)。單擊 添加配置 可設(shè)置多個(gè)。具體配置項(xiàng)如下:
名稱:輸入模板名稱。允許包含字母、數(shù)字、連字符,且必須以字母開頭,以字母或數(shù)字結(jié)尾。
存儲(chǔ)類型:用于指定支持的存儲(chǔ)類別。單擊 創(chuàng)建存儲(chǔ)類型 將跳轉(zhuǎn)至存儲(chǔ)頁(yè)。
說明對(duì)于存儲(chǔ)類型,通常由系統(tǒng)管理員定義,具體類別因存儲(chǔ) SLA、備份策略等而異。
對(duì)于多集群下的存儲(chǔ)類型,需要多集群下都存在此存儲(chǔ)類型才可以被調(diào)用。
容量:設(shè)置數(shù)據(jù)卷模板的容量。單位為 GiB。
說明數(shù)據(jù)卷容量大小受設(shè)置的 PV 容量的限制。關(guān)于 PV 容量設(shè)置,請(qǐng)參見 創(chuàng)建存儲(chǔ)卷。
描述:選填。容器服務(wù)的描述。
二、Pod 模板配置
對(duì) Pod 里的容器做詳細(xì)的配置。Pod 與容器之間的比例并非 1:1,可通過單擊 添加應(yīng)用容器 為單 Pod 配置多個(gè)容器。
對(duì)于可添加的容器數(shù)量,暫無限制。
基本選項(xiàng)
容器類型:支持 APP 和 INIT 兩種類型。
容器名稱:容器名稱。
鏡像來源:支持 鏡像倉(cāng)庫(kù)、構(gòu)建記錄 兩種方式。
鏡像倉(cāng)庫(kù):直接輸入鏡像倉(cāng)庫(kù)地址,比如:
registry-cnhz.cloud.alipay.com/aks/nginx:1.8
。說明如果配置多個(gè)容器,輸入的鏡像地址不得相同。
構(gòu)建記錄:選擇該類型來源時(shí),會(huì)自動(dòng)關(guān)聯(lián)應(yīng)用服務(wù)所屬應(yīng)用的構(gòu)建,具體參見 鏡像構(gòu)建。
說明目前暫不支持 構(gòu)建記錄。如有需要,請(qǐng)?zhí)峤还芜M(jìn)行處理。
使用保密字典:若該鏡像屬于私有鏡像,需要訪問認(rèn)證,您可以開啟 使用保密字典 拉取鏡像。若尚未創(chuàng)建保密字典,可單擊創(chuàng)建保密字典,詳情請(qǐng)參見 創(chuàng)建保密字典。
CPU 配置:設(shè)置容器使用的 CPU 的數(shù)量。請(qǐng)求核數(shù) 為能保證的最小核數(shù),最大核數(shù) 為能使用的最大核數(shù)。換算方式:1 core = 1000 millicores。
內(nèi)存配置:設(shè)置容器使用的內(nèi)存的數(shù)量。請(qǐng)求內(nèi)存 為能保證的最小內(nèi)存數(shù)量,最大內(nèi)存 為能使用的最大內(nèi)存數(shù)量。換算方式:1024 Bytes = 1 KiB;1024 KiB = 1 MiB;1024 MiB = 1 GiB;1024 GiB = 1 TiB。
啟動(dòng)命令:選填。用于指定容器啟動(dòng)時(shí)執(zhí)行的命令。
高級(jí)配置
默認(rèn)關(guān)閉 。如果開啟 ,需要完成以下選項(xiàng)配置。
hostNetwork 配置:默認(rèn)關(guān)閉。開啟后,Pod IP 地址與節(jié)點(diǎn) IP 地址保持一致。在 host 模式下,一個(gè)節(jié)點(diǎn)最多只能掛載 1 個(gè) Pod。
環(huán)境變量配置:設(shè)置在容器啟動(dòng)時(shí)傳入應(yīng)用進(jìn)程的鍵值對(duì),例如:
USER=tester
。數(shù)據(jù)卷配置:配置容器使用的數(shù)據(jù)卷,支持本地儲(chǔ)存、臨時(shí)目錄(emptydir)、NFS 等多種類型,目前僅支持掛在當(dāng)前容器所在宿主機(jī)的目錄。
健康檢查配置:包含兩種檢查機(jī)制:Readiness 和 Liveness。具體參見 Kubernetes Probe。
生命周期事件回調(diào)配置:為容器添加生命周期事件回調(diào),分別在容器啟動(dòng)后和容器停止前執(zhí)行。
日志服務(wù)配置:配置日志服務(wù)(SLS),可選擇已有日志庫(kù)或創(chuàng)建新的日志庫(kù)。
說明首次使用日志服務(wù)配置功能,需前往 日志服務(wù)控制臺(tái) 開啟配置索引。詳情請(qǐng)參見 配置索引。
更多信息參見 高級(jí)配置。
配置覆蓋
默認(rèn)關(guān)閉。如果開啟,需要完成以下選項(xiàng)配置。
環(huán)境變量配置:您可以為每個(gè)部署單元單獨(dú)設(shè)置環(huán)境變量,覆蓋應(yīng)用服務(wù)中的默認(rèn)配置,但僅針對(duì)于手動(dòng)輸入類型的環(huán)境變量。
鏡像地址:您可以為每個(gè)部署單元單獨(dú)配置不同的鏡像地址,覆蓋應(yīng)用服務(wù)中的默認(rèn)配置。
三、彈性配置
副本伸縮策略配置:支持以下兩種彈性策略。
固定副本數(shù):默認(rèn)為 0,可勾選部署單元并修改為期望副本數(shù),即應(yīng)用服務(wù)運(yùn)行時(shí)保持固定數(shù)目的 Pod 副本。
彈性擴(kuò)縮容:可對(duì)應(yīng)用服務(wù)自動(dòng)伸縮進(jìn)行如下彈性規(guī)則配置。
固定副本數(shù):默認(rèn)為 0,可勾選部署單元并修改為期望副本數(shù)。
最小副本數(shù):彈性擴(kuò)縮容時(shí) Pod 的最小副本數(shù)。
最大副本數(shù):彈性擴(kuò)縮容時(shí) Pod 的最大副本數(shù)。
規(guī)則:當(dāng)前伸縮規(guī)則基于的指標(biāo)類型。單擊 + 添加配置,配置以下選項(xiàng)。
規(guī)則類型:當(dāng)前伸縮規(guī)則基于的規(guī)則類型,目前支持 CPU、Memory、QPS、響應(yīng)時(shí)間。
目標(biāo)類型:當(dāng)前伸縮規(guī)則基于的指標(biāo)類型所期望達(dá)到的值的類型,目前支持 使用率 與 平均資源使用。
使用率/平均值:輸入使用率/平均值。
單位:無需輸入,根據(jù)所選的規(guī)則類型自動(dòng)匹配。
高級(jí)配置:默認(rèn)關(guān)閉 。如果開啟,需要完成以下選項(xiàng)配置。
幅度:可以通過設(shè)置按百分比或指定個(gè)數(shù)來調(diào)整擴(kuò)縮容的速率,單位為百分比或個(gè)數(shù)。
間隔時(shí)間:上次擴(kuò)縮容操作與本次擴(kuò)縮容操作之間的時(shí)間間隔,單位為秒。
冷卻時(shí)間:冷卻擴(kuò)縮容操作的時(shí)間,即完成一次擴(kuò)縮容操作之后不再次觸發(fā)擴(kuò)縮容操作的時(shí)間窗口,單位為秒。
說明一個(gè)擴(kuò)縮容活動(dòng)執(zhí)行完成后,在設(shè)定的冷卻時(shí)間內(nèi)不執(zhí)行其他擴(kuò)縮容活動(dòng)。
四、訪問配置(選填)
應(yīng)用服務(wù)支持統(tǒng)一接入及負(fù)載均衡兩種訪問方式。負(fù)載均衡是基于端口的請(qǐng)求負(fù)載均衡,統(tǒng)一接入是基于規(guī)則的請(qǐng)求負(fù)載均衡。您可以根據(jù)業(yè)務(wù)需要做好規(guī)劃。
負(fù)載均衡
您可以在創(chuàng)建應(yīng)用服務(wù)時(shí)設(shè)置訪問方式,也可以應(yīng)用服務(wù)創(chuàng)建完成后添加訪問方式。
創(chuàng)建應(yīng)用服務(wù)時(shí)設(shè)置訪問方式
在 訪問配置 頁(yè)面,單擊 添加負(fù)載均衡。
在 負(fù)載均衡 配置中,填寫以下信息后,單擊 下一步。
負(fù)載均衡名稱:填寫服務(wù)名稱。系統(tǒng)默認(rèn)生成服務(wù)名稱前綴為
應(yīng)用服務(wù)名稱-
。服務(wù)名稱允許包含(小寫)字母、數(shù)字、連字符且必須以字母開頭、以字母或者數(shù)字結(jié)尾。訪問方式:選擇負(fù)載均衡服務(wù)的訪問方式。支持以下選項(xiàng):
內(nèi)網(wǎng):創(chuàng)建一個(gè)內(nèi)網(wǎng)的 LoadBalancer,并將流量轉(zhuǎn)發(fā)到容器的相應(yīng)端口上。
外網(wǎng):創(chuàng)建一個(gè)公網(wǎng)的 LoadBalancer,并將流量轉(zhuǎn)發(fā)到容器的相應(yīng)端口上。訪問方式由公網(wǎng)負(fù)載均衡服務(wù)地址以及設(shè)置的訪問端口組成,例如
10.117.117.117:80
。自定義:在自定義模式下,會(huì)在選定的部署單元內(nèi)分別創(chuàng)建一個(gè) LoadBalancer 類型的 Service,通過用戶填入的 ID 復(fù)用已有的負(fù)載均衡實(shí)例。
重要當(dāng)前僅支持填入阿里云負(fù)載均衡實(shí)例 ID。更多合作伙伴型號(hào)支持,敬請(qǐng)期待。
阿里云場(chǎng)景下,被復(fù)用的 SLB 必須要滿足如下條件:
確保被復(fù)用的 SLB 實(shí)例是在 SLB 控制臺(tái)手動(dòng)創(chuàng)建的。
確保期望使用的監(jiān)聽器端口尚未被占用。
如果是內(nèi)網(wǎng)地址類型的 SLB 實(shí)例,須確保與部署單元對(duì)應(yīng)的集群同屬于同一個(gè) VPC。
是否開啟集群內(nèi)訪問VIP轉(zhuǎn)發(fā)優(yōu)化:開啟后,集群內(nèi)訪問負(fù)載均衡 VIP 的請(qǐng)求會(huì)被 kube-proxy 直接轉(zhuǎn)發(fā)至相應(yīng)的后端服務(wù)。
部署單元 ID:僅當(dāng)訪問方式選擇 自定義 時(shí)顯示該此選項(xiàng)。為各部署單元填寫對(duì)應(yīng)的負(fù)載均衡實(shí)例 ID。
說明對(duì)于同一應(yīng)用服務(wù)下的不同部署單元,支持設(shè)置相同的負(fù)載均衡實(shí)例 ID。
確保應(yīng)用服務(wù)端口映射中配置的前端端口在已有負(fù)載均衡實(shí)例上尚未被其他應(yīng)用服務(wù)占用,否則會(huì)因端口沖突而導(dǎo)致應(yīng)用服務(wù)發(fā)布失敗。
聯(lián)邦負(fù)載均衡實(shí)例:僅當(dāng)訪問方式選擇 內(nèi)網(wǎng) 或 外網(wǎng) 且開啟 使用聯(lián)邦負(fù)載均衡 時(shí)顯示該此選項(xiàng)。從下拉列表中選擇對(duì)應(yīng)聯(lián)邦負(fù)載均衡實(shí)例,可選擇到的聯(lián)邦負(fù)載均衡的部署單元必須能夠覆蓋應(yīng)用服務(wù) 彈性配置 步驟中選擇的所有部署單元。
說明如需創(chuàng)建新的聯(lián)邦負(fù)載均衡實(shí)例,請(qǐng)參見 創(chuàng)建聯(lián)邦負(fù)載均衡。
如需修改聯(lián)邦負(fù)載均衡配置的部署單元,請(qǐng)參見 配置聯(lián)邦負(fù)載均衡。
是否開啟優(yōu)雅下線等待:開啟后,在后端服務(wù)器流量權(quán)重清零后,系統(tǒng)會(huì)等待一段時(shí)間再?gòu)呢?fù)載均衡后端服務(wù)器列表中摘除。
優(yōu)雅下線等待時(shí)間 (單位:秒):開啟 是否開啟優(yōu)雅下線等待 后可見,配置優(yōu)雅下線等待時(shí)間。
端口映射:?jiǎn)螕?添加端口映射,填寫以下信息。
協(xié)議:支持 TCP、HTTP、HTTPS 協(xié)議。
轉(zhuǎn)發(fā)規(guī)則:制定端口轉(zhuǎn)發(fā)規(guī)則。
HTTP/HTTPS 協(xié)議支持 RR 輪詢、WRR 加權(quán)輪詢、WLC 最小連接數(shù)。
TCP 協(xié)議支持 RR 輪詢、WRR 加權(quán)輪詢、WLC 最小連接數(shù)、TCH 一致性哈希(四元組)、SCH 一致性哈希(源 IP)。
說明一致性哈希(四元組):基于四元組的一致性 hash(源 IP + 目的 IP + 源端口 + 目的端口),相同四元組的請(qǐng)求會(huì)調(diào)度到相同的后端服務(wù)器。
一致性哈希(源 IP):基于源 IP 地址的一致性 hash,相同源地址的請(qǐng)求會(huì)調(diào)度到相同的后端服務(wù)器。
前端端口:容器鏡像中工作負(fù)載實(shí)際監(jiān)聽的端口,端口范圍為 1~65535。
后端端口:容器端口映射到負(fù)載均衡實(shí)例上的端口,用負(fù)載均衡 IP 訪問工作負(fù)載時(shí)使用,端口范圍為 1~65535。
帶寬:?jiǎn)挝粸?Mbps,默認(rèn)值為 -1,表示無限制。支持 -1 或 1~5120 范圍內(nèi)的整數(shù)。
證書ID:當(dāng)協(xié)議為 HTTPS 類型時(shí),需要輸入相關(guān)證書 ID。
連接請(qǐng)求超時(shí)時(shí)間:HTTP/HTTPS 監(jiān)聽請(qǐng)求超時(shí)時(shí)間,單位為秒,默認(rèn) 60。如果一個(gè)請(qǐng)求的后端服務(wù)返回時(shí)間超出了設(shè)置的超時(shí)時(shí)間,負(fù)載均衡將放棄等待,直接返回 504 給客戶端。
HTTP 健康檢查:當(dāng)協(xié)議為 HTTPS 或 HTTP 類型時(shí),可開啟此選項(xiàng),HTTP 模式的健康檢查是通過發(fā)送 HEAD 或 GET 請(qǐng)求模擬瀏覽器的訪問行為來檢查后端 Pod 是否健康。若開啟,需填寫以下的配置項(xiàng)。
說明TCP 端口默認(rèn)開啟 TCP 健康檢查,此處可按需開啟額外 HTTP 健康檢查。
URL:指定具體的檢查路徑。
域名:非必填。如果您的應(yīng)用 Pod 需要校驗(yàn)請(qǐng)求的 host 字段,則需要配置相關(guān)域名,確保健康檢查正常工作。若在健康檢查中配置了域名,SLB 會(huì)將域名配置到 host 字段中去;反之,如果沒有配置域名,SLB 則不會(huì)在請(qǐng)求中附帶 host 字段,因此健康檢查請(qǐng)求就會(huì)被服務(wù)器拒絕,可能導(dǎo)致健康檢查失敗。
端口:健康檢查服務(wù)訪問后端 Pod 時(shí)的探測(cè)端口。端口范圍 1~65535。
超時(shí)時(shí)間(s):接收響應(yīng)需要等待的時(shí)間。如果后端 Pod 在指定的時(shí)間內(nèi)沒有正確響應(yīng),則判定為健康檢查失敗。默認(rèn)為 3 秒。
時(shí)間間隔(s):負(fù)載均衡的健康檢查請(qǐng)求進(jìn)行健康檢查的時(shí)間間隔。默認(rèn)值為 5 秒。
http 健康狀態(tài)碼:選擇健康檢查正常的 HTTP 狀態(tài)碼。默認(rèn)值為 http_2xx。
會(huì)話保持:開啟會(huì)話保持后,負(fù)載均衡監(jiān)聽會(huì)把來自同一客戶端的訪問請(qǐng)求分發(fā)到同一臺(tái)后端 Pod 上。
HTTP 協(xié)議會(huì)話保持基于 Cookie。負(fù)載均衡提供了兩種 Cookie 處理方式:
植入 Cookie:您只需要指定 Cookie 的過期時(shí)間??蛻舳说谝淮卧L問時(shí),負(fù)載均衡會(huì)在返回請(qǐng)求中植入Cookie(即在 HTTP 或 HTTPS 響應(yīng)報(bào)文中插入 SERVERID),下次客戶端攜帶此 Cookie 訪問,負(fù)載均衡服務(wù)會(huì)將請(qǐng)求定向轉(zhuǎn)發(fā)給之前記錄到的后端服務(wù)器上。
重寫 Cookie:可以根據(jù)需要指定 HTTPS 或 HTTP 響應(yīng)中插入的 Cookie。您需要在后端 Pod 上維護(hù)該 Cookie 的過期時(shí)間和生存時(shí)間。
負(fù)載均衡服務(wù)發(fā)現(xiàn)用戶自定義了 Cookie,將會(huì)對(duì)原來的 Cookie 進(jìn)行重寫,下次客戶端攜帶新的 Cookie 訪問,負(fù)載均衡服務(wù)會(huì)將請(qǐng)求定向轉(zhuǎn)發(fā)給之前記錄到的后端 Pod。詳情請(qǐng)參見 會(huì)話保持規(guī)則配置。
訪問控制:開啟后,支持以黑白名單的方式對(duì)訪問 IP 進(jìn)行過濾。
說明在使用訪問控制功能前,您需要在阿里云負(fù)載均衡控制臺(tái)創(chuàng)建訪問控制策略組,如何創(chuàng)建請(qǐng)參見 創(chuàng)建訪問控制策略組。
在使用訪問控制功能前,是否開啟集群內(nèi)訪問VIP轉(zhuǎn)發(fā)優(yōu)化 按鈕需為關(guān)閉狀態(tài)。
針對(duì) HTTP 和 HTTPS 協(xié)議,默認(rèn)開啟 XForwardFor 選項(xiàng),通過 X-Forwarded-For 獲取客戶端真實(shí) IP。
訪問控制策略類型:選擇 黑名單 或 白名單,禁止或允許特定 IP 訪問負(fù)載均衡。
訪問控制組 ID:輸入在阿里云負(fù)載均衡控制臺(tái)創(chuàng)建的訪問控制策略組 ID。
統(tǒng)一接入
統(tǒng)一接入 支持配置轉(zhuǎn)發(fā)規(guī)則,將流量轉(zhuǎn)發(fā)到容器的相應(yīng)端口上。您可以在創(chuàng)建應(yīng)用服務(wù)時(shí)設(shè)置訪問方式,也可以應(yīng)用服務(wù)創(chuàng)建完成后添加訪問方式。
創(chuàng)建應(yīng)用服務(wù)時(shí)添加訪問方式
在 訪問配置 頁(yè)面,單擊 添加統(tǒng)一接入,填寫以下信息后,單擊 下一步。
服務(wù)名稱:填寫服務(wù)名稱。系統(tǒng)默認(rèn)生成服務(wù)名稱前綴為
應(yīng)用服務(wù)名稱-
。服務(wù)名稱允許包含(小寫)字母、數(shù)字、連字符、且必須以字母開頭、以字母或者數(shù)字結(jié)尾。所屬統(tǒng)一接入實(shí)例:選擇已創(chuàng)建的統(tǒng)一接入實(shí)例。詳情參見 創(chuàng)建統(tǒng)一接入實(shí)例。
接入?yún)f(xié)議:選擇統(tǒng)一接入實(shí)例上支持的協(xié)議,一般有 HTTP 或 HTTPS。
路由模式:選擇 單元化 或 非單元化。
單元化 代表為這個(gè)統(tǒng)一接入開啟單元化轉(zhuǎn)發(fā)的能力,即會(huì)根據(jù)請(qǐng)求 Cookie 內(nèi)的特定 UID 進(jìn)行單元化切片,每個(gè) Zone 處理固定區(qū)間的用戶請(qǐng)求。
非單元化 代表隨機(jī)分發(fā)。
統(tǒng)一接入規(guī)則:?jiǎn)螕?添加統(tǒng)一接入規(guī)則 轉(zhuǎn)發(fā)規(guī)則,填寫以下信息。
域名:填寫需要轉(zhuǎn)發(fā)的請(qǐng)求域名。
轉(zhuǎn)發(fā)路徑:請(qǐng)求轉(zhuǎn)發(fā)到的具體容器路徑地址。默認(rèn)為根目錄。
后端端口:容器鏡像中工作負(fù)載程序?qū)嶋H監(jiān)聽的端口,端口范圍為 1~65535。
重要添加或刪除已有轉(zhuǎn)發(fā)規(guī)則都會(huì)導(dǎo)致發(fā)布時(shí)線上服務(wù)不可用。
是否開啟健康檢查:健康檢查是通過發(fā)送 HEAD 或 GET 請(qǐng)求模擬瀏覽器的訪問行為來檢查后端 Pod 是否健康。默認(rèn)關(guān)閉,開啟后需配置以下參數(shù):
說明使用統(tǒng)一接入健康檢查前需確認(rèn)當(dāng)前工作空間組下所有集群內(nèi)組件 cloud-controller-manager 版本大于等于 1.3.0。
健康檢查類型:目前僅支持 HTTP 健康檢查類型。
健康檢查URI:指定具體的檢查路徑。
健康閾值:默認(rèn)值為 1,即健康檢查連續(xù)成功 1 次后將對(duì)應(yīng)后端服務(wù)器視為健康。
不健康閾值:默認(rèn)值為 5,即健康檢查連續(xù)失敗 5 次后將對(duì)應(yīng)后端服務(wù)器視為不健康。
健康檢查間隔:健康檢查的時(shí)間間隔。默認(rèn)值為 10 秒。
健康檢查超時(shí)時(shí)間:接收響應(yīng)需要等待的時(shí)間。如果后端 Pod 在指定的時(shí)間內(nèi)沒有正確響應(yīng),則判定為健康檢查失敗。默認(rèn)為 3 秒。
健康檢查端口:健康檢查服務(wù)訪問后端 Pod 時(shí)的探測(cè)端口。端口范圍 1~65535。
健康檢查域名:非必填。如果您的應(yīng)用 Pod 需要校驗(yàn)請(qǐng)求的 host 字段,則需要配置相關(guān)域名,確保健康檢查正常工作。若在健康檢查中配置了域名,Spanner 會(huì)將域名配置到 host 字段中去;反之,如果沒有配置域名,Spanner 則不會(huì)在請(qǐng)求中附帶 host 字段,因此健康檢查請(qǐng)求就會(huì)被服務(wù)器拒絕,可能導(dǎo)致健康檢查失敗。
健康檢查方法:選擇以什么類型的請(qǐng)求進(jìn)行健康檢查,支持 HEAD 和 GET 方法。
期望返回碼:選擇健康檢查正常的 HTTP 狀態(tài)碼。默認(rèn)值為 http_2xx。
會(huì)話保持:開啟會(huì)話保持后,統(tǒng)一接入會(huì)把來自同一客戶端的訪問請(qǐng)求分發(fā)到同一臺(tái)后端 Pod 上。會(huì)話保持基于 Cookie,提供了兩種 Cookie 處理方式:
說明使用統(tǒng)一接入會(huì)話保持需滿足以下條件:
僅支持非單元化轉(zhuǎn)發(fā)模式下單部署單元使用場(chǎng)景。
當(dāng)前工作空間組下所有集群內(nèi)組件 cloud-controller-manager 版本大于等于 1.3.0。
應(yīng)用服務(wù)使用的統(tǒng)一接入實(shí)例對(duì)應(yīng)統(tǒng)一接入集群使用的 spanner 鏡像版本大于等于 1.3.0。
植入 Cookie:需配置會(huì)話保持超時(shí)時(shí)間。客戶端第一次訪問時(shí),統(tǒng)一接入會(huì)在返回請(qǐng)求中植入Cookie,下次客戶端攜帶此 Cookie 訪問,統(tǒng)一接入服務(wù)會(huì)將請(qǐng)求定向轉(zhuǎn)發(fā)給之前記錄到的后端服務(wù)器上。
重寫 Cookie:需指定 HTTP 響應(yīng)中插入的 Cookie 名稱。您需要在后端 Pod 上維護(hù)該 Cookie 的過期時(shí)間和生存時(shí)間。
ClusterIP Service
ClusterIP Service 是通過集群內(nèi)部的 IP 對(duì)外提供服務(wù)。服務(wù)只能在集群內(nèi)部被訪問,且只有集群內(nèi)部的節(jié)點(diǎn)和 Pod 可訪問。
創(chuàng)建應(yīng)用服務(wù)時(shí)添加 ClusterIP Service
在 訪問配置 頁(yè)面,單擊 添加 ClusterIP Service。
在 ClusterIP Service 配置中,單擊 添加端口映射,配置以下信息。
協(xié)議:支持 TCP 和 UDP 協(xié)議。
前端端口:容器鏡像中工作負(fù)載實(shí)際監(jiān)聽的端口,端口范圍為 1~65535。
后端端口:容器端口映射到 ClusterIP Service 上的端口,端口范圍為 1~65535。
單擊 提交。
Headless Service
Headless Service 對(duì)應(yīng)的每一個(gè) Endpoint,即每一個(gè) Pod,都會(huì)有對(duì)應(yīng)的 DNS 域名。配置 Headless Service 名稱,這樣各 Pod 之間便可以通過域名互相訪問。Headless Service 不會(huì)分配 Cluster IP,kube-proxy 不會(huì)處理此類 Service,但可以通過域名解析訪問 Pod。相關(guān)操作,請(qǐng)參見 LHC Pod 域名配置。
您可以在創(chuàng)建應(yīng)用服務(wù)時(shí)添加 Headless Service 名稱,也可以應(yīng)用服務(wù)創(chuàng)建完成后重新編輯應(yīng)用服務(wù)進(jìn)行添加。添加之后需要發(fā)布應(yīng)用服務(wù)才會(huì)生效。
創(chuàng)建應(yīng)用服務(wù)時(shí)添加 Headless Service
一個(gè)應(yīng)用服務(wù)僅支持添加一個(gè) Headless Service 。
在 訪問配置 頁(yè)面,單擊 添加 Headless Service。
在 Headless Service 配置中,填寫 Headless Service 名稱。名稱由服務(wù)名稱前綴、Headless Service 名稱組成。
前綴:系統(tǒng)默認(rèn)生成服務(wù)名稱前綴
應(yīng)用服務(wù)名稱-
。Headless Service 名稱:輸入名稱,允許包含小寫字母、數(shù)字、連字符(-)。最大長(zhǎng)度不超過 20 個(gè)字符。
單擊 下一步。
五、部署和調(diào)度配置(選填)
您可以自定義部署和調(diào)度配置,若不修改,發(fā)布應(yīng)用服務(wù)時(shí),系統(tǒng)會(huì)使用默認(rèn)配置。
該配置項(xiàng)用于配置容器服務(wù)在部署時(shí)需要用到的信息,包括以下內(nèi)容:
是否使用 Beta 驗(yàn)證:發(fā)布時(shí)選取部分 Pod 先行發(fā)布,待確認(rèn)無異常后繼續(xù)發(fā)布。默認(rèn)開啟。
開啟 Beta 分組后,發(fā)布時(shí)會(huì)給應(yīng)用服務(wù)設(shè)置一個(gè)特殊的 Beta 分組,在該組中,系統(tǒng)會(huì)在每個(gè)部署單元選擇一個(gè) Pod,Beta 分組會(huì)在第一組發(fā)布。
Beta 分組發(fā)布完成后系統(tǒng)會(huì)自動(dòng)暫停應(yīng)用服務(wù)發(fā)布,等待系統(tǒng)負(fù)責(zé)人或者運(yùn)維工程師對(duì)應(yīng)用服務(wù)的發(fā)布情況進(jìn)行確認(rèn)。若容器服務(wù)發(fā)布正常,則單擊 Beta 分組確認(rèn),使應(yīng)用服務(wù)繼續(xù)分組發(fā)布。
Beta 分組可以與所有分組策略共同決定分組。創(chuàng)建新的發(fā)布申請(qǐng)時(shí),默認(rèn)開啟 添加 Beta 分組,此時(shí)同一個(gè)發(fā)布單上的所有應(yīng)用服務(wù)都設(shè)置 Beta 分組。
部署分組策略:指定發(fā)布容器服務(wù)時(shí) Pod 的分組策略,支持以下幾種策略,具體可參考下表。
策略類型
說明
按部署單元分組
默認(rèn)為 按部署單元分組。
按部署單元維度發(fā)布,盡可能讓 Pod 均勻分布在各部署單元中。
每個(gè) Pod 一組
每組一個(gè) Pod,有幾個(gè) Pod 便分幾組。
共分一組
所有 Pod 在一組中進(jìn)行發(fā)布。
快速分組
在發(fā)布時(shí)按照組的維度進(jìn)行發(fā)布。
共分一組(Beta 單元模式)
在發(fā)布時(shí)按設(shè)定的每次最大同時(shí)變更 Pod 數(shù)量進(jìn)行發(fā)布。選定后,可以根據(jù)需要配置以下選項(xiàng)。
最大步長(zhǎng):每個(gè)普通分組最大變更 Pod 數(shù)(不包含 Beta 分組)。如果將最大步長(zhǎng)設(shè)為 2,則普通分組的 Pod 數(shù)不超過 2。
部署單元發(fā)布順序:
如果不設(shè)置部署單元發(fā)布順序,按默認(rèn)的部署單元順序?qū)Ω鞑渴饐卧?Pod 進(jìn)行發(fā)布或變更。
如果設(shè)置了部署單元發(fā)布順序,按指定順序?qū)Ω鞑渴饐卧?Pod 進(jìn)行發(fā)布或變更。
是否開啟 Beta 驗(yàn)證:
如果未開啟,所有 Pod 會(huì)依次發(fā)布,無 Beta 分組,無分組暫停,即用戶不需要確認(rèn)任何分組,執(zhí)行完一個(gè)普通分組后自動(dòng)執(zhí)行下一個(gè)分組。
如果開啟,部署順序中的第一個(gè)單元會(huì)整體作為 Beta 分組進(jìn)行發(fā)布,需要用戶確認(rèn)。其余單元的所有 Pod 會(huì)依次發(fā)布,這些分組無分組暫停。
說明選擇 共分一組(Beta 單元模式)后,在某一時(shí)刻可能出現(xiàn)某一部署單元內(nèi)的 Pod 同時(shí)在發(fā)布,以致 Pod 不可用的情形。如需規(guī)避此現(xiàn)象,即在加快發(fā)布進(jìn)度的同時(shí)保證一定 Pod 可用,建議選擇 按部署單元百分比并發(fā)模式。
按部署單元百分比并發(fā)模式
如需加快按部署單元發(fā)布進(jìn)度,可選擇該分組策略。選定后,需指定一個(gè)百分比值。發(fā)布變更時(shí),按每個(gè)部署單元該百分比數(shù)量的 Pod 為一批。
如果將百分比設(shè)為 25%,則第一批發(fā)布所有部署單元的前 25% 的 Pod,第二批發(fā)布所有部署單元的 25%-50% 的 Pod,以此類推直至 100%,可參考以下示例圖。
部署單元發(fā)布順序:僅當(dāng)分組策略選擇 按部署單元分組 或 共分一組(Beta 單元模式)時(shí)顯示該此選項(xiàng)。默認(rèn)關(guān)閉。用于重新編排原有部署單元發(fā)布順序。開啟后,支持通過拖拽操作對(duì)部署單元進(jìn)行排序,便于根據(jù)實(shí)際業(yè)務(wù)需要靈活調(diào)整發(fā)布順序。
最小分組數(shù):分組策略選擇 按部署單元分組 或 快速分組 時(shí)需設(shè)置。
說明最小分組數(shù)是發(fā)布時(shí)分組的參考值,實(shí)際分組數(shù)受發(fā)布時(shí) Pod 在部署單元的分布情況影響。
分組暫停:支持僅第一個(gè)分組或每組暫停發(fā)布,待確認(rèn)發(fā)布后繼續(xù)發(fā)布。
全部暫停:默認(rèn)選中。發(fā)布單會(huì)在每個(gè)分組暫停發(fā)布。
首批暫停:選擇 首批暫停 后,發(fā)布單只會(huì)在第一個(gè)分組暫停發(fā)布。
分組發(fā)布模式(并行/串行):默認(rèn)不選,系統(tǒng)默認(rèn)模式為準(zhǔn),選中后可以選擇并行/串行的分組發(fā)布模式。
自定義標(biāo)簽:發(fā)布應(yīng)用服務(wù)時(shí),將會(huì)以 label 的形式發(fā)布在 Pod 上。請(qǐng)以
key=value
的格式輸入,多個(gè) label 間用英文逗號(hào)分隔。Annotation:發(fā)布時(shí),將以 annotation 的形式發(fā)布在 Pod 上,請(qǐng)以
key=value
的格式輸入,多個(gè) annotation 以英文逗號(hào)(,)分隔。自定義屬性配置:支持手動(dòng)配置 Pod 刪除寬限期。
Pod拓?fù)浯蛏⒓s束:通過配置打散調(diào)度策略,將 Pod 打散到不同機(jī)器上以保證應(yīng)用服務(wù)的高可用。
應(yīng)用服務(wù)與節(jié)點(diǎn)親和性配置:添加應(yīng)用服務(wù)在節(jié)點(diǎn)級(jí)別的親和性配置??梢酝ㄟ^ node 標(biāo)簽來限定應(yīng)用服務(wù)可以調(diào)度的節(jié)點(diǎn)范圍。
說明親和性需要 Pod 重新創(chuàng)建才會(huì)生效。首次發(fā)布時(shí),親和性配置一定會(huì)生效,后續(xù)發(fā)布時(shí),必須選擇替換升級(jí)方式,才能讓親和性配置生效。
應(yīng)用服務(wù)間親和性配置:添加應(yīng)用服務(wù)在 Pod 級(jí)別的親和性配置。通過選擇與某些應(yīng)用服務(wù)在相同或不同的節(jié)點(diǎn)來限定應(yīng)用服務(wù)可以調(diào)度的節(jié)點(diǎn)范圍。
說明親和性需要 Pod 重新創(chuàng)建才會(huì)生效。首次發(fā)布時(shí),親和性配置一定會(huì)生效,后續(xù)發(fā)布時(shí),必須選擇替換升級(jí)方式,才能讓親和性配置生效。
是否摘除注冊(cè)中心流量:默認(rèn)關(guān)閉,開啟后配置摘流后等待時(shí)間。
說明集群組件 cloud-controller-manager 版本必須大于等于 1.2.0-pub 才能開啟,否則開啟后應(yīng)用服務(wù)會(huì)發(fā)布失敗。
應(yīng)用服務(wù)污點(diǎn)容忍配置:配置完成后應(yīng)用服務(wù)將部署到對(duì)應(yīng)污點(diǎn)的節(jié)點(diǎn)上。在彈出框中輸入 鍵、值,選擇 Effect。Effect 包含以下選項(xiàng):
NoSchedule:不允許無匹配 toleration 的 Pod 調(diào)度到該節(jié)點(diǎn)。
NoExecute:若無匹配 toleration 的 Pod 已經(jīng)在節(jié)點(diǎn)上運(yùn)行,則將 Pod 驅(qū)逐,若無匹配 toleration 的 Pod 尚未在節(jié)點(diǎn)上運(yùn)行,則不會(huì)將 Pod 調(diào)度到該節(jié)點(diǎn)上。
PreferNoSchedule:盡量不將無匹配 toleration 的 Pod 調(diào)度到該節(jié)點(diǎn)。
注入 SOFAMesh:需集群開啟 Mesh 功能。開啟引流配置時(shí),每次發(fā)布會(huì)按所設(shè)置的引流規(guī)則轉(zhuǎn)發(fā)流量到新版本,也可在發(fā)布過程中配置。開啟后,會(huì)為應(yīng)用服務(wù)開啟服務(wù)網(wǎng)格功能,可以在服務(wù)網(wǎng)格控制臺(tái)對(duì)應(yīng)用服務(wù)進(jìn)行管控和治理。
六、預(yù)覽并提交
在應(yīng)用服務(wù) 預(yù)覽 頁(yè)面,確認(rèn)信息無誤,單擊 提交。
提交前您可以單擊修改圖標(biāo)對(duì)應(yīng)用服務(wù)信息進(jìn)行修改。
應(yīng)用服務(wù)提交后處于 待部署 狀態(tài),需要單擊 發(fā)布 才會(huì)將應(yīng)用服務(wù)部署到集群中。