kubernetes(k8s)组件安装-dashboard的安装

安装

1. Kubernetes Dashboard 是 k8s集群的一个 WEB UI管理工具,代码托管在 github 上,
地址:https://github.com/kubernetes/dashboard
2. 安装

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

访问方式有三种:
①通过节点地址访问
在配置文件里加入如下字段
在这里插入图片描述
3.部署

kubectl create -f kubernetes-dashboard.yaml

在这里插入图片描述
4.查看其外网访问端口

kubectl get svc kubernetes-dashboard -n kube-system 

在这里插入图片描述
访问url:
https://13x.1xx.48.xxx:32740/
在这里插入图片描述
②使用 Kube-proxy API 代理形态访问

kubectl proxy --address="0.0.0.0" --accept-hosts='^localhost$,^127\.0\.0\.1$,^172\.24\.4'

http://172.24.4.15:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
要想通过代理方式连接服务,必需要通过特定格式的 Proxy URL:

http://<apiserver-address>/api/v1/namespaces/<service-namespace>/services/[https:]<service-name>:[<port-name>]/proxy 
  • apiserver-address就为你所输入kubectl proxy命令那台机器的地址
  • port-name为可选项,如果你没有指定端口的名字
  • 协议为可选项,如果你使用的为 http
    这里有坑,注意 service-name 和 port-name 之间的冒号,即使没有使用 port-name,而service-name 后的冒号也不可以少 参考官网的文档有误
    代理地址请修改为你的Master节点IP
    ③通过端口转发访问
    kubectl port-forward -n kubernetes-dashboard service/kubernetes-dashboard 8080:443 --address=0.0.0.0

然后直接访问集群中的任何一个节点 IP 加上上面的31694端口即可打开 dashboard 页面了
这里我选择第二种方式
在这里插入图片描述

身份认证

登录 dashboard 的时候支持 Kubeconfig 和token 两种认证方式,Kubeconfig 中也依赖token 字段,所以生成token 这一步是必不可少的。

生成token

我们创建一个admin用户并授予admin 角色绑定,使用下面的yaml文件创建admin用户并赋予他管理员权限,然后就可以通过token 登陆dashbaord,这种认证方式本质实际上是通过Service Account 的身份认证加上Bearer token请求 API server 的方式实现,参考 Kubernetes 中的认证。

kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
  name: admin
  annotations:
    rbac.authorization.kubernetes.io/autoupdate: "true"
roleRef:
  kind: ClusterRole
  name: cluster-admin
  apiGroup: rbac.authorization.k8s.io
subjects:
- kind: ServiceAccount
  name: admin
  namespace: kube-system

---
apiVersion: v1
kind: ServiceAccount
metadata:
   name: admin
   namespace: kube-system
   labels:
      kubernetes.io/cluster-service: "true"
      addonmanager.kubernetes.io/mode: Reconcile
[root@k8s-master k8s-auto]# kubectl apply -f kubernetes_token.yaml 
  clusterrolebinding.rbac.authorization.k8s.io/admin created
  serviceaccount/admin created

在这里插入图片描述

 kubectl get secret admin-token-wkmhh -o jsonpath={
    
    .data.token} -n kube-system |base64 -d;

将上述命令生成的token拿去登录
在这里插入图片描述
这种是秘钥不对,检查修改后重试
在这里插入图片描述
这种是找不到请求的资源,我这里是因为只有一个master节点,上面没有其他服务,正常应如下
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_38774492/article/details/107940372