TKE上搭建集群Dashboard

如果需要将TKE的信息展示给多个部门的人查看,但是又不想让他们通过控制台查看,这边可以搭建一个dashborad用来展示。

1.申请证书

因为dashborad需要https的访问,这边需要提供下证书,这个证书可以是自建证书,也可以从腾讯云上申请一个免费的1年证书

购买成功后,需要审核,审核通过可以下载对应的证书和rsa key

2.创建命名空间来部署dashboard

# kubectl  create namespace kubernetes-dashboard

3.引用申请的证书创建secret

将证书上传到linux机器上$HOME/certs目录,并分别改名为tls.key和tls.crt

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

4.创建deployement

首先拉取yaml文件,需要修改下yaml文件中的部分配置,再apply这个yaml文件

# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.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证书路径,关闭自动更新证书,添加多长时间登出

      containers:
      - args:
        #- --auto-generate-certificates
        - --tls-cert-file=/tls.crt
        - --tls-key-file=/tls.key
        - --token-ttl=3600 #这个是登陆token的过期时间,如果不想重复输入token,可以设置长点
# kubectl  apply -f recommended.yaml

[root@VM_1_4_centos ~]# kubectl  get pods -n kubernetes-dashboard
NAME                                         READY   STATUS    RESTARTS   AGE
dashboard-metrics-scraper-555dc8bbb4-c8wtd   1/1     Running   0          24h
kubernetes-dashboard-755c66fc9f-p4tjd        1/1     Running   0          135m

5.创建登陆用户

# 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

6.获取登陆token

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

7.修改访问的svc为lb类型提供公网访问

Dashborad会创建2个svc,kubernetes-dashboard是用来页面访问的

8.浏览器输入公网ip用https访问

输入https://vip 后会让你输入token,将第6步获取的token输入,就可以进行查看

9. nginx-ingress配置域名作为访问入口

首先我们通过申请的证书为ingress配置下tls类型的secret

kubectl create secret tls dashboard-tls --key tls.key --cert tls.cert -n kubernetes-dashboard

然后我们创建ingress

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: ingress
    # 开启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"
  name: dashboard-ingress
  namespace: kubernetes-dashboard
spec:
  rules:
  - host: example.tke.niewx.cn
    http:
      paths:
      - backend:
          serviceName: kubernetes-dashboard
          servicePort: 443
        path: /
  tls:
  - hosts:
    - example.tke.niewx.cn
    secretName: dashboard-tls

浏览器输入域名后就可以访问dashboard了

参考链接

https://www.jianshu.com/p/60a1d6db9f12

本站文章资源均来源自网络,除非特别声明,否则均不代表站方观点,并仅供查阅,不作为任何参考依据!
如有侵权请及时跟我们联系,本站将及时删除!
如遇版权问题,请查看 本站版权声明
THE END
分享
二维码
海报
TKE上搭建集群Dashboard
如果需要将TKE的信息展示给多个部门的人查看,但是又不想让他们通过控制台查看,这边可以搭建一个dashborad用来展示。
<<上一篇
下一篇>>