博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kubernetes Dashboard 设置用户密码登陆
阅读量:5797 次
发布时间:2019-06-18

本文共 6126 字,大约阅读时间需要 20 分钟。

Kubernetes Dashboard 设置用户密码登陆

标签(空格分隔): Kubernetes

2019年05月20日


仪表板是基于Web的Kubernetes用户界面。您可以使用仪表板将容器化应用程序部署到Kubernetes集群,对容器化应用程序进行故障排除,并管理集群本身及其伴随资源。您可以使用仪表板来概述群集上运行的应用程序,以及创建或修改单个Kubernetes资源(例如部署,作业,守护进程等)。例如,您可以使用部署向导扩展部署,启动滚动更新,重新启动Pod或部署新应用程序。

image_1dba6f63e1u87mic7sp10kma953n.png-47.8kB

默认Kubernetes UI界面是使用token登陆,但是由于token相比较麻烦。我们这里使用密码登陆

</br>

1.首先确保K8S集群内部一切正常

[root@i4t ~]# kubectl get nodeNAME                   STATUS   ROLES    AGE   VERSIONyzsjhl82-138.opi.com   Ready    
22h v1.13.5yzsjhl82-139.opi.com Ready
22h v1.13.5yzsjhl82-140.opi.com Ready
22h v1.13.5yzsjhl82-142.opi.com Ready
22h v1.13.5[root@i4t ~]# kubectl get pod --all-namespacesNAMESPACE NAME READY STATUS RESTARTS AGEdefault busybox 1/1 Running 23 22hkube-system coredns-d7964c8db-2t8wl 1/1 Running 1 22hkube-system coredns-d7964c8db-sbztp 1/1 Running 1 22hkube-system kube-flannel-ds-amd64-cv5hx 1/1 Running 2 22hkube-system kube-flannel-ds-amd64-f2f7x 1/1 Running 2 22hkube-system kube-flannel-ds-amd64-vmm74 1/1 Running 2 22hkube-system kube-flannel-ds-amd64-zgfmq 1/1 Running 1 22h

2.配置

首先需要说明一点,默认kubernetes Dashboard是需要token登陆。不方便登记,我们可以让dashboard使用用户密码验证登陆

image_1dba4dg9m19p8bed1qgi1km28hf9.png-69.3kB

需要注意几点

  • 修改apiserver
  • 创建用户密码文件
  • 创建yaml文件

[一] 在master上节点上创建文件(用户密码文件)

cat /etc/kubernetes/basic_auth_fileadmin,admin,1cyh,cyh,2#前面为用户,后面为密码,数字为用户ID不可重复

[二] 在所有master的apiserver启动文件添加一行配置

vim /usr/lib/systemd/system/kube-apiserver.service--basic-auth-file=/etc/kubernetes/basic_auth_file \#添加完毕后重启api-server

这里需要说明,以上操作在所有master上执行,在所有节点操作是为了防止有pod飘到非master节点,当然也可以做pod亲和力

[三]创建yaml文件

wget http://down.i4t.com/k8s-passwd-dashboard.yaml| kubectl apply -f k8s-passwd-dashboard.yaml

为了防止地址失效,我这里在手动cp一份

# ------------------- Dashboard Secret ------------------- #apiVersion: v1kind: Secretmetadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard-certs  namespace: kube-systemtype: Opaque---# ------------------- Dashboard Service Account ------------------- #apiVersion: v1kind: ServiceAccountmetadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kube-system---# ------------------- Dashboard Role & Role Binding ------------------- #kind: RoleapiVersion: rbac.authorization.k8s.io/v1metadata:  name: kubernetes-dashboard-minimal  namespace: kube-systemrules:  # Allow Dashboard to create 'kubernetes-dashboard2-key-holder' secret.- apiGroups: [""]  resources: ["secrets"]  verbs: ["create"]  # Allow Dashboard to create 'kubernetes-dashboard2-settings' config map.- apiGroups: [""]  resources: ["configmaps"]  verbs: ["create"]  # Allow Dashboard to get, update and delete Dashboard exclusive secrets.- apiGroups: [""]  resources: ["secrets"]  resourceNames: ["kubernetes-dashboard-key-holder", "kubernetes-dashboard-certs"]  verbs: ["get", "update", "delete"]  # Allow Dashboard to get and update 'kubernetes-dashboard2-settings' config map.- apiGroups: [""]  resources: ["configmaps"]  resourceNames: ["kubernetes-dashboard-settings"]  verbs: ["get", "update"]  # Allow Dashboard to get metrics from heapster.- apiGroups: [""]  resources: ["services"]  resourceNames: ["heapster"]  verbs: ["proxy"]- apiGroups: [""]  resources: ["services/proxy"]  resourceNames: ["heapster", "http:heapster:", "https:heapster:"]  verbs: ["get"]---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: kubernetes-dashboard-minimal  namespace: kube-systemroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: kubernetes-dashboard-minimalsubjects:- kind: ServiceAccount  name: kubernetes-dashboard  namespace: kube-system---# ------------------- Dashboard Deployment ------------------- #kind: DeploymentapiVersion: apps/v1beta2metadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kube-systemspec:  replicas: 1  revisionHistoryLimit: 10  selector:    matchLabels:      k8s-app: kubernetes-dashboard  template:    metadata:      labels:        k8s-app: kubernetes-dashboard    spec:      containers:      - name: kubernetes-dashboard        image: mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.8.3        ports:        - containerPort: 8443          protocol: TCP        args:          - --auto-generate-certificates          - --authentication-mode=basic          # Uncomment the following line to manually specify Kubernetes API server Host          # If not specified, Dashboard will attempt to auto discover the API server and connect          # to it. Uncomment only if the default does not work.          # - --apiserver-host=http://my-address:port        volumeMounts:        - name: kubernetes-dashboard-certs          mountPath: /certs          # Create on-disk volume to store exec logs        - mountPath: /tmp          name: tmp-volume        livenessProbe:          httpGet:            scheme: HTTPS            path: /            port: 8443          initialDelaySeconds: 30          timeoutSeconds: 30      volumes:      - name: kubernetes-dashboard-certs        secret:          secretName: kubernetes-dashboard-certs      - name: tmp-volume        emptyDir: {}      serviceAccountName: kubernetes-dashboard      # Comment the following tolerations if Dashboard must not be deployed on master      tolerations:      - key: node-role.kubernetes.io/master        effect: NoSchedule---# ------------------- Dashboard Service ------------------- #kind: ServiceapiVersion: v1metadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard  namespace: kube-systemspec:  type: NodePort  ports:    - port: 80      targetPort: 8443      nodePort: 30000  selector:    k8s-app: kubernetes-dashboard

我们可以用过下面命令进行检查

kubectl get pod,svc -n kube-system
ui.png-296.6kB

这里要说一点,我这里的镜像使用的是v1.8.3如果觉得版本低可以更高版本的。

1

访问dashboard界面

由于没有ingress,使用的是IP访问。所以会提示我们证书不安全,我们这里点击忽略直接访问。个别浏览器会造成打不开的,建议使用谷歌或火狐

访问地址:

在任意一台master上访问即可

3.png-223.7kB

这里需要我们输入api-server指定的文件里面的账号密码

跳过是没有权限查看k8s里面所有的信息

image_1dba6516pomk191eenjeg31js22l.png-85.2kB

4.png-450.2kB

转载于:https://blog.51cto.com/abcdocker/2397969

你可能感兴趣的文章
微软将停止对 IE 8、9和10的支持
查看>>
微服务架构会和分布式单体架构高度重合吗
查看>>
如何测试ASP.NET Core Web API
查看>>
《The Age of Surge》作者访谈
查看>>
测试人员的GitHub
查看>>
Spring Web Services 3.0.4.RELEASE和2.4.3.RELEASE发布
查看>>
有关GitHub仓库分支的几个问题
查看>>
无服务器计算的黑暗面:程序移植没那么容易
查看>>
云原生的浪潮下,为什么运维人员适合学习Go语言?
查看>>
Java生成GUID的方法
查看>>
Webpack入门教程三十
查看>>
EAServer 6.1 .NET Client Support
查看>>
锐捷交换机密码恢复(1)
查看>>
Kali linux virtualbox rc=1908 错误解决办法
查看>>
Erlang学习总结之Erlang语法中的逗号(,)、分号(;),句号(.)的正确用法...
查看>>
linux软件包管理之三(源代码安装)
查看>>
数据库三范式是什么?
查看>>
[转载]设置Ubuntu自动连接无线,无须再输入密钥环和无线密码
查看>>
SQL Server 2014 许可证(三)各版本的许可证
查看>>
九叔Xen App测试报告
查看>>