ネットワーキング
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 を参照します
セットアップ情報については。