资讯详情

k8s入门:kubernetes-dashboard 安装

系列文章


第一章:? k8s入门:裸机部署 k8s 集群 第二章:? k8s入门:部署应用 k8s 集群 第三章:? k8s入门:service 简单使用 第四章:? k8s入门:StatefulSet 简单使用 第五章:? k8s入门:存储(storage) 第六章:? K8S 配置 storageclass 使用 nfs 动态应用本地磁盘空间 第七章:? k8s入门:配置 ConfigMap & Secret 第八章:? k8s入门:k8s入门:Helm 构建 MySQL 第九章:? k8s入门:kubernetes-dashboard 安装 第十章:? k8s入门:kube-prometheus-stack 全家桶搭建(Grafana Prometheus)


文章目录

        • 系列文章
        • 一、简介
        • 二、安装 kubernetes-dashboard
          • 1.下载配置文件
          • 2、 修改默认配置
          • 3、安装 kubernetes-dashboard
          • 4、访问 web
          • 5、获取 token
          • 6、测试登录
          • 创建新用户

参考:https://blog.csdn.net/u013068377/article/details/106673434/ k8s 官网:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/

一、简介

Dashboard 是一个基于 Web 的 Kubernetes 用户界面。您可以使用 Dashboard 将容器化应用程序部署到 Kubernetes 集群、集群资源排除和管理集群应用程序的故障。您可以使用 Dashboard 了解集群上运行的应用程序概述,创建或修改单个应用程序 Kubernetes 资源(例如 Deployment、Jobs、DaemonSet 等)。例如,您可以使用部署导向扩展部署,启动滚动更新,重新启动 pod 或者部署新的应用程序。

仪表板还提供相关集群 Kubernetes 资源状态和任何可能出现的错误信息。

在这里插入图片描述

二、安装 kubernetes-dashboard

使用官网提供的 deploy/recommended.yaml 清单安装 kubernetes-dashboard, 或者使用 Helm 安装,可参考 Artifact Hub 地址:https://artifacthub.io/packages/helm/k8s-dashboard/kubernetes-dashboard

1.下载配置文件

可使用下列命令下载 recommended.yaml 修改默认配置

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml 

安装默认配置 kubernetes-dashboard

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.0/aio/deploy/recommended.yaml 
2、 修改默认配置

修改其中 kubernetes-dashboard 的 service ,指定 nodePort 端口为 18443

kind: Service apiVersion: v1 metadata:   labels:     k8s-app: kubernetes-dashboard   name: kubernetes-dashboard   namespace: kubernetes-dashboard spec:   type: NodePort   ports:     - port: 443       targetPort: 8443       nodePort: 18443   selector:     k8s-app: kubernetes-dashboard 
3、安装 kubernetes-dashboard
[root@master dashboard]# kubectl apply -f recommended.yaml  namespace/kubernetes-dashboard created serviceaccount/kubernetes-dashboard created service/kubernetes-dashboard created secret/kubrnetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created
4、访问 web

访问指定的 18443 端口,master 节点 IP 为 192.168.25.100,则访问地址:https://192.168.25.100:18443/

5、获取 token

K8S有两种用户:User 和 Service Account,User 给人用,Service Account 给进程用,让进程有相关权限,Dashboard 是一个进程,我们就可以创建一个Service Account 给它

kubectl get serviceaccount  -n kubernetes-dashboard
kubectl describe serviceaccount/kubernetes-dashboard -n kubernetes-dashboard
kubectl get secret -n kubernetes-dashboard
kubectl describe secret/kubernetes-dashboard-token-28jqz -n kubernetes-dashboard

如下,上面命令可以简化为一条命令(kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep kubernetes-dashboard | awk '{print $1}')

6、测试登录

使用查询到的 token 登录 kubernetes dashboard,登陆成功 出现上述问题的原因是因为,kubernetes-dashboard 这个账户的角色权限不够

7、创建新用户

创建 dashboard-adminuser.yaml,可参考:https://github.com/kubernetes/dashboard/blob/master/docs/user/access-control/creating-sample-user.md

cat > dashboard-adminuser.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard  
EOF

创建登录用户

[root@master dashboard]# kubectl apply -f dashboard-adminuser.yaml
serviceaccount/admin-user created

说明:上面创建了一个叫 admin-user 的服务账号,并放在kubernetes-dashboard 命名空间下,并将 cluster-admin 角色绑定到admin-user账户,这样admin-user账户就有了管理员的权限。默认情况下,kubeadm创建集群时已经创建了cluster-admin角色,我们直接绑定即可。

查看admin-user账户的token

[root@master dashboard]# kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Name:         admin-user-token-6wkxr
Namespace:    kubernetes-dashboard
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: admin-user
              kubernetes.io/service-account.uid: a90464fd-83bb-4435-90ee-c59493b81889

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1099 bytes
namespace:  20 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6InhGU29vbVM3TG90R1NzTzZfT2VlTUVWZTIySXlGbHZxUW5laVZ5T29lRTAifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLTZ3a3hyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJhOTA0NjRmZC04M2JiLTQ0MzUtOTBlZS1jNTk0OTNiODE4ODkiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6YWRtaW4tdXNlciJ9.gaqvh1E1yH0SmKT-cDhzGOl_-g5aZmiH7SuRLXuAnIdBRAhC1dYFFqmkUenspepRb4zkMX0vojYjq0twGKAP3IAI4h0H24QVXhOBMiMWH1IyZdprZ32K3j2egdCuRkb3BEwm1M0zR8XZlLZRI-__Hl5QCntNwO6Lh21nmRx-f9rG1T-omGSWiZnRn4ZW0kS0N0sunAYFfsRWNKh6Pnd3WzfNqa3rBNaULOeDStlL1DfcO_fhqWbeuWWwnA66Q7fX7Xa3oP5qymt-C_lvM_hod8N3TVzVKY2ToiqMPmGAflQoHf4P-iYdH2sG38_hYM0LJvpmy8zdVvZSo9LNBHsEeQ

注销重新使用 admin-user 服务账号的 token 登录即可

8、设置 token 过期时间

用 token 登陆 kubernetes-dashboard,默认的 token 认证时间是 900s/15 分钟,失效需要重新登录灰常麻烦,下面添加 - --token-ttl=604800 (单位 s)参数修改 token 过期时间为 7 天。 kubernetes-dashboard 平台可使用如下方法,你也可以选择修改 recommended.yaml 文件,重新 apply 即可

步骤:

  • 选择 kubernetes-dashboard 命名空间
  • 编辑 deployment/kubernetes-dashboard 配置文件
  • 在对应位置添加 - --token-ttl=604800 (单位 s)
  • 点击更新即可生效

标签: zr2012w3y二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台