注冊集群是用于將本地數據中心Kubernetes集群或其他云廠商Kubernetes集群接入阿里云容器服務管理平臺統一管理的集群形態。本文介紹如何通過控制臺創建一個注冊集群并接入本地數據中心Kubernetes集群。
閱讀本文前,建議您通過注冊集群概述了解注冊集群相關概念及應用場景。
前提條件
支持通過公網和內網接入。更多信息,請參見接入注冊集群的目標集群對于網絡連通性有什么要求?。
操作步驟
通過控制臺創建注冊集群
創建接入集群。
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊創建集群。
在ACK One 注冊集群頁簽,完成創建集群配置項。
配置項
說明
賬號全部資源
將鼠標懸浮于頁面上方的賬號全部資源,選擇資源組。在控制臺頁面頂部選擇的資源組可過濾出該資源組內的專有網絡及對應的虛擬交換機。在創建集群時,只顯示過濾的專有網絡實例及專有網絡對應的虛擬交換機實例。
集群名稱
集群的名稱。長度為1~63個字符,可包含數字、下劃線(_)或中劃線(-),需以英文大小寫字母、中文或數字開頭。
地域
集群所在的地域。
專有網絡
您可以在已有VPC列表中選擇所需的VPC和交換機。
交換機
您可以在選定的VPC下選擇所需的節點虛擬交換機。
安全組
API server 訪問
您可為API Server所使用的CLB選擇按量付費或包年包月付費類型。
重要刪除默認創建的CLB實例會導致API Server無法訪問。您可以手動轉換計費方式,請參見按量付費。
自2024 年12月01日起,新創建CLB實例不再支持包年包月付費類型,同時將新增收取實例費。詳細信息請參見【產品公告】關于取消新增集群API Server負載均衡CLB包年包月付費的公告、傳統型負載均衡CLB計費項調整公告。
綁定公網IP
設置是否啟用綁定EIP。選中此選項,會在集群中自動綁定EIP,用于建立集群鏈接。
說明公網接入必選項;如果云上云下集群已通過專線接通網絡,可以不勾選。
集群刪除保護
設置是否啟用集群刪除保護。為防止通過控制臺或API誤釋放集群。
資源組
創建的集群將歸屬于選擇的資源組。一個資源只能歸屬于一個資源組。根據不同的業務場景,您可以將資源組映射為項目、應用或組織等概念。
標簽
為集群綁定標簽。輸入鍵和對應的值,單擊添加。
說明鍵是必需的,而值是可選的,可以不填寫。
鍵不能是aliyun、acs:、http://或https://開頭的字符串,不區分大小寫,最多64個字符。
值不能是aliyun、acs:、http://或https://開頭的字符串,可以為空,不區分大小寫,最多128個字符。
同一個資源,標簽鍵不能重復,相同標簽鍵(Key)的標簽會被覆蓋。
如果一個資源已經綁定了20個標簽,已有標簽和新建標簽會失效,您需要解綁部分標簽后才能再綁定新的標簽。
服務協議
創建集群前,需閱讀并同意《服務條款》及《免責聲明》。
在頁面右下方,單擊創建集群,完成集群創建。
您可以在集群列表,看到您創建的集群。
將目標集群接入注冊集群中。
在新集群(本例中為test-external-cluster1)右側單擊操作列下的詳情。
在集群信息頁面單擊連接信息頁簽。
在集群導入代理配置區域根據需要選擇公網或者私網,然后單擊右側的復制,將公網或私網頁簽的內容復制到一個文件中,并執行kubectl命令,將目標集群注冊至新集群中。
例如,您可以新建agent.yaml文件,將以下內容復制到agent.yaml文件中,并在目標集群中執行
kubectl apply -f agent.yaml
命令。重要如果是公網接入集群,請選擇公網集群導入配置;否則請選擇私網集群導入配置。
在目標集群中執行以下命令,查看代理運行狀況。
kubectl -n kube-system get pod |grep ack-cluster-agent
預期輸出:
ack-cluster-agent-5f7d568f6-6fc4k 1/1 Running 0 9s ack-cluster-agent-5f7d568f6-tf6fp 1/1 Running 0 9s
注冊成功后,您可以在容器服務管理控制臺的Kubernetes集群列表頁面,看到該集群的狀態為運行中。
執行結果
在集群列表頁面中,找到注冊集群,單擊操作列下的詳情,查看新集群的基本信息和連接信息。
您可以使用該KubeConfig連接目標集群,進行應用負載的部署。關于連接集群的具體操作,請參見通過kubectl連接Kubernetes集群。
通過onectl創建注冊集群
安裝配置onectl。具體操作,請參見通過onectl管理注冊集群。
onectl支持通過以下兩種方式創建注冊集群。
重要在創建注冊集群時,您需要輸入VPC、vSwitch、Region等信息。當注冊集群設置為公網可訪問時,為了提高安全性,您需要通過
--acl
設置注冊集群SLB的訪問控制白名單,包括本地集群的出網IP地址段和訪問注冊集群的源IP地址段。非交互式創建:執行以下命令,創建注冊集群。
onectl cluster create --region **** --vpc **** --vswitch ****
交互式創建:執行以下命令,創建注冊集群。
onectl cluster create -i
您可以執行以下命令查看具體的參數說明。
onectl cluster create -h
注冊集群在創建完成后,會進行一系列初始化的操作,此時集群狀態為
initial
。注冊集群創建成功后,預期輸出:Registered cluster test-registered-cluster created successfully, information of the cluster: name = test-registered-cluster state = initial cluster id = c3c277f2fc10f45c1b86473********** region id = cn-zhangjiakou node numbers = 0 vpc id = vpc-8vb95w2o172********** vswitch id = vsw-8vbv8bxhput**********
集群初始化完成后進入
waiting
等待連接的狀態,執行以下命令,查看集群狀態。onectl cluster describe --cluster-id ****
預期輸出:
name = test-registered-cluster state = waiting ...
當集群狀態為
waiting
時,執行以下命令,將目標集群接入注冊集群。onectl cluster connect --cluster-id **** --kubeconfig ~/.kube/config --restricted true
參數
是否必選
說明
cluster-id
是
上述步驟2中創建的注冊集群的ID。
kubeconfig
否
目標集群的KubeConfig配置文件的路徑。如未指定,將使用KUBECONFIG環境變量指向的配置文件。
restricted
否
是否以受限模式連接注冊集群。更多信息,請參見注冊集群ack-cluster-agent組件RBAC權限說明。
您還可以執行以下命令查看具體參數說明。
onectl cluster connect -h
執行以下命令,查看目標集群是否接入成功。
onectl cluster describe --cluster-id ****
預期輸出:
name = test-registered-cluster state = running ...
預期輸出表明集群的狀態為running,注冊集群已經成功連接。