「Kubernetes」- 图形化管理界面(Dashboard) @20210227

通过 Web UI (Dashboard) 界面,可以对集群的资源进行管理、显示正在运行的应用,查看资源状态,查看集群信息。本文将介绍如何安装部署 Kubernetes Dashboard 图形化界面。

项目地址:

系统环境

属性 参数
系统环境: CentOS Linux release 7.5.1804 (Core)
软件版本: Kubernetes v1.14.0
  Docker version 19.03.2, build 6a30dfc
  Helm v3.0.0-beta.3
网络信息: k8s-master x 1 / 172.31.253.28
  k8s-node01 x 1 / 172.31.253.29

第一步、下载部署文件

Kubernetes v1.14.0 and Dashboard v2.0.0-beta1

根据 Release 描述,Kubernetes 1.14 应该使用 Dashboard v2.0.0-beta1 版本:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta1/aio/deploy/recommended.yaml

Kubernetes v1.16.2 and Dashboard v2.0.0-rc3

根据 Release 描述,v2.0.0-rc3 与 Kubernetes 1.16 兼容;而 v2.0.0-rc4 由于 Kubernetes API 版本之间的重大更改,某些功能无法正常使用。因此我们部署 v2.0.0-rc3 版本:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc3/aio/deploy/recommended.yaml

第二步、调整部署文件

根据自己的需要修改部署文件:

使用私有镜像地址

比如修改镜像地址,使用私有镜像仓库中的镜像:
1)拉取目标镜像,创建标签,推送虽有仓库;
2)修改 YAML 文件;

修改命名空间位置

2)使用自己规划的命名空间;

第三步、应用部署文件

官方配置使用 kubernetes-dashboard 命令空间(由于是 beta 版本,因此放在单独的命名空间中,便于后期清理)。

#!/bin/sh

# 删除旧命名空间(可选)
kubectl delete ns kubernetes-dashboard

# 应用部署文件
kubectl apply -f recommended.yaml

# 登录仪表盘

-「SKIP button in kubernetes dashboard is missing #703
在新版本的Kubernetes Dashboard中,出于安全考虑,不再提供SKIP按钮,所以通过Dashboard集群操作时,需要先创建口令。

-「How to sign in kubernetes dashboard?
关于如何生成口令可以参考该文章。

# 暴露服务(Ingress)

为了允许外部访问,我们通过Ingress暴露服务,但是要进行“特殊配置”。情况是这样的,前端Nginx Ingress会解码HTTPS连接,然后向后端的Dashboard传递HTTP请求,而Dashboard只处理HTTPS连接,这就导致无法连接。解决办法有两个:使Dashboard监听80端口;将HTTPS连接直通Dashboard容器。

扫描二维码关注公众号,回复: 12600455 查看本文章

方法一、使Dashboard监听80端口

我们并不想介绍,并不安全,也不是官方推荐做法。下面是容器启动参数:

--auto-generate-certificates=false
--insecure-bind-address=0.0.0.0
--port=80
--insecure-port=9090
--enable-insecure-login

通过上述参数启用HTTP协议(这可是别人传给我的)。

方法二、将HTTPS连接直通Dashboard容器

这是我们目前采用的方法,需要进行以下操作:

	1)由于Nginx Ingress Controller默认禁用SSL直通,所以要修改它的资源定义(Daemonset或Deployment),在容器启动参数中添加''--enable-ssl-passthrough''选项,以启用SSL直通。但是这只是启用SSL直通功能,而进行SSL直通需要单独配置。
	2)在Dashboard的Ingress定义中,添加''nginx.ingress.kubernetes.io/ssl-passthrough: true''注解,以进行直通。
	3)如果想要配置TLS证书,参考「[[05.Kubernetes Cluster:z.Error List (Kubernetes):DASHBOARD - Chrome NET ERR CERT INVALID|DASHBOARD - Chrome NET ERR CERT INVALID]]」笔记,过程是类似的(修改kubernetes-dashboard-certs密钥)。

最后绑定HOST进行访问测试即可(详细过程略过)。

相关链接

Kubernetes/TAKS/Web UI (Dashboard)
GitHub/kubernetes/dashboard/docs/user/access-control/creating-sample-user.md

相关文章

「Kubernetes」- 部署NGINX Ingress Controller组件
「Kubernetes」- 安装cert-manager组件
「K8s」- Traefik Installation
「NGINX Ingress Controller」- 修改默认重定向状态码
「Rook-Ceph」- 集群环境搭建

参考文献

GitHub/helm/charts/stable/kubernetes-dashboard
GitHub/kubernetes/dashboard/v2.0.0-beta4
NGINX Ingress Controller/Command line arguments
NGINX Ingress Controller/Annotations/SSL Passthrough

猜你喜欢

转载自blog.csdn.net/u013670453/article/details/114190019
今日推荐