博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dashboard安装配置
阅读量:5925 次
发布时间:2019-06-19

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

获取dashboard yaml文件

curl -O https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

更改官网镜像地址

sed -i 's/k8s\.gcr\.io/jicki/g' kubernetes-dashboard.yaml

导入文件

# kubectl apply -f kubernetes-dashboard.yaml secret "kubernetes-dashboard-certs" createdserviceaccount "kubernetes-dashboard" createdrole "kubernetes-dashboard-minimal" createdrolebinding "kubernetes-dashboard-minimal" createddeployment "kubernetes-dashboard" createdservice "kubernetes-dashboard" created

 

访问方式

Kubernetes 暴露服务的方式目前只有三种:LoadBlancer Service、NodePort Service、Ingress

1、NodePort

为了方便验证,这里采用NodePort是将节点直接暴露在外网的一种方式,只建议在开发环境,单节点的安装方式中使用。

启用NodePort很简单,只需执行kubectl edit命令进行编辑,将type: ClusterIP修改为type: NodePort(将service监听端口映射到node节点

保存后使用kubectl get service命令来查看自动生成的端口

# kubectl -n kube-system edit service kubernetes-dashboard   type: ClusterIP --->type:NodePort
#kubectl -n kube-system get svcNAME                           TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)         AGE     SELECTORservice/kubernetes-dashboard   NodePort    10.254.37.88   
443:30469/TCP 2d18h k8s-app=kubernetes-dashboard

此时可以通过局域网进行正常访问

https://172.17.213.60:30469

2、API Server

做好下面的浏览器访问kube-apiserver安全端口后可以直接通过 API Server的方式进行访问:

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

 

Dashboard登陆认证

首先创建一个dashboard rbac超级用户

# vim dashboard-admin-rbac.yaml

---apiVersion: v1kind: ServiceAccountmetadata:  labels:    k8s-app: kubernetes-dashboard  name: kubernetes-dashboard-admin  namespace: kube-system---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: kubernetes-dashboard-admin  labels:    k8s-app: kubernetes-dashboardroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: cluster-adminsubjects:- kind: ServiceAccount  name: kubernetes-dashboard-admin  namespace: kube-system

# kubectl apply -f dashboard-admin-rbac.yaml

查看超级用户的token名称

# kubectl -n kube-system get secret | grep kubernetes-dashboard-admin

查看token部分

# kubectl describe -n kube-system secret/kubernetes-dashboard-admin-token-*****

登陆web ui选择“令牌登陆”,输入上面的token

 

浏览器访问kube-apiserver安全端口

一般情况下访问kube-apiserver的安全端口6443时,会提示证书不被信任。这是因为 kube-apiserver 的 server 证书是我们创建的根证书 ca.pem 签名的,需要将根证书 ca.pem 导入操作系统,并设置永久信任。对于 Mac,操作如下: 启动台-->搜索输入“钥匙串访问”

对于win使用以下命令导入ca.perm

keytool -import -v -trustcacerts -alias appmanagement -file "PATH...\\ca.pem" -storepass password -keystore cacerts

再次访问 https://172.17.213.60:6443/,已信任,但提示 401,未授权的访问:Unauthorized

我们需要给浏览器生成一个 client 证书,访问 apiserver 的 6443 https 端口时使用。

这里使用部署 kubectl 命令行工具时创建的 admin 证书、私钥和上面的 ca 证书,创建一个浏览器可以使用的 PKCS#12/PFX 格式的证书:

openssl pkcs12 -export -out admin.pfx -inkey admin-key.pem -in admin.pem -certfile ca.pem

将创建的 admin.pfx 导入到系统的证书中

重启浏览器,再次访问时提示选择一个浏览器证书,选中上面导入的 admin.pfx 后实现访问正常。

 

客户端选择证书的原理

1、证书选择是在客户端和服务端 SSL/TLS 握手协商阶段商定的;2、服务端如果要求客户端提供证书,则在握手时会向客户端发送一个它接受的 CA 列表;3、客户端查找它的证书列表(一般是操作系统的证书,对于 Mac 为 keychain),看有没有被 CA 签名的证书,如果有,则将它们提供给用户选择(证书的私钥);4、用户选择一个证书私钥,然后客户端将使用它和服务端通信;

 

转载地址:http://fbavx.baihongyu.com/

你可能感兴趣的文章
[转]让Linux的tty界面支持中文
查看>>
Introduction to Change Data Capture (CDC) in SQL Server 2008[转]
查看>>
Vertex Texture Fetch(VTF) && Fragment Texture Fetch ( FTF )
查看>>
文件用户如何将一个有界面的正常app和一个或多个越狱插件.deb同时安装到手机上...
查看>>
Linux学习之CentOS(二十三)--Linux软件管理之源代码以及RPM软件包管理
查看>>
次优二叉树
查看>>
SQL Server CONVERT() 函数
查看>>
我看电商(作者近三十年从事零售及电子商务管理的总结和分享)
查看>>
Form身份验证
查看>>
【Android开发】Android应用程序目录结构
查看>>
腾讯大湘网某处csrf(city.hn.qq.com)可投诉刷留言
查看>>
也来谈谈这致命的手机充电器
查看>>
zendframework配置篇
查看>>
C++ 函数映射使用讲解
查看>>
域名的MX设置及校验方法
查看>>
从零开始学C++之STL(七):剩下5种算法代码分析与使用示例(remove 、rotate 、sort、lower_bound、accumulate)...
查看>>
飘逸的python - hack输出流便于调试
查看>>
2013年7月27日杂记
查看>>
Android应用程序之间共享文字和图片(一)
查看>>
Android SDCard Mount 流程分析
查看>>