1. 说明

当集群下内容足够多时,需要一个网站帮你快速跳转,可导入如下配置快速创建一个基于 gitlab pages 的导航站点,依赖 Gitlab Pages 自动渲染内容。

创建完成后,你需要在 https://gitlab.d7z.net/docs/home 下创建项目,并生成 Gitlab Page 页面,此导航站将在如下地址提供服务:

此导航站点依赖如下镜像:

1
docker.io/library/nginx:1.21.1

2. 部署

导入如下配置即可

  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
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
apiVersion: v1
kind: ConfigMap
metadata:
  labels:
    app: home-page
  name: conf-home-page
  namespace: share-app
data:
  home.conf: |
    resolver kube-dns.kube-system.svc.cluster.local valid=10s;
      server{
      listen [::]:80 default_server;
      listen 80 default_server;
      location / {
      proxy_http_version 1.1;
      proxy_pass http://docs.pages.d7z.net/home/;
      proxy_buffering off;
      proxy_set_header Host docs.pages.d7z.net;
      client_max_body_size 0;
      proxy_connect_timeout 3600s;
      proxy_read_timeout 3600s;
      proxy_send_timeout 3600s;
      send_timeout 3600s;
      }
    }
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: sts-home-page
  namespace: share-app
  labels:
    app: home-page
spec:
  serviceName: svc-home-page
  selector:
    matchLabels:
      app: home-page
  replicas: 1
  template:
    metadata:
      labels:
        app: home-page
    spec:
      containers:
        - name: nginx
          image: docker.io/library/nginx:1.21.1
          volumeMounts:
            - name: nginx-data
              mountPath: /etc/nginx/conf.d/
      volumes:
        - name: nginx-data
          configMap:
            name: conf-home-page
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app: home-page
  name: svc-home-page
  namespace: share-app
spec:
  ports:
    - name: web
      protocol: TCP
      port: 80
  selector:
    app: home-page
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-home-page
  namespace: share-app
  labels:
    app: home-page
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
spec:
  ingressClassName: nginx-public
  tls:
    - hosts:
        - www.d7z.net
        - home.d7z.net
        - d7z.net
      secretName: tls-pub-d7z
  rules:
    - host: www.d7z.net
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: svc-home-page
                port:
                  name: web
    - host: home.d7z.net
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: svc-home-page
                port:
                  name: web
    - host: d7z.net
      http:
        paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: svc-home-page
                port:
                  name: web