diff --git a/k8s/base/api-svr.yaml b/k8s/base/api-svr.yaml deleted file mode 100644 index 6c383cb2..00000000 --- a/k8s/base/api-svr.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: coal-api -spec: - selector: - app: coal-api - ports: - - protocol: TCP - port: 7456 - targetPort: 7456 - type: ClusterIP \ No newline at end of file diff --git a/k8s/base/api.yaml b/k8s/base/api.yaml index 464b12d1..bb106c59 100644 --- a/k8s/base/api.yaml +++ b/k8s/base/api.yaml @@ -21,4 +21,24 @@ spec: imagePullPolicy: Always ports: - containerPort: 7456 + env: + - name: PG_HOST + value: pg + - name: REDIS_HOST + value: redis restartPolicy: Always + + +--- +apiVersion: v1 +kind: Service +metadata: + name: coal-api +spec: + selector: + app: coal-api + ports: + - protocol: TCP + port: 7456 + targetPort: 7456 + type: ClusterIP diff --git a/k8s/base/kustomization.yaml b/k8s/base/kustomization.yaml new file mode 100644 index 00000000..a011932a --- /dev/null +++ b/k8s/base/kustomization.yaml @@ -0,0 +1,4 @@ +resources: + - api.yaml + - redis.yaml + - pg.yaml \ No newline at end of file diff --git a/k8s/base/ns.yaml b/k8s/base/ns.yaml deleted file mode 100644 index d428c7a0..00000000 --- a/k8s/base/ns.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v1 -kind: Namespace -metadata: - name: coal \ No newline at end of file diff --git a/k8s/base/pg.yaml b/k8s/base/pg.yaml new file mode 100644 index 00000000..5ada0159 --- /dev/null +++ b/k8s/base/pg.yaml @@ -0,0 +1,62 @@ +apiVersion: v1 +kind: Service +metadata: + name: pg + labels: + app: pg +spec: + ports: + - port: 5432 + name: pg + clusterIP: None + selector: + app: pg +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: pg +spec: + selector: + matchLabels: + app: pg + serviceName: "pg" + replicas: 1 + minReadySeconds: 10 # by default is 0 + template: + metadata: + labels: + app: pg + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: pg + image: postgres + ports: + - containerPort: 5432 + name: postgres + volumeMounts: + - name: pg-data + mountPath: /data/ + env: + - name: POSTGRES_PASSWORD + value: 'abc@123' + - name: POSTGRES_USER + value: "postgres" + - name: POSTGRES_DB + value: "coal" + - name: PGDATA + value: "/data/" + + + + volumeClaimTemplates: + - metadata: + name: pg-data + spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs + resources: + requests: + storage: 10Gi \ No newline at end of file diff --git a/k8s/base/redis.yaml b/k8s/base/redis.yaml new file mode 100644 index 00000000..fe0f2df6 --- /dev/null +++ b/k8s/base/redis.yaml @@ -0,0 +1,143 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: redis-conf +data: + redis.conf: | + bind 0.0.0.0 + protected-mode yes + port 6379 + tcp-backlog 511 + timeout 0 + tcp-keepalive 300 + daemonize no + pidfile /var/run/redis_6379.pid + loglevel notice + logfile "" + databases 16 + always-show-logo no + set-proc-title yes + proc-title-template "{title} {listen-addr} {server-mode}" + stop-writes-on-bgsave-error yes + rdbcompression yes + rdbchecksum yes + dbfilename dump.rdb + rdb-del-sync-files no + dir /data + replica-serve-stale-data yes + replica-read-only yes + repl-diskless-sync yes + repl-diskless-sync-delay 5 + repl-diskless-sync-max-replicas 0 + repl-diskless-load disabled + repl-disable-tcp-nodelay no + replica-priority 100 + acllog-max-len 128 + requirepass abc@123 + lazyfree-lazy-eviction no + lazyfree-lazy-expire no + lazyfree-lazy-server-del no + replica-lazy-flush no + lazyfree-lazy-user-del no + lazyfree-lazy-user-flush no + oom-score-adj no + oom-score-adj-values 0 200 800 + disable-thp yes + appendonly yes + appendfilename "appendonly.aof" + appenddirname "aof" + appendfsync everysec + no-appendfsync-on-rewrite no + auto-aof-rewrite-percentage 100 + auto-aof-rewrite-min-size 64mb + aof-load-truncated yes + aof-use-rdb-preamble yes + aof-timestamp-enabled no + slowlog-log-slower-than 10000 + slowlog-max-len 128 + latency-monitor-threshold 0 + notify-keyspace-events "" + hash-max-listpack-entries 512 + hash-max-listpack-value 64 + list-max-listpack-size -2 + list-compress-depth 0 + set-max-intset-entries 512 + zset-max-listpack-entries 128 + zset-max-listpack-value 64 + hll-sparse-max-bytes 3000 + stream-node-max-bytes 4096 + stream-node-max-entries 100 + activerehashing yes + client-output-buffer-limit normal 0 0 0 + client-output-buffer-limit replica 256mb 64mb 60 + client-output-buffer-limit pubsub 32mb 8mb 60 + hz 10 + dynamic-hz yes + aof-rewrite-incremental-fsync yes + rdb-save-incremental-fsync yes + jemalloc-bg-thread yes + +--- +apiVersion: v1 +kind: Service +metadata: + name: redis + labels: + app: redis +spec: + ports: + - port: 6349 + name: redis + clusterIP: None + selector: + app: redis +--- +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: redis +spec: + selector: + matchLabels: + app: redis + serviceName: "redis" + replicas: 1 + minReadySeconds: 10 # by default is 0 + template: + metadata: + labels: + app: redis + spec: + terminationGracePeriodSeconds: 10 + containers: + - name: redis + image: redis + ports: + - containerPort: 6379 + name: redis + volumeMounts: + - name: redis-data + mountPath: /data/ + - name: redis-conf + mountPath: /etc/redis/ + command: + - redis-server + - /etc/redis/redis.conf + + volumes: + - name: redis-conf + configMap: + name: redis-conf + items: + - key: redis.conf + path: redis.conf + volumeClaimTemplates: + - metadata: + name: redis-data + spec: + accessModes: + - ReadWriteOnce + storageClassName: nfs + resources: + requests: + storage: 1Gi \ No newline at end of file diff --git a/k8s/master/kustomization.yaml b/k8s/master/kustomization.yaml new file mode 100644 index 00000000..d5ef87ce --- /dev/null +++ b/k8s/master/kustomization.yaml @@ -0,0 +1,17 @@ +resources: + - ../base + +namespace: coal + +images: + - name: redis + newName: 192.168.0.118/dockerhub/library/redis + - name: postgres + newName: 192.168.0.118/dockerhub/library/postgres + - name: coal + newName: 192.168.0.118/coal/coal + newTag: master + +commonLabels: + branch: master +nameSuffix: -master diff --git a/k8s/prod/kustomization.yaml b/k8s/prod/kustomization.yaml new file mode 100644 index 00000000..a4df1e1b --- /dev/null +++ b/k8s/prod/kustomization.yaml @@ -0,0 +1,17 @@ +resources: + - ../base + +namespace: coal + +images: + - name: redis + newName: 192.168.0.118/dockerhub/library/redis + - name: postgres + newName: 192.168.0.118/dockerhub/library/postgres + - name: coal + newName: 192.168.0.118/coal/coal + newTag: prod + +commonLabels: + branch: prod +nameSuffix: -prod diff --git a/k8s/test/kustomization.yaml b/k8s/test/kustomization.yaml new file mode 100644 index 00000000..d38e4f70 --- /dev/null +++ b/k8s/test/kustomization.yaml @@ -0,0 +1,17 @@ +resources: + - ../base + +namespace: coal + +images: + - name: redis + newName: 192.168.0.118/dockerhub/library/redis + - name: postgres + newName: 192.168.0.118/dockerhub/library/postgres + - name: coal + newName: 192.168.0.118/coal/coal + newTag: test + +commonLabels: + branch: test +nameSuffix: -test