跳转至

在 k8s 上部署 Kubegres

文档时效性说明

本文为早期笔记,可能存在版本过时、命令失效、链接失效、最佳实践变化等问题。请以官方最新文档为准。

原英文标题:Deploy kubegres on k8s

安装 kubegres operator:

1
2
3
kubectl apply -f https://raw.githubusercontent.com/reactive-tech/kubegres/v1.16/kubegres.yaml
kubectl get all -n kubegres-system
kubectl logs pod/kubegres-controller-manager-999786dd6-74tmb -c manager -n kubegres-system -f

my-postgres.YAML

apiVersion: kubegres.reactive-tech.io/v1
kind: Kubegres
metadata:
  name: mypostgres
  namespace: awx
spec:
   replicas: 3
   image: postgres:13.0
   database:
      size: 20Gi
   scheduler:
      affinity:
         podAntiAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                 matchExpressions:
                   - key: app
                     operator: In
                     values:
                        - mypostgres
                topologyKey: "kubernetes.io/hostname"
      tolerations:
         - key: group
           operator: Equal
           value: critical
   probe:
      livenessProbe:
         exec:
            command:
              - sh
              - -c
              - exec pg_isready -U postgres -h $POD_IP
         failureThreshold: 3
         initialDelaySeconds: 60
         periodSeconds: 3
         successThreshold: 1
         timeoutSeconds: 3

      readinessProbe:
         exec:
            command:
              - sh
              - -c
              - exec pg_isready -U postgres -h $POD_IP
         failureThreshold: 3
         initialDelaySeconds: 5
         periodSeconds: 3
         successThreshold: 1
         timeoutSeconds: 3
   env:
      - name: POSTGRES_PASSWORD
        valueFrom:
           secretKeyRef:
              name: mypostgres-secret
              key: superUserPassword
      - name: POSTGRES_REPLICATION_PASSWORD
        valueFrom:
           secretKeyRef:
              name: mypostgres-secret
              key: replicationUserPassword

my-postgres-secret.YAML

1
2
3
4
5
6
7
8
9
apiVersion: v1
kind: Secret
metadata:
  name: mypostgres-secret
  namespace: awx
type: Opaque
stringData:
  superUserPassword: postgresSuperUserPsw
  replicationUserPassword: postgresReplicaPsw

1. 参考链接

https://www.kubegres.io/doc/getting-started.html


1.1 原文(English)


tags: - Kubernetes - k8s


2. Deploy kubegres on k8s

文档时效性说明

本文为早期笔记,可能存在版本过时、命令失效、链接失效、最佳实践变化等问题。请以官方最新文档为准。

install kubegres operator:

1
2
3
kubectl apply -f https://raw.githubusercontent.com/reactive-tech/kubegres/v1.16/kubegres.yaml
kubectl get all -n kubegres-system
kubectl logs pod/kubegres-controller-manager-999786dd6-74tmb -c manager -n kubegres-system -f

my-postgres.YAML

apiVersion: kubegres.reactive-tech.io/v1
kind: Kubegres
metadata:
  name: mypostgres
  namespace: awx
spec:
   replicas: 3
   image: postgres:13.0
   database:
      size: 20Gi
   scheduler:
      affinity:
         podAntiAffinity:
            requiredDuringSchedulingIgnoredDuringExecution:
              - labelSelector:
                 matchExpressions:
                   - key: app
                     operator: In
                     values:
                        - mypostgres
                topologyKey: "kubernetes.io/hostname"
      tolerations:
         - key: group
           operator: Equal
           value: critical
   probe:
      livenessProbe:
         exec:
            command:
              - sh
              - -c
              - exec pg_isready -U postgres -h $POD_IP
         failureThreshold: 3
         initialDelaySeconds: 60
         periodSeconds: 3
         successThreshold: 1
         timeoutSeconds: 3

      readinessProbe:
         exec:
            command:
              - sh
              - -c
              - exec pg_isready -U postgres -h $POD_IP
         failureThreshold: 3
         initialDelaySeconds: 5
         periodSeconds: 3
         successThreshold: 1
         timeoutSeconds: 3
   env:
      - name: POSTGRES_PASSWORD
        valueFrom:
           secretKeyRef:
              name: mypostgres-secret
              key: superUserPassword
      - name: POSTGRES_REPLICATION_PASSWORD
        valueFrom:
           secretKeyRef:
              name: mypostgres-secret
              key: replicationUserPassword

my-postgres-secret.YAML

1
2
3
4
5
6
7
8
9
apiVersion: v1
kind: Secret
metadata:
  name: mypostgres-secret
  namespace: awx
type: Opaque
stringData:
  superUserPassword: postgresSuperUserPsw
  replicationUserPassword: postgresReplicaPsw

3. References

https://www.kubegres.io/doc/getting-started.html