ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

K8S--可视化界面Kubernetes Dashboard(API Server方式)

2021-07-25 15:03:30  阅读:307  来源: 互联网

标签:kubectl kubernetes Kubernetes -- Server admin dashboard https kube


一、安装Kubernetes Dashboard

1、下载yaml文件

  查看K8S版本:kubectl version,我的版本是1.15,那么就可以使用v2.0.0-beta4版本的Kubernetes-dashboard。版本的对应关系:https://github.com/kubernetes/dashboard/releases

  以下命令在Master节点执行

#如果需要进行修改,需要先下载到本地
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
#如果不需要修改的话直接使用,我这里就不需要修改
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml

  查看pod:kubectl get pod --all-namespaces

      

 

 

 2、访问:https://192.168.124.17:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy

  这里可能会出现以下访问结果:

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {
    
  },
  "status": "Failure",
  "message": "services \"https:kubernetes-dashboard:\" is forbidden: User \"system:anonymous\" cannot get services/proxy in the namespace \"kube-system\"",
  "reason": "Forbidden",
  "details": {
    "name": "https:kubernetes-dashboard:",
    "kind": "services"
  },
  "code": 403
}

  这是因为最新版的k8s默认启用了RBAC,并为未认证用户赋予了一个默认的身份:anonymous。对于API Server来说,它是使用证书进行认证的,我们需要先创建一个证书:

    (1)首先找到kubectl命令的配置文件,默认情况下为/etc/kubernetes/admin.conf,我这里已经复制到了$HOME/.kube/config中。

    (2)然后我们使用client-certificate-dataclient-key-data生成一个p12文件,可使用下列命令:

# 生成client-certificate-data
grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt

# 生成client-key-data
grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key

# 生成p12
openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-client"

3、然后将生成的p12文件添加到浏览器,然后重新打开浏览器,再次访问。

      

 

 

二、创建、绑定用户 

  1、创建admin-user账号,并放在kube-system名称空间下 

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

    执行创建账号命令

kubectl create -f admin-user.yaml

  2、绑定角色

  默认情况下,kubeadm创建集群时已经创建了admin角色,我们直接绑定即可:

# admin-user-role-binding.yaml
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

  执行绑定命令:

kubectl create -f  admin-user-role-binding.yaml

  3、获取Token:

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

  

 

 

  4、使用token登录Kubernetes Dashboard

  

 

 

 说明:

  目前访问Dashboard有四种方式:NodePort、API Server、kubectl proxy、Ingress,这里只演示了API Server一种,其他的可以参照https://www.cnblogs.com/RainingNight/p/deploying-k8s-dashboard-ui.html,这位博主写的非常的清楚。

标签:kubectl,kubernetes,Kubernetes,--,Server,admin,dashboard,https,kube
来源: https://www.cnblogs.com/liconglong/p/15057820.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有