日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過onectl管理注冊集群

onectl是阿里云分布式云容器平臺為注冊集群提供的命令行工具,您可以通過onectl進行注冊集群、相關組件以及組件RAM用戶的管理。

onectl介紹

onectl主要包含以下功能。

  • 集群管理

    創建注冊集群、列出注冊集群當前的狀態、連接注冊集群與線下集群、列出當前RAM用戶所有的注冊集群、刪除注冊集群。

  • 組件管理

    安裝組件、升級組件、列出集群中所有已安裝的組件、列出所有可安裝的組件、刪除組件。

  • 組件RAM用戶管理

    根據組件名授予組件RAM用戶對應的權限、列出組件RAM用戶的所有權限、根據組件名稱撤銷對應的權限。

實現原理

展開查看onectl的實現原理

與目標集群的通信

通過onectl連接注冊集群與目標集群時,onectl需要在目標集群中部署注冊集群agent,此時,onectl將按照以下優先級依次嘗試使用對應的KubeConfig與目標集群進行通信。

  1. kubeconfig參數

    例如,通過以下命令使用~/.kube/config配置文件與目標集群通信,并將目標集群連接至注冊集群。

    onectl cluster connect --cluster-id **** --kubeconfig ~/.kube/config
  2. KUBECONFIG環境變量

    若上述kubeconfig參數未指定,onectl會使用KUBECONFIG環境變量指向的KubeConfig配置文件。

  3. onectl配置文件~/.onectl/config.json中的Kubeconfig Path字段

    若以上兩個字段都不存在,則使用該字段指向的配置文件。該字段的配置請參見步驟二:配置onectl RAM用戶

  4. ~/.kube/config

    若上述字段均為空,則默認使用該配置文件。

連接注冊集群

onectl連接注冊集群時,將依次執行以下操作。

  1. 獲取注冊集群的連接信息,并保存到本地名為agent.yaml的文件中。

  2. 根據此YAML文件的內容,在目標集群中部署注冊集群agent。

例如,執行以下命令,連接注冊集群與目標集群。

onectl cluster connect --cluster-id ****

預期輸出:

Agent information saved as agent.yaml.
Installing ACK One agent using kubeconfig file **** to connect to registered cluster ****.
Confirm? [Y/n]: y
ACK One agent deployed successfully.
Check the running status of deployment ack-cluster-agent to confirm the connection status of registered cluster ****.

組件RAM用戶

注冊集群中已安裝的組件在運行時,需要一個單獨的RAM用戶的AccessKey來訪問云上資源。例如,logtail-ds組件需要訪問日志服務SLS的項目、日志庫等資源,該組件RAM用戶的AK信息保存在集群kube-system命名空間下名為alibaba-addon-secret的Secret中。

  • 若集群中已經存在此Secret,onectl會沿用此Secret中的AK信息來運行集群組件。

  • 若集群中不存在此Secret,onectl會自動創建并使用名為ack-one-user-[cluster id prefix]的RAM用戶來運行組件。例如,當集群中不存在此Secret時,您可以執行以下命令,創建一個RAM用戶并授予其terway-eniip組件所需要的權限。

    onectl ram-user grant --addon terway-eniip

    預期輸出:

    Ram user ack-one-user-ce313528c3 created successfully.
    Ram policy ack-one-registered-cluster-policy-terway-eniip granted to ram user ack-one-user-ce313528c3 successfully.
    Secret alibaba-addon-secret created under namespace kube-system in the cluster, it stores the access key and secret of ram user ack-one-user-ce313528c3.

組件安裝

通過onectl安裝組件需要管理員權限,onectl會在開始安裝前檢測注冊集群agent的ServiceAccount是否擁有管理員權限。若沒有,onectl將創建一個臨時的管理員角色,并賦予ack賬戶集群的管理員權限。組件安裝完成后,onectl將刪除此臨時管理員角色,將ack賬戶的權限恢復至組件安裝前。

例如,在agent沒有管理員權限時,您可以執行以下命令對agent賬戶進行臨時提權,并在組件安裝完成后撤銷agent的臨時管理員權限。

onectl addon install logtail-ds

預期輸出:

Cluster role ack-admin-tmp created.
Cluster role binding ack-admin-binding-tmp created.
Addon logtail-ds, version **** installed.
Cluster role ack-admin-tmp deleted.
Cluster role binding ack-admin-binding-tmp deleted.

臨時管理員角色的ClusterRole、ClusterRoleBinding內容如下。

展開查看臨時管理員角色的ClusterRole、ClusterRoleBinding

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: ack-admin-tmp
  labels:
    ack/creator: "ack"
rules:
- apiGroups:
  - '*'
  resources:
  - '*'
  verbs:
  - '*'
- nonResourceURLs:
  - '*'
  verbs:
  - '*'
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: ack-admin-binding-tmp
  namespace: kube-system
  labels:
    ack/creator: "ack"
subjects:
- kind: ServiceAccount
  name: ack
  namespace: kube-system
roleRef:
  kind: ClusterRole
  name: ack-admin-tmp
  apiGroup: rbac.authorization.k8s.io

步驟一:安裝onectl

  1. 執行以下命令,安裝onectl。

    支持macOS和Linux系統安裝。

    curl https://ack-one.oss-cn-hangzhou.aliyuncs.com/onectl/get-onectl.sh | bash
  2. 執行以下命令,驗證onectl是否安裝成功。

    onectl version

    預期輸出:

    onectl: v1.0.0+774dea0
    	BuildDate: 2023-07-12T06:10:27Z
    	GitCommit: 774dea0f768569821e101dc44d1cb09cef192fe8
    	GitTreeState: clean
    	GoVersion: go1.20.4
    	Compiler: gc
    	Platform: darwin/amd64

步驟二:配置onectl RAM用戶

RAM用戶登錄后,才能通過onectl管理注冊集群,onectl會使用該RAM用戶的AK/SK來操作阿里云的云服務資源,該RAM用戶需要擁有以下權限來管理云上資源。

說明

onectl RAM用戶與組件的RAM用戶是不同的RAM用戶。

  • 容器服務的管理員權限:名為AliyunCSFullAccess的系統策略。

  • RAM的管理員權限:名為AliyunRamFullAccess的系統策略。

  • VPC的只讀權限:名為AliyunVPCReadOnlyAccess的系統策略。

您可以執行以下命令,配置onectl RAM用戶的AK、SK信息以及注冊集群ID等信息。

onectl configure

預期輸出:

Configuring profile default ...
Access Key Id [*********************f7x]:
Access Key Secret [***************************mft]:
Default Kubeconfig Path (default is ~/.kube/config) []:
Saving profile[default] ...
Done.

參數

說明

Access Key Id

onectl使用的RAM用戶的AccessKey信息。

Access Key Secret

Kubeconfig Path

IDC自建集群的KubeConfig路徑,默認為~/.kube/config

步驟三:配置目標集群KubeConfig

onectl默認會使用KubeConfig環境變量指向的KubeConfig配置文件用于連接目標集群,因此使用onectl之前,需要先設置該環境變量。若未設置,將默認使用~/.kube/config文件。

相關操作

集群管理

您可以通過執行以下onectl命令,對集群進行操作。

  • 創建連接注冊集群。其中cluster-id ****為您創建的注冊集群的ID。更多信息,請參見通過onectl創建注冊集群

    onectl cluster create --region **** --vpc **** --vswitch **** --name **** --eip true
    onectl cluster connect --cluster-id ****
  • 查看注冊集群的當前狀態。

    onectl cluster describe --cluster-id ****
  • 查看所有注冊集群。

    onectl cluster list
  • 刪除注冊集群。

    onectl cluster delete --cluster-id ****

組件管理

您可以通過執行以下onectl命令,對組件進行不同的操作。其中****為您待操作的組件的名稱。

  • 安裝組件

    onectl addon install ****
  • 升級組件

    onectl addon upgrade ****
  • 查詢組件列表

    onectl addon list
  • 查看所有可安裝組件

    onectl addon catalog
  • 卸載組件

    onectl addon uninstall ****

組件RAM用戶管理

您可以通過執行以下onectl命令,對組件RAM用戶進行管理。其中****為組件的名稱。

  • 授予權限

    onectl ram-user grant --addon ****
  • 列出權限詳情

    onectl ram-user describe --detail
  • 撤銷權限

    onectl ram-user revoke --addon ****
  • 更新權限

    onectl ram-user update --addon ****

相關文檔

  • 如果需要查看已安裝的組件,請參見管理組件

  • 如果需要監控注冊集群的工作狀態,請參見可觀測性

  • 如果需要了解注冊集群的安全性要求,請參見安全管理