如何创建管理员用户以访问Kubernetes仪表板
时间:2020-02-23 14:30:19 来源:igfitidea点击:
Kubernetes仪表板是基于Web的用户界面,用于将容器化的应用程序部署到Kubernetes集群Deployments,Jobs,StatefulSets,DaemonSets等,并管理集群资源,同时能够解决可能出现的问题。我们可以使用仪表板来概述群集上运行的应用程序。
本教程将讨论如何创建可以访问所有Kubernetes资源的管理员用户。管理员用户可以修改所有命名空间中的对象,也可以管理集群中的任何其他组件。
建立管理员服务帐户
让我们从创建服务帐户列表文件开始。该服务帐户名称为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
创建群集角色绑定
接下来是分配服务帐户,创建一个群集角色,绑定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替换为我们在中创建的服务帐户的名称。
应用文件。
$ kubectl apply -f admin-rbac.yml
取得管理员使用者凭证
我们可以使用kubectl命令为服务帐户打印生成的令牌。
设置一个变量来存储服务帐户的名称。
SA_NAME="jmutai-admin"
然后运行以下命令以为创建的admin用户打印令牌。
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep ${SA_NAME} | awk '{print }')
输出:
Name: jmutai-admin-token-mm9jd Namespace: kube-system Labels: <none> Annotations: kubernetes.io/service-account.name: jmutai-admin kubernetes.io/service-account.uid: 80fade4b-4270-11ea-9fe4-005056ba45bd Type: kubernetes.io/service-account-token Data ==== token: eyJhbGciOiJSUzI1NiIsImtpZCI9IiJ9.eyJpc7MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUxOiJqa211dGFpLWFkbWluLXRva2VuLW1tOWpkIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImprbXV0YWktYWRtaW4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI4MGZhZGU0Yi00MjcwLTExZWEtOWZlNC0wMDUwNTZiYTQ1YmQiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06amttdXRhaS1hZG1pbiJ9.uMC2ydeHF4jVA5tnKFbBeHRvc4NWqL920jigk2FDeduUdBuFhsNyDcscmL-pBbWHG5KKwOAEuAAeyNaknaHsDadNnbLpp4AMZTTdr22FEp-_v7MfIEQm3QWmq-c0ykpdrzUzGmk5Q3JIpfqeorDI0lZd52-DF4IVMw3VtTNp6ZMHdieQUNRnCEyfs98raCTRAotiXZQaMvmRW5s9peu5hfxM71jufg-Qzmflr9nO-dY2dOHh1WZcKhJqfNfB73GYX2TQlUlurV4Oy0-2CpUUpJ1HAjcSHzKGuSrMUAMAhRwhbZZXhwvbQ6Ei_9Vv2PkD8_Pw9c-k9x-bblFSAqyFhA ca.crt: 1025 bytes namespace: 11 bytes
复制令牌密钥中的内容。
访问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仪表板。
选择令牌身份验证类型,然后粘贴令牌以访问仪表板。
最好的Kubernetes精通课程。
创建非管理员用户帐户
我们创建了一个管理员用户帐户,该帐户具有对群集资源的完全访问权限。