Kubernetes-dashboard的部署及认证

本文详细介绍如何在Kubernetes集群中部署Dashboard,并提供两种登录方式:使用token认证和kubeconfig认证,帮助用户实现集群的图形化管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

部署Kubernetes-dashboard

简介:

dashboard是通用的基于Web的k8s集群图形化管理工具,它允许用户管理在集群中运行的应用程序,并对它们进行故障排除,以及管理集群本身。

部署:

  1. 部署dashboard应用资源:
    kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

     

  2. 修改为NodePort类型的service,让集群外部也可以访问dashboard:

    kubectl patch svc kubernetes-dashboard -p '{"spec": {"type":"NodePort"}}' -n kube-system

     

  3. 在集群外部访问dashboard:

 

使用token认证进行登录

dashboard运行在POD资源中的,所以呢dashboard所在的POD要以serviceAcount类型的用户身份认证到k8s集群上去访问k8s的api server组件

  1.  创建serviceAccount,假如用户名为dashboard-admin

    kubectl create serviceaccount dashboard-admin -n kube-system

     

  2. 通过clusterrolebinding绑定到内置的cluster-admin角色上

    kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

     

  3. 查看dashboard-admin用户的securet:

    kubectl get secret -n kube-system
    
    kubectl describe secret dashboard-admin-token-6lk9l  -n kube-system

     

  4. 复制dashboard-admin用户的对应的securet对象中的token进行登录dashboard:

     

 

使用kubeconfig认证进行登录

上面认证时使用的token采用的是base64编码,并登录时需要复制原内容粘贴到文本框中,存储和操作非常不方便,建议使用将它保存到kubeconfig配置文件中,使用kubeconfig的认证方式进行登录。

  1. 设置集群信息:

     kubectl config set-cluster kubernetes --certificate-authority=/etc/kubernetes/pki/ca.crt --server="https://172.16.0.246:30160" --embed-certs=true --kubeconfig=/root/def-ns-admin.conf
    
    kubectl config view --kubeconfig=/root/def-ns-admin.conf

     

  2. 设置用户信息:

    kubectl get secret def-ns-admin-token-7jfxq -o jsonpath={.data.token} | base64 -d
    
    DEF_NS_ADMIN_TOKEN=$( kubectl get secret def-ns-admin-token-7jfxq -o jsonpath={.data.token} | base64 -d)
    
    kubectl config set-credentials def-ns-admin --token=$DEF_NS_ADMIN_TOKEN --kubeconfig=/root/def-ns-admin.conf
    
    kubectl config view --kubeconfig=/root/def-ns-admin.conf

     

  3. 设置context:

    kubectl config set-context def-ns-admin@kubernetes --cluster=kubernetes --user=def-ns-admin --kubeconfig=/root/def-ns-admin.conf
    
    kubectl config view --kubeconfig=/root/def-ns-admin.conf

     

  4. 设置当前认证时使用context

    kubectl config use-context def-ns-admin@kubernetes --kubeconfig=/root/def-ns-admin.conf
    
    kubectl config view --kubeconfig=/root/def-ns-admin.conf

     

  5. 将之前生成的config复制到远程客户端

     scp root@172.16.0.246:/root/def-ns-admin.conf ./

     

  6. 在运行客户端访问dashboard,使用刚才生成的kubeconfig文件进行论证登录

 

 

 

### 安装和部署 Kubernetes Dashboard 2.8.1 #### 准备工作 为了成功安装和配置Kubernetes Dashboard,确保集群已经正确设置并运行。Node节点应已启动`kubelet`, `kube-proxy`, 和其他必要的组件如Docker和Flannel网络插件[^1]。 #### 下载Dashboard资源清单文件 获取适用于版本2.8.1的官方YAML文件用于创建Dashboard实例。通常可以从GitHub仓库下载特定标签下的发布版: ```bash wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.8.1/aio/deploy/recommended.yaml ``` #### 修改资源配置 编辑上述命令拉取下来的`recommended.yaml`文件来适应具体的环境需求。特别是注意ServiceAccount, ClusterRoleBinding以及Deployment部分的内容以匹配实际使用的认证机制和服务暴露方式。 对于通过Token验证的方式,在完成部署之后可以按照如下方法查询Admin用户的Token: ```bash kubectl get secret -n kubernetes-dashboard | grep admin-user # 替换成你所定义的服务账户名称 kubectl describe secret $(kubectl get secrets -o name | grep admin-user) -n kubernetes-dashboard ``` 此过程会返回一个Base64编码后的token字符串,该字符串可用于登录界面的身份验证[^4]。 #### 应用配置至集群 当所有的准备工作完成后,就可以应用这些变更到Kubernetes环境中去了: ```bash kubectl apply -f recommended.yaml ``` 这一步骤将会在默认命名空间(`kubernetes-dashboard`)下建立所有必需的对象,包括但不限于Pods、Services等。 #### 访问仪表板UI 一旦确认所有Pod都处于Running状态,则可以通过浏览器访问外部IP地址加上指定端口的方式来打开Web UI页面。如果启用了HTTPS协议的话还需要提供相应的证书信息。 例如,假设服务被映射到了主机上的30002端口,那么完整的URL可能是这样的形式:`https://<master-node-ip>:30002/`。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值