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

前言

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 目录中

# 证书
$ 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 文件

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

修改 dashboard yaml 文件

具体修改见下面配置

$ 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

$ kubectl  apply -f recommended.yaml

查看 dashboard

$ 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 配置

$ vim 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

创建

$ kubectl apply -f create-admin.yaml

查看登陆 token

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

配置 Ingress Nginx 提供访问入口

$ 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
$ vim k8s-dashboard-ingress.yaml
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
# 创建
$ kubectl apply -f k8s-dashboard-ingress.yaml

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

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

Dashboard 中文设置

下面演示使用 谷歌浏览器

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

热门文章推荐

最后

  • 欢迎您加我微信【ypxiaozhan01】,拉您进技术群,一起交流学习...

  • 欢迎您关注【YP小站】,学习互联网最流行的技术,做个专业的技术人...


  【文章让您有收获,点个 在看 支持我吧】
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值