3.2.4. 新しいデータベースに必要なリソースを準備する


データベースがデプロイされる namespace を作成するか、その namespace に切り替えます。

新しい PostgreSQL データベースがインストールされる namespace の名前を変数にエクスポートします。既存の namespace を使用することも、新しい namespace を作成することもできます。3scale がインストールされているのと同じ namespace に新しいデータベースをデプロイすることも可能ですが、推奨されません。

DB_NAMESPACE=<database-target-namespace>
oc project $DB_NAMESPACE

または

oc new-project $DB_NAMESPACE

3scale namespace から既存の OpenShift シークレット system-database をエクスポートします。

oc get secret system-database -n $THREESCALE_NAMESPACE -o yaml > system-database-secret.yml

元のデータベースと同じユーザー名とパスワードを使用して、データベース namespace にシークレットを作成します (データベースが 3scale がインストールされている namespace とは異なる namespace にインストールされている場合にのみ必要です)。

DB_USER=$(oc get secret system-database -n $THREESCALE_NAMESPACE -o jsonpath='{.data.DB_USER}' | base64 -d)
DB_PASSWORD=$(oc get secret system-database -n $THREESCALE_NAMESPACE -o jsonpath='{.data.DB_PASSWORD}' | base64 -d)
oc create secret generic system-database --from-literal=DB_USER=$DB_USER --from-literal=DB_PASSWORD=$DB_PASSWORD --namespace=$DB_NAMESPACE

新しい PostgreSQL 15 のデプロイメントの仕様を定義した system-postgresql-deployment-external.yaml という YAML ファイルをローカルに作成します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: system-postgresql-external
  labels:
    app: system-postgresql-external
spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      deployment: system-postgresql-external
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        deployment: system-postgresql-external
    spec:
      containers:
      - name: system-postgresql-external
        image: registry.redhat.io/rhel9/postgresql-15
        imagePullPolicy: IfNotPresent
        env:
        - name: POSTGRESQL_USER
          valueFrom:
            secretKeyRef:
              key: DB_USER
              name: system-database
        - name: POSTGRESQL_PASSWORD
          valueFrom:
            secretKeyRef:
              key: DB_PASSWORD
              name: system-database
        - name: POSTGRESQL_DATABASE
          value: system
        ports:
        - containerPort: 5432
          protocol: TCP
        livenessProbe:
          failureThreshold: 3
          initialDelaySeconds: 30
          periodSeconds: 10
          successThreshold: 1
          tcpSocket:
            port: 5432
          timeoutSeconds: 1
        readinessProbe:
          exec:
            command:
            - /bin/sh
            - -i
            - -c
            - psql -h 127.0.0.1 -U $POSTGRESQL_USER -q -d $POSTGRESQL_DATABASE -c 'SELECT 1'
          failureThreshold: 3
          initialDelaySeconds: 10
          periodSeconds: 30
          successThreshold: 1
          timeoutSeconds: 5
        resources:
          limits:
            memory: 2Gi
          requests:
            cpu: 250m
            memory: 512Mi
        volumeMounts:
        - mountPath: /var/lib/pgsql/data
          name: postgresql-data-external
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
      dnsPolicy: ClusterFirst
      restartPolicy: Always
      serviceAccountName: postgresql-db-external
      terminationGracePeriodSeconds: 30
      volumes:
      - name: postgresql-data-external
        persistentVolumeClaim:
          claimName: postgresql-data-external

以下の更新を検討してください。

  • カスタム値を使用していた場合、またはカスタム値が必要な場合のための、ラベル、アノテーション、および環境変数
  • カスタム値を使用していた場合、またはカスタム値が必要な場合のための、制限とリクエスト
  • その他の値は要件に応じて変更可能

PostgreSQL デプロイメント用のサービスアカウントを作成し、ラベルを付けます。

oc create serviceaccount postgresql-db-external
oc label serviceaccount postgresql-db-external app=system-postgresql-external

新しいデータベースの永続ボリューム要求の仕様を定義した postgresql-data-external-pvc.yaml という YAML ファイルをローカルに作成します。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgresql-data-external
  labels:
    app: system-postgresql-external
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  volumeMode: Filesystem

必要に応じてストレージ要求を調整します。

新しいデータベースの Service の仕様を定義した system-postgresql-service.yaml という YAML ファイルをローカルに作成します。

apiVersion: v1
kind: Service
metadata:
  name: system-postgresql-service
  labels:
    app: system-postgresql-external
spec:
  type: ClusterIP
  ports:
  - port: 5432
    targetPort: 5432
    protocol: TCP
  selector:
    deployment: system-postgresql-external
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る