本文介紹如何根據架構規劃初始化單元化環境,為后續的應用發布做準備。
本文僅適用于公有云杭州金區環境。
步驟一:創建單元化工作空間
登錄 SOFAStack 控制臺。
在左側導航欄,單擊下方的 全局設置,進入工作空間列表頁面。
單擊 創建工作空間,選擇 單元化工作空間 類型,單擊 創建。
標準工作空間:標準工作空間(Workspace)是 SOFAStack 提供的一種組織機制,將服務于不同目標、階段的資源分組隔離管理。您可以根據研發運維流程,為每個階段分配工作空間,例如單機房(即單可用區)的開發工作空間、雙機房(即包括兩個可用區)的生產工作空間。
單元化工作空間:在標準工作空間的基礎上提供了單元化能力,可用于同城雙活及異地容災場景,本質是一組標準工作空間的集合。您可以通過單元化工作空間組對用戶資源進行隔離,不同工作空間組下的集群彼此隔離。
在 創建工作空間 頁面,輸入以下基本信息。
工作空間標識:2-64 個字符,工作空間的英文標識,全局唯一,一經確定無法修改,例如:dev、test、prod 等。本例中輸入:
DemoIDC
。工作空間名稱:1-64 個字符,工作空間的顯示名稱,例如:開發工作空間、測試工作空間、生產工作空間。本例中輸入:
DemoIDC
。地域:選擇工作空間所在的地域(Region)。
網絡類型:選擇 VPC 網絡。
單擊 下一步,在 創建單元架構 頁面單擊 添加可用區。 每個工作空間配置的可用區(Available Zone)個數不做限制。本例中為工作空間配置兩個可用區,為支持雙機房高可用等架構做準備。
說明系統會根據可用區配置自動為您生成單元化架構拓撲,劃分好邏輯單元和部署單元。
單擊 下一步,在 創建 VPC 頁面,輸入以下配置信息:
專有網絡名稱:由 2-128 個英文或中文字符組成,必須以大小寫字母或中文開頭,可包含數字、下劃線(_) 或連字符(-),不能以
http://
和https://
開頭。推薦與工作空間名稱相同。本例中分別輸入:DemoIDC1、DemoIDC2。專有網絡網段:專有網絡的網段,一旦選擇便無法更改,專有網絡內的所有資源,如 ECS、RDS、SLB 的私網 IP 都在該網段內。可選網段如下:
10.0.0.0/9
172.16.0.0/12
192.168.0.0/16
交換機:單擊 添加交換機,在彈出的 創建交換機 窗口,填寫以下信息,單擊 提交。
名稱:交換機名稱。長度為 2-128 個字符,以英文字母或中文開頭,可包含數字、下劃線(_)和短橫線(-)。
可用區:交換機的可用區。同一 VPC 內不同可用區的交換機內網互通。您需要為每個可用區創建一臺交換機。
自定義網段:默認關閉。開啟后,需填寫網段地址。交換機的網段可以和其所屬的 VPC 網段相同或者是其 VPC 網段的子網。
子網掩碼:自定義網段 關閉時,需分別選擇子網掩碼和網段地址。默認專有的網段掩碼是 24 位,例如 172.31.0.0/24,最多可提供 65536 個私網 IP 地址。范圍為 16~29 位之間,可提供 4~65532 個地址。
描述: 輸入交換機的描述信息。可包含 2-256 個中英文字符,不能以
http://
和https://
開頭。
單擊 下一步,在 創建安全組 頁面,單擊 添加安全組,在彈出的 添加安全組 窗口,填寫以下信息,單擊 提交。
安全組名稱:可以為空,長度為 2-128個英文或中文字符,必須以大小寫字母或中文開頭,不能以
http://
和https://
開頭。可以包含數字、半角冒號(:)、下劃線(_)或者連字符(-)。描述:可包含 2-256 個中英文字符,不能以
http://
和https://
開頭。規則:保持默認設置。
步驟二:創建集群
集群是運行工作負載的邏輯分組,包含一組云服務器資源,每臺云服務器即集群中的一個節點。首次使用 LHC 時,您需要創建一個初始集群,并添加至少一個節點。
集群創建一般需要 20 分鐘左右,創建時間與包含的可用區及節點數目有關。
本例中,您將為單元化工作空間中的兩個可用區分別創建一個集群:democluster1
、democluster2
,實現同城雙活的架構。
在左側導航欄單擊 運維管理 > 多集群容器引擎,進入 LHC 控制臺。
單擊 集群管理 > 集群詳情。
在 集群列表 頁,單擊 創建集群。
在 集群創建 頁面,系統會自動進行預檢查,確保相關的產品已經開通并且租戶下的賬戶余額大于 100 元。預檢查通過后,單擊 下一步。
說明若檢查失敗,完成修復失敗項目后,可以單擊 重新檢查 操作重新進行預檢查。
在 基本配置 頁面,填寫以下配置信息。
專有網絡:選擇當前單元化工作空間所屬的 VPC。
集群名稱:集群顯示名稱,不能為空。本例中分別輸入:
democluster1
、democluster2
。Kubernetes 版本:選擇 Kubernetes 版本。可選擇
1.16.9-aliyun.1
和1.18.8-aliyun.1
。容器運行時:
docker 19.03.5
。網絡配置:
虛擬交換機:您可以在已有虛擬交換機列表中,根據可用區選擇 1~3 個交換機。如果沒有您需要的交換機,可以通過單擊創建虛擬交換機進行創建,請參見 創建交換機。
網絡插件:設置啟用的網絡插件,支持 Terway 網絡插件,具體請參見 Flannel 與 Terway。Terway 是阿里云容器服務自研的網絡插件,將阿里云的彈性網卡分配給容器,支持 Kubernetes 的 Network Policy 來定義容器間的訪問策略,支持對單個容器做帶寬的限流。
Pod 虛擬交換機:網絡插件選擇 Terway 時,需要為 Pod 分配 IP 的虛擬交換機。每個 Pod 虛擬交換機分別對應一個 Worker 實例的虛擬交換機。如果沒有您需要的交換機,可以通過單擊創建虛擬交換機進行創建,請參見 創建交換機。
Service CIDR:設置 Service CIDR。網段不能與 VPC 及 Pod 地址段重復,創建成功后不能修改。
高級配置:
配置 SNAT:不可修改,默認選中。創建集群時,默認不開通公網。如果您選擇的 VPC 不具備公網訪問能力,選中為專有網絡配置 SNAT 后,ACK 將為您創建 NAT 網關并自動配置 SNAT 規則。
公網訪問:設置是否開放使用 EIP 暴露 API Server。API Server 提供了各類資源對象(Pod、Service 等)的增刪改查及 watch 等 HTTP Rest 接口。
若選擇開放,會創建一個 EIP,并掛載到內網 SLB 上。此時,Master 節點的 6443 端口(對應 API Server)暴露出來,您可以在外網通過 kubeconfig 連接并操作集群。
若選擇不開放,則不會創建 EIP,您只能在 VPC 內部用 kubeconfig 連接并操作集群。
說明若需獲取 kubeconfig 信息,請前往 ACK 控制臺。
kube-proxy 代理模式:支持 iptables 和 IPVS 兩種模式。
iptables:成熟穩定的 kube-proxy 代理模式,Kubernetes service 的服務發現和負載均衡使用 iptables 規則配置,但性能一般,受規模影響較大,適用于集群存在少量的 Service。
IPVS:高性能的 kube-proxy 代理模式,Kubernetes service 的服務發現和負載均衡使用 Linux ipvs 模塊進行配置,適用于集群存在大量的 service,對負載均衡有高性能要求的場景。
集群刪除保護:防止通過控制臺或者 API 誤刪除集群。默認選中,可修改。
部署單元:默認勾選使用默認配置。若取消勾選,可以為可用區設置不同的部署單元,若需要修改部署單元,可前往 經典應用服務控制臺 > 環境參數 進行設置。
數據盤掛載:默認勾選 使用日志服務,不可修改,將自動創建名稱為
k8s-log-{ClusterID}
的 Project。
配置完成后,單擊 下一步。
在 節點配置 頁面,完成以下 Worker 節點配置。
付費類型:支持按量付費和包年包月兩種節點付費類型。選擇包年包月時,需設置以下參數。
購買時長:目前支持選擇 1、2、3、6 個月和 1~5 年。
自動續費:設置是否自動續費。
節點數量:創建 Worker 實例(ECS 實例)的數量。
實例規格:支持選擇多個實例規格。詳情請參見 實例規格族。
系統盤:支持 ESSD 云盤、SSD 云盤和高效云盤。
掛載磁盤:支持 SSD 云盤和高效云盤。
操作系統:支持 CentOS 和 Alibaba Cloud Linux (Alinux) 操作系統。
登錄密碼:設置節點的登錄密碼。8-30 個字符,且至少包含三項(大寫字母、小寫字母、數字和特殊符號)。
確認密碼:確認設置的節點登錄密碼。
配置完成后,單擊 下一步。
在集群的 配置預覽 頁面,確認配置無誤后,單擊 提交。
說明一個包含多節點的 Kubernetes 集群的創建時間一般約為十分鐘。
在集群的創建過程中,若出現任務失敗的情況,可單擊事件查看具體錯誤詳情,或單擊 重試 或 忽略。
步驟三:創建網關集群
統一接入網關以集群的方式承載業務負載均衡的流量,您需要根據流量的類型來規劃集群,比如公網、內網、辦公網等。
創建好統一接入網關集群后,您還需要為網關集群創建統一接入實例,并為應用服務里創建負載均衡類型的 Service,才能進行各類業務流量的接入。
登錄 LHC 控制臺,在左側導航欄單擊 網絡 > 統一接入集群。
在 集群列表 頁,單擊 創建網關集群。
在 創建網關集群 頁面,填寫以下配置信息。
集群名稱:集群名稱允許長度為 1-63 個字符,只包含小寫字母、數字、中劃線、且必須以字母開頭、以字母或者數字結尾。
網絡類型:可指定的網絡類型包括內網、公網。指定集群的網絡類型后,該集群上僅能創建與之相同網絡類型的統一接入實例。
初始集群狀態:可選擇 在線 或 維護。
在線:網關集群對外提供流量轉發服務,同時可以接受轉發規則的更新。
維護:網關集群僅對外提供流量轉發服務,但不接受轉發規則的更新請求。
容器規格:容器的規格和節點的數量決定了該集群的請求處理能力,最小規格為 1 核 CPU 1 GB 內存 5GB 磁盤。
host 網絡模式:網關集群所采用的網絡模型。若選擇否,每個 Pod 會擁有獨立 IP。
容器版本配置:
名稱:版本名稱允許長度為 1-63 個字符,只包含小寫字母、數字、中劃線、且必須以字母開頭、以字母或者數字結尾。
容器鏡像:輸入網關節點的容器鏡像地址。示例鏡像:
registry.cn-hangzhou.aliyuncs.com/sofastack/spanner:1.3.0
。副本數:輸入網關節點數,最大值為 100。
標簽:可選,label key 由兩部分組成:前綴(可選)和名稱,通過
/
劃分。名稱部分最多 63 個字符,以 [a-z]、[0-9]、[A-Z] 開頭和結尾,且中間包含數字字母和_ - .
。前綴是可選的,使用時須符合 DNS subdomain 規范,即一系列 DNS label 用.
拼接,總長度不超過 253 個字符,kubernetes.io/
及k8s.io/
為保留前綴。Label values 最多包含 63 個字符,以 [a-z]、[0-9]、[A-Z] 開頭和結尾,且中間包含數字字母和_ - .
,value 目前不可為空。
步驟四:創建統一接入實例
前提條件
已 創建統一接入集群。
網關集群的狀態是 在線 或 維護中,且網絡類型與接入實例的網絡類型一致。
操作步驟
登錄 LHC 控制臺。
在左側導航欄中選擇 網絡 > 統一接入實例,進入統一接入實例列表頁面。
單擊 創建實例,填寫以下配置信息:
基本信息:
實例名稱:必填,允許包含小寫字母、數字、中劃線、且必須以字母開頭、以字母或者數字結尾。允許長度為 1-63 個字符。不可與已有實例名稱重復。
網絡類型:支持 內網 或 公網。
統一接入集群:選擇可用的接入集群。
配置信息:
http 協議:必填。設置 前端端口 號,范圍為 1-65535。
https 協議:選填。需設置 前端端口 號以及 證書 ID。
步驟五:單元路由規則初始化
登錄 LHC 控制臺,在左側導航欄單擊 流量管理 > 應用層。
在 正式流量 頁簽中,系統會先展示最近一次推送成功的全局流量規則,即當前生效的全局流量快照。
單擊 規則配置 進入 正式流量規則配置 頁面,該頁面展示的是當前已配置的規則(只是配置,不代表已生效)。
單擊邏輯單元卡片或分片數據即可進入編輯頁面,填寫以下配置信息:
對于 RZone 類型的部署單元,配置對應部署單元的 UID 分片配置如下。
RZ01A : 00-49
RZ02A : 50-99
說明請確保調整后的各個部署單元的流量比總和為 100%。UID 分片的取值范圍為 00~ 99。
步驟六:中間件初始化
消息隊列初始化
創建 Topic
登錄消息隊列控制臺,左側導航欄選擇 Topic 管理,進入 Topic 列表頁面。
單擊列表左上方的 創建 Topic 按鈕,在新彈出的對話框中,輸入或選擇 Topic 信息:
Topic:Topic 名稱,命名不能以 “CID” 和 “GID”開頭,只能包含英文、數字、連字符(-)和下劃線(_),且長度需控制在 3-64 個字符之間,例如
TP_TEST_POC
。消息類型:選擇事務消息。
描述:可選,對該 Topic 的備注內容。
單擊 確定。
創建 GroupID
登錄消息隊列控制臺,左側導航欄選擇 Group 管理,進入 Group ID 列表頁面。
單擊列表左上方的 創建 Group ID 按鈕,在新彈出的對話框中,輸入或選擇 Group ID 信息:
Group ID:必填,以 “GID” 或者 “GID-” 開頭,只能包含字母、數字、連字符(-)和下劃線(),且長度限制在 7-64 字符之間,例如
GID_SGROUP
。描述:可選,對該 Group ID 的備注信息。
單擊 確定。
創建消息路由任務
登錄消息隊列控制臺,在左側導航欄中選擇 消息路由。
在消息路由任務列表的左上方,單擊 創建路由任務。
在 創建路由任務 窗口中,配置以下任務信息:
源 Topic:輸入需要同步的消息所屬 Topic 名稱,如
TP_TEST_POC
。目標單元:選擇消息將被同步到的 Topic 所屬單元,如
RZONE
。目標 Topic:輸入消息將被同步到的 Topic 名稱,如
TP_TEST_POC
。起始同步位點:選擇從源 Topic 中的消息隊列的哪個位置開始進行消息同步,即從這個位置之后進入隊列的消息都會被同步到目標 Topic。根據實際需要選擇即可。
最小位點:即任務首次啟動之后,從有效期內最早寫入源 Topic 隊列的消息開始同步,首次任務啟動之前發的消息不會被同步。
最大位點:即任務首次啟動之后,從最新寫入源 Topic 隊列的消息開始同步,首次任務啟動之前發的消息不會被同步。
自定義位點:選擇從源 Topic 中的消息隊列的哪個位置開始進行消息同步,首次任務啟動之前發的消息不會被同步。
描述:選填,輸入對該同步任務的具體描述或備注。
單擊 確定。
數據訪問代理初始化
詳情請參見 使用雙機房 ODP 實例。