除控制台外,还可以使用Kubernetes命令行工具kubectl来管理集群与应用。通过kubectl连接集群时,需先获取包含当前用户身份信息的集群KubeConfig。
步骤一:安装并配置kubectl客户端
确定待安装kubectl的客户端机器,根据运行环境和集群版本安装kubectl。
步骤二:获取并使用KubeConfig
在控制台获取 KubeConfig 后,kubectl 可依据该文件连接并管理集群。
RAM用户连接集群前,除容器服务的系统权限外,还需要被授予集群操作的权限,请参见为RAM用户授予RBAC权限。
登录容器Argo工作流集群控制台,单击目标集群名称。
在集群信息页面,单击连接信息页签,选择公网访问或内网访问,然后复制KubeConfig。
将复制的KubeConfig内容粘贴至客户端的$HOME/.kube/config文件中,保存并退出。
如果
$HOME/.kube/config文件不存在,可通过mkdir -p $HOME/.kube和touch $HOME/.kube/config来创建。配置完成后,执行kubectl命令以验证集群连通性。
以查询命名空间为例。
kubectl get namespaces预期输出:
NAME STATUS AGE default Active 4h39m kube-node-lease Active 4h39m kube-public Active 4h39m kube-system Active 4h39m
为RAM用户授予RBAC权限
登录容器Argo工作流集群控制台,单击目标集群名称。
在权限管理页面,在目标RAM用户右侧单击管理授权,为RAM用户授予下列权限:
RBAC权限
权限说明
admin(管理员)
具有集群范围和所有命名空间下资源的读写权限。
dev(开发人员)
具有所选命名空间下的资源读写权限。
容器Argo工作流集群中的kubectl权限
不同于普通的Kubernetes集群,kubectl在容器Argo工作流集群中部分操作会受限,权限说明如下:
集群资源 | 权限说明 |
PriorityClass | 可以管理PriorityClasse,并在工作流中指定PriorityClass,达到通过Pod优先级控制调度顺序的目的。 |
Namespace | 可以创建Namespace,拥有自建Namespace的全部权限,并可访问自建Namespace下的资源。不能访问系统Namespace下的资源,即以 重要 以集群ID命名的命名空间为Argo的系统命名空间,您可以操作此系统命名空间,例如,修改workflow-controller-configmap配置Argo Workflow的运行参数。 |
Persistentvolume | 全部权限。 |
Persistentvolumeclaim | 自建Namespaces下的全部权限。 |
Secret Configmap Serviceaccount | 自建Namespaces下的全部权限。 |
Pod | 自建Namespaces下的读权限。 |
Pods/logevents | 自建Namespaces下的读权限。 |
Pods/exec | 自建Namespaces下的创建权限。 |
Argo资源: workflows workflowtasksets workflowtemplates cronworkflows | 自建Namespaces下的全部权限。 |