ネットワーキング

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

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

ただし、既存のインフラストラクチャにCloudNativePGをデプロイする場合、ネットワークの制限が適用され、オペレーターとPostgreSQLクラスターとの通信が損なわれる可能性があります。具体的には、既存の ネットワークポリシー

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

または、セキュリティを強化するために、環境にネットワークポリシーを追加することに関心がある場合があります。

security document で述べたように、オペレーターがポート8000および5432のすべてのクラスターポッドに到達でき、ポッドが相互に接続できることを確認してください。

オペレーターのクロスネームスペースネットワークポリシー

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

オペレーターはクラスターポッドに接続できる 必要があります 。クロスネームスペーストラフィックを制限するNetworkPolicy がある場合、これは除外される可能性があります。

たとえば、 kubernetes guide on network policies

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

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

#  This network policy allows ingress from the CNPG operator

#  installed in namespace cnpg-system into the pods corresponding

#  to a cluster named cluster-example

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: cnpg-system # Namespace where the operator is deployed
          podSelector:
            matchLabels:
              app.kubernetes.io/name: cloudnative-pg # Matches the Operator pod
      ports:
        - port: 8000
        - port: 5432

このリポジトリ内のファイル。クラスター名とクラスター名前空間を調整して特定のセットアップに合わせ、オペレーター名前空間がデフォルトの名前空間でない場合は調整する必要があることに注意してください。

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

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

繰り返しますが、 Kubernetes documentation を参照してください

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