ネットワーキング

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

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

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

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

または、セキュリティを強化するために環境にネットワークポリシーを追加することに興味がある場合があります。 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 を参照します

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