web-dev-qa-db-ja.com

MAASの背後にあるKubernetesにネットワーク接続する方法

MAASが背後にあり、MAASコントローラーの背後にKubernetesがあるルーターがあります(2つのNIC --- 1つはKubernetesに接続され、もう1つはルーターに接続されています)。ルーター上の別のコンピューターから、IPアドレス10.12.0.2でKubernetesのコンテナーに接続しようとしています。しかし、接続できません。

MAASコントローラーのIPアドレスは10.11.0.2で、これに問題なく接続できます。ただし、10.12.0.0ネットワークはルーターに公開されていません。ルーターに接続されているコンピューターからKubernetesクラスターに接続するにはどうすればよいですか?新しいコンテナーごとにMAASでIPを手動でブリッジすることなく、これを行う自動化された方法はありますか?また、Kubernetesクラスターとルーターの間にMAASノードを配置することによるセキュリティへの影響を最小限に抑えながら、これを行うことはできますか?

1

まず最初に...そのコンテナIP、10.12.0.2ClusterIPですか?もしそうなら、それはあなたが抱えている多くの問題を説明するかもしれません。私は次のように書いています。これは、ポッド内のコンテナーで取得する内部の非公開のIPであるという大きな前提で記述しています。まだ行っていない場合に試すことの1つ... MAASボックスからそのコンテナip 10.12.0.2にアクセスしてみてください。アクセスできませんか?私はそれが露出する必要があるに違いない...


私はあなたが持っている正確な設定を試していません。セットアップはMAASサーバーを介して実行されるため、複雑になるため、以下に記述した内容は完全には適用されない可能性があります。

すでにこれを発見しているかもしれませんが、ほとんどのKubernetesサービスによって提供されるClusterIPアドレスは、クラスター内の他のマシンにのみ公開されています。サービスを公開するには多くの方法があり、その中には私があなたの状況にはお勧めしないものも含まれます。

以下で説明するのは、現時点で最もシンプルで最適なセットアップであり、そのサービスに静的IPを提供できるという利点があります。次に、MAASのDNS設定(またはDNSに適したもの)を使用して、そのサービスのそのIPを指すAレコードを作成できます。

これをより抽象的で専門用語にとらわれないようにするための具体的な例を次に示します...

  • k8sクラスターにRook/Ceph(rook.io)をデプロイします
  • svcをServiceType: LoadBalancerに変更し、Cephダッシュボードを指すそのsvcディスカバリーの192.168.1.240のIPを取得します。
  • mAASのDNSでAレコードを設定して、ceph.maas192.168.1.240にバインドします。

これで、ブラウザを起動してceph.maasにアクセスし、ダッシュにアクセスできます。

あなたの場合、静的IPは、webappsとサービスおよびストレージの予測可能なエンドポイントを持つために必要なものの一部である可能性があります。 MAASがプロキシとして機能している場合は、IPを転送するだけかもしれません。


必要なものの一部がLANのクラスター外からアクセスできる静的IPである場合は、MAASとルーターで使用されないサブネット上のIPの範囲を予約することをお勧めします。 MAASや他の人が192.168.1.240-247unreservedを残す例に含まれている画像。

次に、MetalLBを使用します。

kubectl apply -f https://raw.githubusercontent.com/google/metallb/v0.8.3/manifests/metallb.yaml

ロードバランサーに使用するIPのプールを提供する構成マップの次のマニフェストを作成します。

layer2.yaml

 apiVersion: v1
 kind: ConfigMap
 metadata:
   namespace: metallb-system
   name: config
 data:
   config: |
     address-pools:
     - name: my-ip-space
       protocol: layer2
       addresses:
       - 192.168.1.240/29

クラスターにマニフェストを適用する

kubectl apply -f layer2.yaml

これらの手順では、クラスターの外部にアクセスできる静的IPにバインドできるベアメタルロードバランサーをデプロイして構成します。上記の設定と設定マップは、その狭い範囲の予約済みアドレス(192.168.1.240-247)にバインドするように設定されています。より広い範囲または異なる範囲、あるいはその両方が必要な場合は、このCIDRからIPの範囲の計算が役立ちます。

https://www.ipaddressguide.com/cidr

MetalLBがデプロイされたら、静的IPを使用して内部的に公開するサービスに移動し、ClusterIP(またはNodePort)をLoadBalancerに変更する必要があります。これにより、MetalLBで使用可能なIPのプールから選択され、1つが割り当てられます。

それがあなたのためにスムーズに行くことを願っています。そして成功を祈る!

enter image description here

1
David West