kubernetes1.9安装dashboard,以及token认证问题

写在前面

dashboard的安装非常简单。但按照官网建议的方式安装完成后,输入token登录时会没有反应。
这个问题困扰了我一整天,最终在这里找到了答案。
原因如下:
按官方文档建议的方式安装完dashboard后,使用kubectl proxy代理的方式来访问webUI。使用这个代理的方式访问就会导致登录无响应的问题。
我们需要将dashboard的service类型改为NodePort,将端口映射到虚拟机上,然后直接通过虚拟机的ip地址登录

安装dashboard

首先下载官网提供的dashboard.yaml

wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

修改yaml,添加NodePort.

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  # 添加Service的type为NodePort
  type: NodePort
  ports:
    - port: 443
      targetPort: 8443
      # 添加映射到虚拟机的端口,k8s只支持30000以上的端口
      nodePort: 30001
  selector:
    k8s-app: kubernetes-dashboard

安装dashboard

kubectl create -f kubernetes-dashboard.yaml

获取token

这里有一个简单的命令:

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token

也可以自己手动查询:

# 输入下面命令查询kube-system命名空间下的所有secret
kubectl get secret -n kube-system

# 然后获取token。只要是type为service-account-token的secret的token都可以使用。
# 比如我们获取replicaset-controller-token-wsv4v的touken
kubectl -n kube-system describe replicaset-controller-token-wsv4v

访问dashboard

通过node节点的ip,加刚刚我们设置的nodePort就可以访问了。

https://<node-ip>:<node-port>

认证有两种方式:

  • 通过我们刚刚获取的token直接认证
  • 通过Kubeconfig文件认证
    只需要在kubeadm生成的admin.conf文件末尾加上刚刚获取的token就好了。

    - name: kubernetes-admin
      user:
        client-certificate-data: xxxxxxxx
        client-key-data: xxxxxx
        token: "在这里加上token"

78 声望
0 粉丝
0 条评论
推荐阅读
求最大公约数和最小公倍数
该定理为gcd(a, b) == gcd(b, a%b), 意思就是a与b的最大公约数, 跟b与a除b的余数相同. 根据此定理,我们即可写出求最大公约数的算法.

VincentFF阅读 997

Kubernetes v1.26 新特性一览
我每期的 「k8s生态周报」都有一个叫上游进展的部分,所以很多值得关注的内容在之前的文章中已经发过了。这篇中我会再额外介绍一些之前未涵盖的,和之前介绍过的值得关注的内容。

张晋涛2阅读 610评论 1

封面图
深入剖析容器网络和 iptables
Docker 能为我们提供很强大和灵活的网络能力,很大程度上要归功于与 iptables 的结合。在使用时,你可能没有太关注到 iptables 的作用,这是因为 Docker 已经帮我们自动完成了相关的配置。

张晋涛3阅读 1.3k

封面图
openSSH升级公钥失效Permission denied (publickey)解决方案
背景centos系统升级openSSH后,服务器上无法再拉取代码,报错如下:原因服务器重新安装SSH后公钥改变,需要重新安装ssh-keygen -t rsa -C "邮箱地址"生成公钥,删除gitlab原有公钥,但是git pull依然报错如下:依...

兰俊秋雨1阅读 1.2k

使用kubeasz部署高可用kubernetes集群
本实验采用kubeasz作为kubernetes环境部署工具,它是一个基于二进制方式部署和利用ansible-playbook实现自动化来快速部署高可用kubernetes集群的工具,详细介绍请查看kubeasz官方。本实验用到的所有虚拟机默认软...

李朝阳2阅读 430

Kubernetes 证书管理系列(一)
大家好,我是张晋涛。这是一个系列文章,将会通过七篇内容和大家一起聊聊 Kubernetes 中的证书管理。以下是内容概览:如上所示,在第一篇中,我们将从原理出发,来理解 Kubernetes 中的证书及其相关的作用,然后...

张晋涛2阅读 821

封面图
CodeGalaxy 推出轻量集群,可在云主机上一键搭建 K8s
CodeGalaxy 是 Swoole 官方推出的 ServerLess 平台,底层基于 Docker 和 K8s,帮助开发者更简单方便地管理云上的 Web 应用/服务。CodeGalaxy 是完全免费的,用户不需要付费即可使用。

韩天峰2阅读 411

78 声望
0 粉丝
宣传栏