基于kubernetes v1.17部署dashboard:v2.0-beta8

一、前言

  Dashboard 是基于网页的 Kubernetes 用户界面。您可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。您可以使用 Dashboard 获取运行在集群中的应用的概览信息,也可以创建或者修改 Kubernetes 资源(如 Deployment,Job,DaemonSet 等等)。例如,您可以对 Deployment 实现弹性伸缩、发起滚动升级、重启 Pod 或者使用向导创建新的应用。

在部署完kubernetes v1.17后,让我们来部署一下dashboard,然后通过图形化界面来对资源进行查看与管理。

二、安装

环境信息

操作系统:CentOS Linux release 7.6.1810 (Core)

docker:19.03.5

kubernetes:v1.17.0

主机名和ip:

hostname ip
master01
192.168.1.230
node01
192.168.1.241
node02
192.168.1.242

部署GitHub上目前最新版本的dashboard v2.0.0-beta8

https://github.com/kubernetes/dashboard/releases

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

修改service通过NodePort方式访问k8s dashboard:

  由于默认的service类型是ClusterIP,我们是自建的kubernetes,无法自动分配ip给service,所以这里我们需要修改一下dashboard的service类型,指定为NodePort以方便我们访问。

编辑我们下载的yaml文件 recommended.yaml

---

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
spec:
  type: NodePort #新加此行
  ports:
    - port: 443
      nodePort: 30001 #新加此行      targetPort: 8443
  selector:
    k8s-app: kubernetes-dashboard

应用配置文件

kubectl apply -f recommended.yaml

之后指定namespace查看pod和service

通过节点ip以及service的端口30001访问dashboard页面

  注意:在没有设置证书的情况下,通过Chrome和ie内核是无法访问这个页面的,我们这里就先使用火狐来继续实验,后面补充通过更新证书来解决此问题。

火狐浏览器:

我们还需要创建一个dashboard用户来登录

创建一个yaml文件,内容如下

[[email protected] ~]# cat create-admin.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard

---

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: kubernetes-dashboard

应用配置文件创建用户

获取到用户的token以用作登录

kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk ‘{print $1}‘)

登录dashboard

成功登录后的界面

三、使用dashboard

在学习完kubernetes的基础后,再来看dashboard,就会对整体架构有更清晰的认识。

在Dashboard中,我们通过kubectl所做的操作大部分都可以可视化操作,比如我们可以对deployment做伸缩:

执行命令以及日志追踪

还可以编辑资源的yaml文件,以及导入yaml文件创建 更新资源


补充:

1、解决Chrome、ie无法正常访问dashboard问题

问题:通过Chrome和ie无法正常访问dashboard

原因是默认证书是0001年1月签发的已经过期

解决思路:生成有效证书替换之前的证书

生成证书

下面是生成 k8s dashboard 域名证书方法,任何一种都可以

  • 通过 https://freessl.cn 网站,在线生成免费1年的证书
  • 通过 Let’s Encrypt 生成 90天 免费证书
  • 通过 Cert-Manager 服务来生成和管理证书

我们这里没有域名,仅仅是通过ip访问测试,所以就通过openssl工具自签一个证书用于测试。

自签证书部分具体参照另一篇博客:https://www.cnblogs.com/tianleblog/p/12161282.html

生成自签名的SSL证书和私钥

#我是在家目录创建的目录mkdir certscd certs#生成私钥openssl genrsa -out dashboard.key 2048#生成csr证书签名请求openssl req -new -out dashboard.csr -key dashboard.key -subj ‘/CN=192.168.1.241‘#生成自签名的ssl证书openssl x509 -req -days 365 -in dashboard.csr -signkey dashboard.key -out dashboard.crt 

重新创建dashboard

删除之前创建的dashboard相关资源

kubectl delete -f create-admin.yaml
kubectl delete -f recommended.yaml

手工创建namespace

kubectl  create namespace kubernetes-dashboard

创建证书存放目录

mkdir $HOME/certs
手工生成secret;后面会将recommend配置中关于certs部分注释掉
kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kubernetes-dashboard

修改 deployment 配置,具体修改见下面配置

$ vim recommended.yaml

# 把创建 kubernetes-dashboard-certs Secret 注释掉,前面已通过命令创建

#apiVersion: v1
#kind: Secret
#metadata:
#  labels:
#    k8s-app: kubernetes-dashboard
#  name: kubernetes-dashboard-certs
#  namespace: kubernetes-dashboard
#type: Opaque

# 添加ssl证书路径,关闭自动更新证书,添加多长时间登出

      containers:
      - args:
        #- --auto-generate-certificates
        - --tls-cert-file=/tls.crt
        - --tls-key-file=/tls.key
        - --token-ttl=3600

部署 k8s dashboard

kubectl  apply -f recommended.yaml

再次通过Chrome或ie访问,即可正常。

记得还需要重新创建用户

原文地址:https://www.cnblogs.com/lizhewei/p/12603285.html

时间: 2024-09-28 18:05:30

基于kubernetes v1.17部署dashboard:v2.0-beta8的相关文章

Kubernetes V1.16.2部署Dashboard V2.0(beta5)

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 1.安装要求 在开始之前,部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.6-86_x64 硬件配置:4GB或更多RAM,4个CPU或更多CPU,硬盘30GB或更多 集群中所有机器之间网络互通 禁止swap分区 2. 准备环境 关闭防火墙: systemctl stop firewalld systemctl disable firewalld 关闭selinux:

基于kubernetes集群部署DashBoard

在之前一篇文章Centos7部署Kubernetes集群(http://www.cnblogs.com/zhenyuyaodidiao/p/6500830.html)中已经搭建了基本的K8s集群,本文将在此基础之上继续搭建K8s DashBoard. 1.yaml文件 编辑dashboard.yaml,注意或更改以下红色部分: apiVersion: extensions/v1beta1 kind: Deployment metadata: # Keep the name in sync wit

Kubernetes 生产环境安装部署 基于 Kubernetes v1.14.0 之 部署规划

1. 安装规划 1.1 部署节点说明 etcd集群规划 etcd 中心集群 192.168.2.247192.168.2.248192.168.2.249 etcd 事件集群 192.168.2.250192.168.2.251192.168.2.252 Kubernetes master节点集群规划 192.168.3.10192.168.3.11192.168.3.12192.168.3.13192.168.3.14 Kubernetes master vip 192.168.4.1192.

基于 Kubernetes v1.14.0 之 Alertmanager 部署

1.部署准备 说明:所有的容器组都运行在monitoring 命名空间 本文参考https://github.com/coreos/kube-prometheus 由于官方维护的版本在现有的部署环境出现问题所以下面做了一些修改及变更不影响整体效果 Alertmanager 项目使用官方yaml 不做任何修改 2.Alertmanager 相关服务的yaml 准备 2.1.下载官方yaml mkdir kube-prometheus cd kube-prometheus git clone htt

Kubernetes实战总结 - dashboard部署(v2.0.0-rc6)

Kubernetes dashboard 是Kubernetes集群的基于Web的通用UI. 它允许用户管理群集中运行的应用程序并对其进行故障排除,以及管理群集本身. 部署 如果你的网络很好且可以访问国外网,那你可以直接运行下面命令部署. kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-rc6/aio/deploy/recommended.yaml 你也可以直接复制我下面准备好的,保存为

基于 Kubernetes v1.14.0 之 CoreDNS部署

1.部署容器前说明: 1.1.如果没有特殊指明,本文档的所有操作均在 k8s-operation 节点上执行: kuberntes 自带插件的 manifests yaml 文件使用 gcr.io 的 docker registry,国内被墙,需要手动替换为其它 registry 地址: 1.2.由于k8s-master 没有部署容器服务于路由服务,但是k8s-master 又要访问容器网络跟k8s集群网络,1.在上级路由器写入静态路由让其能访问容器网络与k8s集群网络.2.在k8s-maste

基于 Kubernetes v1.14.0 之heapster与influxdb部署

1.部署准备 说明:所有的容器组都运行在kube-system 命名空间 github 项目地址 https://github.com/kubernetes-retired/heapster.git mkdir heapster git clone https://github.com/kubernetes-retired/heapster.git cd heapster/deploy/kube-config/influxdb 2.influxdb 部署 2.1.创建influxdb pvc 源

实习初步认识_1:部署renren-fast v2.0遇到的问题及解决方案

部署renren-fast v2.0可参考官方文档https://www.renren.io/guide/#fornt(注意红色部分) 部署后台时一切正常,一下是官方文档内容: 2.1.后端部署 环境要求 JDK1.8 . MySQL5.5+ 通过 git ,下载renren-fast源码,如下: git clone https://git.oschina.net/renrenio/renren-fast.git 用 idea 打开项目, File -> Open 如下图: 用 eclipse

Kubernetes v1.17 版本解读 | 云原生生态周报 Vol. 31

作者 | 徐迪.李传云.黄珂.汪萌海.张晓宇.何淋波 .陈有坤.李鹏审核 | 陈俊 上游重要进展 1. Kubernetes v1.17 版本发布 功能稳定性是第一要务.v1.17 包含?22 个增强功能:14 个增强功能已逐渐稳定,4 个增强功能已进入 beta 版,4 个增强功能已进入 alpha 版本. Major Theme 云提供商标签达到 GA 这个自 1.2 版本就引入的 label,在 1.17 版本终于 GA.之前旧的 label 已经被废弃掉:以下 3 个旧的 label 已