• kubernetes 1.14安装部署dashboard


    简单介绍

    Dashboard是一个基于web的Kubernetes用户界面。您可以使用Dashboard将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障诊断,并管理集群资源。可以使用Dashboard来获得运行在集群上的应用程序的概观,以及创建或修改单个Kubernetes资源(如Deployments, Jobs, DaemonSets等)。例如,您可以扩展deployment、启动滚动更新、重启pod或使用deploy向导部署新应用程序。

    官网:https://kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/#deploying-the-dashboard-ui

    测试环境

    之前部署的集群环境,如下:

    System Hostname IP
    CentOS 7.6 k8s-master 138.138.82.14
    CentOS 7.6 k8s-node1 138.138.82.15
    CentOS 7.6 k8s-node2 138.138.82.16

    安装步骤

    1. 在master节点直接运行命令

    [root@tlsw-k8s-master ~]# kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended/kubernetes-dashboard.yaml

    注意:官方镜像被墙,最好提前下载好yaml中的镜像文件,可以参考集群部署时的镜像下载脚本。

    2. 查看运行状态

    [root@k8s-master ~]# kubectl get po -n kube-system |grep dashboard
    kubernetes-dashboard-5f7b999d65-45vlk   1/1     Running   0          33s

    3. 创建访问账户

    这里使用Kubernetes的服务帐户机制创建一个新用户,授予该用户管理权限,并使用绑定到该用户的承载令牌登录到dashboadr web界面。

    说明:网上有通过修改yaml文件以NodePort方式登录dashboard,测试发现可能会存在受限于浏览器或者其他原因不够稳妥,故采用以下方式:

    首先在命名空间kube-system中创建名为admin-user的服务帐户,文件内容如下:

    [root@k8s-master ~]# cat dashboard_service_account_admin.yaml 
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: admin-user
      namespace: kube-system

    然后,再创建一个集群角色绑定,文件内容如下:

    [root@k8s-master ~]# cat dashboard_cluster_role_binding_admin.yaml 
    apiVersion: rbac.authorization.k8s.io/v1
    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

    发布到系统中去:

    [root@k8s-master ~]# kubectl apply -f dashboard_service_account_admin.yaml 
    serviceaccount/admin-user created
    [root@k8s-master k8s_dashboard]# kubectl apply -f dashboard_cluster_role_binding_admin.yaml 
    clusterrolebinding.rbac.authorization.k8s.io/admin-user created

    3. 获取用户登录Token

    [root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

    输出如下(记下其中的Token值,登录要用):

    [root@k8s-master ~]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
    Name:         admin-user-token-lj6t8
    Namespace:    kube-system
    Labels:       <none>
    Annotations:  kubernetes.io/service-account.name: admin-user
                  kubernetes.io/service-account.uid: 244cf82e-6a36-11e9-a1f0-005056918527
    
    Type:  kubernetes.io/service-account-token
    
    Data
    ====
    namespace:  11 bytes
    token:      eyJhbGciOiJSUzI1NiIsImtpzCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdwJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWxqNnQ4Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIyNDRjZjgyZS02hTM2LTExZTktYTFmMC0wMDUwNTY5MTg1MjciLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.n-1jqLG-AL6Nmg4dPO20wzMCcQHkBogFx454Ym152xM3YlOdbu6fEak_FLOsFofwaEoM-mD8qyLhmxu0PooXjshEQ9zFFrIxKDR-eV_AXiE63tMG8I08uBYnTDobVUTwPzBtHQ3gL7Cupgly0Qk7sZgkjwrtIuQDoqF8e4BivKo6GsJPWoBXjnJPGFbhLCqarYXK_9jVWAB2uTwA3ODEoobzO975es9AiuY4-NtnM9ym7_Siz8U74ArA51X_pThRvONIzfbad7BqVmLRJ4TV_k36WDwYVdzp1gD83LDbVmINVLdNk0wrkVrlS36yJRquAmzx8xJ_YfPzzElI_ep8qQ
    ca.crt:     1025 bytes
    View Code

    4. 创建导入浏览器的.p12文件

    [root@k8s-master ~]# grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt
    [root@k8s-master ~]# grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key
    [root@k8s-master ~]# openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-web-client"

    取出生成的kubecfg.p12文件,准备导入浏览器。

    5. 将kubecfg.p12导入浏览器(这里使用谷歌浏览器)

    导入成功后,重启浏览器。

    6. 登录Dashboard

    在浏览器地址栏输入:

    https://Your_Master_IP:6443/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

    跳出选择证书后,显示如下:

    输入Token值后,进入:

    至此,kubernetes的web界面dashboard安装完成。

    结束.

  • 相关阅读:
    java-多个数的和
    大道至简第二章
    大道至简第一章感悟上
    Tools
    LruCache
    Fragment
    科普指纹识别
    Python使用MySQL数据库
    Eclipse中添加PyDev插件
    UniversalAndroidImageLoader出现异常:ImageLoader: Unable to resolve host "https": No address associated with host
  • 原文地址:https://www.cnblogs.com/ding2016/p/10789617.html
Copyright © 2020-2023  润新知