云网牛站
所在位置:首页 > Linux云服务器 > 在Linux服务器中创建管理员用户以访问Kubernetes仪表板

在Linux服务器中创建管理员用户以访问Kubernetes仪表板

2020-02-02 16:00:22作者:自力稿源:云网牛站

Kubernetes仪表板是基于Web的用户界面,用于将容器化的应用程序部署到Kubernetes群集:部署、作业、StatefulSet、DaemonSets等,并管理群集资源,同时能够对可能出现的问题进行故障排除,您可以使用仪表板来概述群集上运行的应用程序。本文将讨论如何在Linux服务器中创建可以访问所有Kubernetes资源的管理员用户,管理员用户可以修改所有命名空间中的对象,也可以管理集群中的任何其他组件。

 

步骤1:建立管理员服务帐户

首先创建一个服务帐户清单文件,我将服务帐户命名为jmutai-admin:

$ vim admin-sa.yml

---

apiVersion: v1

kind: ServiceAccount

metadata:

name: jmutai-admin

namespace: kube-system

其中jmutai-admin是要创建的服务帐户的名称。

创建文件后,应用清单在kubernetes集群中创建对象:

$ kubectl apply -f admin-sa.yml

serviceaccount/jmutai-admin created

clusterrolebinding.rbac.authorization.k8s.io/jmutai-admin created

参考:安装及使用kubectl、kubectx和kubens轻松管理多个Kubernetes集群

 

步骤2:创建群集角色绑定

接下来是分配服务帐户,创建一个群集角色,将其绑定为cluster-admin:

$ vim admin-rbac.yml

---

apiVersion: rbac.authorization.k8s.io/v1

kind: ClusterRoleBinding

metadata:

name: jmutai-admin

roleRef:

apiGroup: rbac.authorization.k8s.io

kind: ClusterRole

name: cluster-admin

subjects:

- kind: ServiceAccount

name: jmutai-admin

namespace: kube-system

将jmutai-admin替换为您在步骤1中创建的服务帐户的名称。

应用文件:

$ kubectl apply -f admin-rbac.yml

 

步骤3:取得管理员使用者凭证

您可以使用kubectl命令为服务帐户打印生成的令牌。

设置一个变量来存储服务帐户的名称:

SA_NAME="jmutai-admin"

然后运行以下命令以为创建的admin用户打印令牌:

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print $1}')

输出如下图内容:

在Linux服务器中创建管理员用户以访问Kubernetes仪表板

复制令牌密钥中的内容,即复制token选项中的内容。

 

步骤4:访问Kubernetes仪表板

创建令牌后,您可以使用它访问Kubernetes仪表板。如果使用NodePort访问仪表板服务,则可以通过以下命令来获取分配的端口:

$ kubectl get services -n <namespace> | grep dashboard

kubernetes-dashboard NodePort  10.111.76.69  <none>  443:32254/TCP  414d

对我来说,我将在32254端口上任何群集计算机的IP地址上访问Kubernetes仪表板:

在Linux服务器中创建管理员用户以访问Kubernetes仪表板

选择令牌身份验证类型,然后粘贴令牌以访问仪表板:

在Linux服务器中创建管理员用户以访问Kubernetes仪表板

至此,我们已经创建了一个管理员用户帐户,该帐户具有对群集资源的完全访问权限,并且已成功访问了Kubernetes仪表板。

 

相关主题

使用Ansible和Kubespray部署生产就绪Kubernetes集群的步骤

精选文章
热门文章