AI 摘要
在 Kubernetes 集群中安装 kuboard V4,通过创建数据库、命名空间、secret、deployment、svc 和 ingress 资源清单完成部署;访问时遇到 ingress 重定向问题,最终定位为虚拟机暂停后时间未同步导致 cookie 异常。
一、引子
有时候需要一个可视化面板来管理 K8s,各种场景下都强制使用命令行是不合理的。
kuboard 有 V3、V4 版本,自己实验环境的集群版本较新,只能安装 V4 版本.
官方安装文档
二、安装
2.1 创建数据库
1 2 3 4
| CREATE DATABASE kuboard DEFAULT CHARACTER SET = 'utf8mb4' DEFAULT COLLATE = 'utf8mb4_unicode_ci'; create user 'kuboard'@'192.168.10.%' identified by 'Kuboard123'; grant all privileges on kuboard.* to 'kuboard'@'192.168.10.%'; FLUSH PRIVILEGES;
|
2.2 创建资源清单
- 创建命名空间、
1
| kubectl create namespace kuboard
|
- 创建 secret 来存数据库密码
1 2
| kubectl create secret generic kuboard-db -n kuboard \ --from-literal=DB_PASSWORD='Kuboard123'
|
- deolpyment
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| apiVersion: apps/v1 kind: Deployment metadata: name: kuboard namespace: kuboard spec: replicas: 1 selector: matchLabels: { app: kuboard } template: metadata: labels: { app: kuboard } spec: containers: - name: kuboard image: harbor.qx.lab/dockerhub/eipwork/kuboard:v4 ports: - containerPort: 80 env: - { name: TZ, value: Asia/Shanghai } - { name: DB_DRIVER, value: org.mariadb.jdbc.Driver } - { name: DB_URL, value: "jdbc:mariadb://192.168.10.1:3306/kuboard?serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true" } - { name: DB_USERNAME, value: kuboard } - name: DB_PASSWORD valueFrom: secretKeyRef: { name: kuboard-db, key: DB_PASSWORD }
|
- svc
1 2 3 4 5 6 7 8 9 10 11
| apiVersion: v1 kind: Service metadata: name: kuboard namespace: kuboard spec: selector: { app: kuboard } ports: - port: 80 targetPort: 80
|
- ingress
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: kuboard namespace: kuboard annotations: cert-manager.io/cluster-issuer: qx.lab-ca-issuer spec: ingressClassName: traefik tls: - hosts: [kuboard.qx.lab] secretName: kuboard-tls rules: - host: kuboard.qx.lab http: paths: - path: / pathType: Prefix backend: service: name: kuboard port: number: 80
|
三、访问
https://kuboard.qx.lab
用户名:admin
密码:Kuboard123
四、插曲
刚刚最后访问的时候,其实有点问题,开始怀疑是 ingress 反复重定向,后来发现是暂停虚拟机后,时间没有同步,导致 cookie 有些问题。
- 直接转发流量到svc,而不经过ingress
1
| kubectl port-forward -n kuboard --address 0.0.0.0 deploy/kuboard 8080:80
|