Networking
==========

EDB
CloudNativePGクラスターは、基になるKubernetesクラスターに必要な接続が既に設定されていることを前提としています。
Kubernetesでのネットワーキングは、重要かつ拡張されたトピックです。詳細については、
:ref:`Kubernetes documentation <Networking>` を参照してください。

クイックスタートガイドに従って、ローカルのKinDまたはK3dクラスターにEDB
CloudNativePGクラスターをインストールしている場合、どちらのプラットフォームもデフォルトでネットワーク制限を追加しないため、ネットワークの問題が発生することはありません。

ただし、既存のインフラストラクチャにEDB
CloudNativePGクラスターを展開する場合、ネットワーク制限が実施され、オペレーターとPostgreSQLクラスターとの通信が障害される可能性があります。具体的には、既存の `Network Policies <https://kubernetes.io/docs/concepts/services-networking/network-policies/>`_ 

特定の種類のトラフィックを制限する場合があります。

または、セキュリティを強化するために環境にネットワークポリシーを追加することに興味がある場合があります。
:ref:`security document <Security>` で述べたように、オペレーターがポート8000および5432ですべてのクラスターポッドに到達でき、ポッドが相互に接続できることを確認してください。

オペレーターのクロス名前空間ネットワークポリシー
------------------------------------------------

クイックスタートガイドに従うか、展開にhelmチャートを使用すると、オペレーターが専用の名前空間デフォルトで\ ``postgresql-operator-system``
にインストールされます。クラスターは別の名前空間に作成することをお勧めします。

オペレーターはクラスターポッドに接続できる必要があります。これは、名前空間を越えたトラフィックを制限する\ ``NetworkPolicy``
がある場合、妨げられる可能性があります。

例、 :ref:`kubernetes guide on network policies <Networking>` 

デフォルトですべての入力トラフィックを拒否するポリシーの例が含まれています。

ローカルkubernetesセットアップにこの種の制限的なネットワークポリシーがある場合、
``NetworkPolicy``
を作成して、オペレーター名前空間とポッドからクラスター名前空間とポッドへの接続を明示的に許可する必要があります。以下のような例を見つけることができます。

::


   #  This network policy allows ingress from the CNP operator

   #  installed in namespace postgresql-operator-system into the pods corresponding

   #  to a cluster named cluster-example

   #  NOTE: in OpenShift the default namespace for the operator is openshift-operators

   apiVersion: networking.k8s.io/v1
   kind: NetworkPolicy
   metadata:
     name: allow-operator
   spec:
     podSelector:
       matchLabels:
         cnpg.io/cluster: cluster-example # The label value must be the cluster name
     ingress:
       - from:
           - namespaceSelector:
               matchLabels:
                 kubernetes.io/metadata.name: postgresql-operator-system # Or on OpenShift: openshift-operators
             podSelector:
               matchLabels:
                 app.kubernetes.io/name: cloud-native-postgresql # Matches the Operator pod
         ports:
           - port: 8000
           - port: 5432

特定のセットアップに一致するようにクラスター名とクラスター名前空間を調整する必要があることに注意してください。デフォルトの名前空間でない場合は、オペレーター名前空間も調整する必要があります。

クロスクラスターネットワーキング
--------------------------------

別のクラスターから :ref:`データディレクトリのブートストラップ中のエラー <データディレクトリのブートストラップ中のエラー>` を使用している間、または\ ``externalClusters``
セクションを使用している場合、関係するすべてのクラスター、オブジェクトストア、および名前空間間の接続を確認します。

繰り返しになりますが、 :ref:`Kubernetes documentation <Networking>` を参照します

セットアップ情報については。
