zoukankan      html  css  js  c++  java
  • K8S--可视化界面Kubernetes Dashboard(API Server方式)

    一、安装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,这位博主写的非常的清楚。

    ------------------------------------------------------------------
    -----------------------------------------------------------
    ---------------------------------------------
    朦胧的夜 留笔~~
  • 相关阅读:
    spring cloud 之config配置
    java HTTP连接 可以结合springcloud服务发布注册
    webStrom的注册码地址
    VUE的富文本编辑器
    vue2.0对于IE9浏览器的兼容
    用花生壳代理出现Invalid Host header错误
    用于时间统计数据的SQL
    Leetcode 136. Single Number
    Leetcode 36. Valid Sudoku
    VS Code
  • 原文地址:https://www.cnblogs.com/liconglong/p/15057820.html
Copyright © 2011-2022 走看看