「同じプロジェクト内のインスタンスのみがアクセスできるようにする」とは何ですか?
クラスタのapiserverへのアクセスを意味するとは限りません。そのIPはすべてのインスタンスからアクセス可能である必要があるためです。
クラスタ外のインスタンスからクラスタ内のコンテナにアクセスする場合は、ファイアウォールルールを作成して、GCEネットワーク内のトラフィックを許可することができます。あなたはどちらかこれを行うときに、非常に寛容またはもう少しきめ細かくすることができます。
非常に寛容な - ちょうどあなたのソースIP範囲10.0.0.0/8のすべてのインスタンスへのトラフィックを許可するファイアウォールルールを作成しますあなたの気にするすべてのプロトコルとポート(例:tcp:1-65535,udp:1-65535,icmp
)にネットワーク(「ターゲットタグ」を追加しないでください)。 10.0.0.0/8の範囲は、ネットワーク内のすべてのインスタンスとコンテナ(およびその外部のもの)を対象とします。
クラスタごとに別個のファイアウォール - 番号1と同じことを実行しますが、クラスタ内のすべてのノードにあるターゲットタグを追加します。インスタンスのタグの1つを見るか、GKEが作成されたときにクラスタ用に作成したファイアウォールのターゲットタグを調べることで、これを取得できます。このアプローチの利点は、ネットワーク内のすべてのものをクラスタに話しかけることができるようになることです。
クラスタ外からサービスにアクセスする意味場合は、するために、クラスタ外のインスタンスにKUBE-プロキシを実行して、クラスタのapiserverに話をするように設定する必要があるので、それは少し厳しいですサービスパケットを適切にルーティングします。
申し訳ありませんが、ミスタイプです!私はGoogle Compute Engineを意味しましたが、GKEも関わっています。私の編集した質問を見てください。 – aknuds1
あなたの10.0.0.0/8ソースルールを試しましたが、同じプロジェクト内の他のインスタンスもロックアウトされています。 – aknuds1
AFAICT、問題は、GCEインスタンスが外部IP経由で他のインスタンスにアクセスすることです。私はトラフィックを通過させる外部IPに対応するソース範囲を追加してこれを検証しました。 – aknuds1