前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >K8S Dashboard 2.0 部署并使用 Ingress-Nginx 提供访问入口

K8S Dashboard 2.0 部署并使用 Ingress-Nginx 提供访问入口

作者头像
YP小站
发布2020-06-04 16:26:11
7.9K1
发布2020-06-04 16:26:11
举报
文章被收录于专栏:YP小站

前言

Kubernetes Dashboard 终于发布 2.0 正式版本,从 Betat版本v2.0.0正式版本 发布,历时一年多。

环境与依赖服务

环境

依赖服务

  • 需要K8S集群部署 Metrics Server,这样才能正常查看 Dashboard 监控指标。

注意:如果集群有1.7+以下旧版本,请确保删除kubernetes-dashboard服务帐户的群集角色绑定,否则Dashboard将具有对该群集的完全管理员访问权限

部署

自定义证书

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

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

注意:自定义证书 kubernetes-dashboard-certs secret 必须存储在与Kubernetes仪表板相同的 Namespaces。

创建 kubernetes-dashboard-certs secret

按上面方法,生成证书,证书生成存放到 $HOME/certs 目录中

代码语言:javascript
复制
# 证书
$ ls $HOME/certs

k8s-dashboard.yp14.cn.crt  k8s-dashboard.yp14.cn.key

# 创建 kubernetes-dashboard-certs secret
$ kubectl create secret generic kubernetes-dashboard-certs --from-file=$HOME/certs -n kubernetes-dashboard

下载 dashboard yaml 文件

代码语言:javascript
复制
$ wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

修改 dashboard yaml 文件

具体修改见下面配置

代码语言:javascript
复制
$ 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证书路径,关闭自动更新证书,添加多长时间登出。
# 注意:--tls-key-file --tls-cert-file 引用名称,要与上面创建 kubernetes-dashboard-certs Secret 引用的证书文件名称一样。

          args:
            #- --auto-generate-certificates
            - --namespace=kubernetes-dashboard
            - --tls-key-file=k8s-dashboard.yp14.cn.key
            - --tls-cert-file=k8s-dashboard.yp14.cn.crt
            - --token-ttl=3600

部署 dashboard

代码语言:javascript
复制
$ kubectl  apply -f recommended.yaml

查看 dashboard

代码语言:javascript
复制
$ kubectl  get pods -n kubernetes-dashboard

NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-6b4884c9d5-lx8dw   1/1     Running   0          14h
kubernetes-dashboard-b75f6b5d6-r22nq         1/1     Running   0          14h

创建登陆用户

创建 admin-user 管理员 yaml 配置

代码语言:javascript
复制
$ vim create-admin.yaml
代码语言:javascript
复制
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

创建

代码语言:javascript
复制
$ kubectl apply -f create-admin.yaml

查看登陆 token

代码语言:javascript
复制
$ kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')

配置 Ingress Nginx 提供访问入口

代码语言:javascript
复制
$ cd $HOME/certs

# 创建 k8s-dashboard.yp14.cn 域名 Ingress nginx https 证书
$ kubectl create secret tls k8s-dashboard --key k8s-dashboard.yp14.cn.key --cert k8s-dashboard.yp14.cn.crt -n kubernetes-dashboard
代码语言:javascript
复制
$ vim k8s-dashboard-ingress.yaml
代码语言:javascript
复制
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: k8s-dashboard-ingress
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/ingress.class: "nginx"
    # 开启use-regex,启用path的正则匹配
    nginx.ingress.kubernetes.io/use-regex: "true"
    nginx.ingress.kubernetes.io/rewrite-target: /
    # 默认为 true,启用 TLS 时,http请求会 308 重定向到https
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    # 默认为 http,开启后端服务使用 proxy_pass https://协议
    nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
  rules:
  - host: k8s-dashboard.yp14.cn
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 443
  tls:
  - secretName: k8s-dashboard
    hosts:
    - k8s-dashboard.yp14.cn
代码语言:javascript
复制
# 创建
$ kubectl apply -f k8s-dashboard-ingress.yaml

访问入口域名:https://k8s-dashboard.yp14.cn

把上文查看的登陆 token 填入到下图画红圈中

Dashboard 中文设置

下面演示使用 谷歌浏览器

Kubernetes Dashboard 2.0 已经支持中文界面了,但是你需要改一下浏览器设置,如下图:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 YP小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境与依赖服务
    • 环境
      • 依赖服务
      • 部署
        • 自定义证书
          • 创建 kubernetes-dashboard-certs secret
            • 下载 dashboard yaml 文件
              • 修改 dashboard yaml 文件
                • 部署 dashboard
                  • 查看 dashboard
                  • 创建登陆用户
                    • 创建 admin-user 管理员 yaml 配置
                    • 配置 Ingress Nginx 提供访问入口
                    • Dashboard 中文设置
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档