Instance Pod configuration
==========================
.. raw:: html
予測される量
------------
CloudNativePGは、 ``.spec.projectedVolumeTemplate``
を介してPostgresポッド内のカスタムファイルのマウントをサポートしています。この機能は、追加のデータファイルを必要とするいくつかのPostgres機能と拡張機能に役立ちます。
CloudNativePGでは、\ ``.spec.projectedVolumeTemplate``
フィールドは `projected volume `_
Postgresポッドの\ ``/projected``
フォルダーの下に任意のデータをマウントできるKubernetesのテンプレート。
この単純な例は、既存のTLSシークレット\ ``sample-secret``
名前付けをファイルとしてPostgresポッドにマウントする方法を示しています。
``sample-secret`` の秘密キー\ ``tls.crt`` および\ ``tls.key``
の値は、Postgresポッドのパス\ ``/projected/certificate/tls.crt``
および\ ``/projected/certificate/tls.key``
にファイルとしてマウントされます。
.. code:: yaml
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: cluster-example-projected-volumes
spec:
instances: 3
projectedVolumeTemplate:
sources:
- secret:
name: sample-secret
items:
- key: tls.crt
path: certificate/tls.crt
- key: tls.key
path: certificate/tls.key
storage:
size: 1Gi
投影されたボリュームテンプレートを使用してシークレットとConfigMapをマウントする完全な例は、
:ref:`cluster-example-projected-volume.yaml ` にあります。
展開マニフェスト。
エフェメラルボリューム
----------------------
CloudNativePGは `ephemeral volumes `_ に依存しています
社内活動の一部。一時ボリュームは、ポッドの存続期間が唯一の期間存在し、ポッドが再起動されても持続しません。
一時ストレージのボリューム要求テンプレート
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
オペレーターはデフォルトで\ ``emptyDir`` ボリュームを使用しますが、
``.spec.ephemeralVolumesSizeLimit field``
を使用してカスタマイズできます。これは、 ``.spec.ephemeralVolumeSource``
フィールドでボリューム要求テンプレートを指定することにより、オーバーライドできます。
次の例では、\ ``1Gi`` エフェメラルボリュームが設定されます。
.. code:: yaml
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: cluster-example-ephemeral-volume-source
spec:
instances: 3
ephemeralVolumeSource:
volumeClaimTemplate:
spec:
accessModes: ["ReadWriteOnce"]
# example storageClassName, replace with one existing in your Kubernetes cluster
storageClassName: "scratch-storage-class"
resources:
requests:
storage: 1Gi
``.spec.emphemeralVolumeSource``
と\ ``.spec.ephemeralVolumesSizeLimit.temporaryData``
は同時に指定できません。
共有メモリのボリューム
^^^^^^^^^^^^^^^^^^^^^^
このボリュームは、Postgresの共有メモリ領域として、およびエフェメラルタイプとして使用されますが、メモリに保存されます。クラスター仕様の\ ``.spec.ephemeralVolumesSizeLimit.shm``
フィールドを使用して、サイズの上限を構成できます。このフィールドは、
:ref:`PostgreSQL running with `posix` shared memory dynamic allocation ` の場合にのみ使用します。
環境変数
--------
環境変数を使用して、一部のシステム動作をカスタマイズできます。一例は、カスタムLDAP構成ファイルをポイントできる\ ``LDAPCONF``
変数です。別の例は、PostgreSQLコンテナが使用するタイムゾーンを表す\ ``TZ``
環境変数です。
CloudNativePGでは、クラスター仕様の\ ``env`` および\ ``envFrom``
スタンザを使用して、カスタム環境変数を設定できます。
この例では、デフォルトのクラスターレベルのタイムゾーンとして\ ``Australia/Sydney``
タイムゾーンを使用してPostgreSQLクラスターを定義します。
.. code:: yaml
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: cluster-example
spec:
instances: 3
env:
- name: TZ
value: Australia/Sydney
storage:
size: 1Gi
``envFrom``
スタンザは、ConfigMapまたはシークレットを参照して、コンテンツを環境変数として使用できます。
.. code:: yaml
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: cluster-example
spec:
instances: 3
envFrom:
- configMapRef:
name: config-map-name
- secretRef:
name: secret-name
storage:
size: 1Gi
オペレーターは、次の環境変数を設定することを許可していません。
- ``POD_NAME``
- ``NAMESPACE``
- 名前が\ ``PG`` で始まる環境変数。
``env`` または\ ``envFrom``
セクションを変更すると、PostgreSQLポッドのローリング更新がトリガーされます。
``env`` または\ ``envFrom``
セクションがシークレットまたはConfigMapを参照している場合、オペレーターはそれらの変更を検出せず、ロールアウトをトリガーしません。
kubeletはポッドと同じ動作を使用するため、ポッドのロールアウトを手動でトリガーする必要があります。