onectl是阿里云分布式云容器平台为注册集群提供的命令行工具,您可以通过onectl进行注册集群、相关组件以及组件RAM用户的管理。
onectl介绍
onectl主要包含以下功能。
-
集群管理
创建注册集群、列出注册集群当前的状态、连接注册集群与线下集群、列出当前RAM用户所有的注册集群、删除注册集群。
-
组件管理
安装组件、升级组件、列出集群中所有已安装的组件、列出所有可安装的组件、删除组件。
-
组件RAM用户管理
根据组件名授予组件RAM用户对应的权限、列出组件RAM用户的所有权限、根据组件名称撤销对应的权限。
实现原理
步骤一:安装onectl
-
执行以下命令,安装onectl。
支持macOS和Linux系统安装。
curl https://ack-one.oss-cn-hangzhou.aliyuncs.com/onectl/get-onectl.sh | bash -
执行以下命令,验证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 ****