From c8a471ebbda60604465ba3c1047057642332004e Mon Sep 17 00:00:00 2001 From: wangyanpeng Date: Thu, 18 Nov 2021 16:39:36 +0800 Subject: [PATCH] Add K8S-StatefulSet File --- k8s/statefulset.yaml | 120 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 k8s/statefulset.yaml diff --git a/k8s/statefulset.yaml b/k8s/statefulset.yaml new file mode 100644 index 000000000..bb3ccb65d --- /dev/null +++ b/k8s/statefulset.yaml @@ -0,0 +1,120 @@ +--- +## ConfigMap +#apiVersion: v1 +#kind: ConfigMap +#metadata: +# name: uptime-kuma-config-map +#data: +# xxx: 'xxx' +--- +## StatefulSet +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: uptime-kuma +spec: + replicas: 1 + serviceName: uptime-kuma-service + selector: + matchLabels: + app: uptime-kuma + template: + metadata: + labels: + app: uptime-kuma + spec: + containers: + - name: uptime-kuma + # Choose your own mirror version + image: louislam/uptime-kuma:1.10.0-alpine + imagePullPolicy: IfNotPresent + ports: + - name: uptime-kuma + containerPort: 3001 + protocol: TCP + resources: + requests: + cpu: 100m + memory: 256Mi + limits: + cpu: 500m + memory: 1000Mi +# envFrom: +# - configMapRef: +# name: uptime-kuma-config-map + volumeMounts: + - name: uptime-kuma-data + mountPath: /app/data +# imagePullSecrets: +# - name: k8s-auth + + volumeClaimTemplates: + - metadata: + name: uptime-kuma-data + spec: + accessModes: ["ReadWriteOnce"] + volumeMode: Filesystem + resources: + requests: + storage: 2Gi + # Here you need to fill in your own storage class name + storageClassName: + +--- +## Here the headless service is separated from the external service for easy switching +## Headless service +apiVersion: v1 +kind: Service +metadata: + name: uptime-kuma-service +spec: + selector: + app: uptime-kuma + ports: + - name: uptime-kuma + port: 3001 + clusterIP: None + +--- +## Externally accessible services +## When Ingress is unavailable, you can use Service and use IP+Port to access +#apiVersion: v1 +#kind: Service +#metadata: +# name: uptime-kuma-external-service +#spec: +# selector: +# app: uptime-kuma +# ports: +# - name: uptime-kuma +# protocol: TCP +# port: 3001 +# targetPort: 3001 +# # Default port 30010 +# nodePort: 30010 +# type: NodePort + +--- +## You can configure Ingress according to your own environment or use external services to expose services. If you use Ingress, Https can directly proxy. +## Use wildcard certificate managed by cert-manager, Ingress configuration, for reference only +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + name: uptime-kuma-ingress + annotations: + kubernetes.io/ingress.class: "nginx" + kubernetes.io/tls-acme: "true" + cert-manager.io/cluster-issuer: "letsencrypt-prod" +spec: + rules: + - host: + http: + paths: + - backend: + serviceName: uptime-kuma-service + servicePort: 3001 + path: / + tls: + - secretName: + hosts: + - ""