エンタープライズマルチクラスター管理

エンタープライズコンソール

SUSE® Securityコンソールは、大規模なエンタープライズマルチクラスターおよびマルチクラウドのデプロイメントを管理するために使用できます。プライマリクラスターとして選択されるべきクラスターが1つあり、他のリモートクラスターはそのプライマリに参加できるようになります。接続されると、プライマリクラスターは各リモートクラスターにフェデレーテッドルールをプッシュでき、各リモートクラスターのコンソールにフェデレーテッドルールとして表示されます。スキャンされたフェデレーテッドレジストリは、リモートクラスターとスキャン結果をsyncします。ローカルユーザーおよび管理権限を持つRancherユーザーのみが、クラスターをプライマリクラスターに昇格させることができます。

フェデレーテッドポリシーに加えて、マルチクラスター管理は、以下に示すように、サマリーで各リモートクラスターの監視をサポートしています。

サマリー

各クラスターのコントローラー間には、必要なポートでネットワーク接続が必要です。コントローラーは、サンプルSUSE® Securityデプロイメントyamlファイルに示されているように、プライマリまたはリモートサービスによってそのクラスターの外部に公開されます。

プライマリおよびリモートクラスターの設定

プライマリクラスターとなるクラスターのコンソールにログインします。右上のドロップダウンメニューで、マルチクラスターを選択し、次に昇格を選択してプライマリを設定します。注意:ローカルユーザーおよび管理権限を持つRancherユーザーのみが、クラスターをプライマリクラスターに昇格させることができます。現在、管理ロールを持つSSO/LDAP/OIDCユーザーは、クラスターをプライマリに昇格させることが許可されていません。マスター設定

fed-masterサービスのパブリックIPとポートを入力します。これを見つけるには、次のコマンドを実行します。

kubectl get svc -n neuvector

出力は次のようになります:

NAME                                      TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)                         AGE
neuvector-service-controller-fed-master   LoadBalancer   10.27.249.147   35.238.131.23    11443:31878/TCP                 17d
neuvector-service-controller-fed-worker   LoadBalancer   10.27.251.1     35.226.199.111   10443:32736/TCP                 17d

上記の例では、プライマリコントローラーホスト名/IPは35.238.131.23で、ポートは11443です。注意:このIPアドレスとポートが外部からアクセス可能であることを確認してください(リモートクラスターから)。注意:システムクロック(時間)は、正しく機能するために各プライマリおよびリモートクラスターで同じでなければなりません。

コンソールに再度ログインした後、右上のメニューから「複数のクラスター」を再度選択し、リモートクラスターに接続するために必要なトークンを生成するアイコンをクリックします。次のステップで使用するためにトークンをコピーしてください。トークンは約1時間有効で、期限切れの場合は将来のリモートクラスターに接続するために再生成する必要があります。

トークン

リモートクラスターをプライマリに参加させるには、リモートクラスターのコンソールに管理者としてログインします。右上のドロップダウンから「複数のクラスター」を選択し、「参加」をクリックします。リモートクラスターのコントローラーIPまたはホスト名とポートを入力してください。再度、リモートクラスターからこの情報を取得できます。

kubectl get svc -n neuvector

リモートクラスターのfed-workerの出力を使用して、IPアドレスとポートを設定してください。次に、プライマリからコピーしたトークンを入力します。トークンを入力した後、プライマリのIPアドレスとポートは自動的に入力されますが、これを編集したり手動で入力したりすることができます。

JoinRemote

リモートクラスターからログアウトし、プライマリに再度ログインします。または、すでにログインしている場合は、リフレッシュをクリックすると、リモートクラスターが「複数のクラスター」メニューに表示されます。

FedMaster

リスト内の管理アイコンをクリックするか、上部のプルダウンの複数のクラスターメニューを使用して、いつでもクラスターを切り替えることができます。リモートクラスターに切り替えると、左側のすべてのメニュー項目はリモートクラスターに適用されます。

トラブルシューティング

サービスが期待通りに応答していることを確認するために、クラスターの外部からテストを実行するか、必要に応じて`fed-master`および`fed-managed`クラスターのテストポッドからネットワーク接続が許可されていることを確認するために実行できます。

fed-masterサービスを確認してください

クラスターサービスポート`11443`は、`fed-master`サービスを有効にした後のみアクセス可能です。以下のコマンドは、`fed-master`サービスが要求されたリソースが利用できないことを示す応答を返すときにエラーコードを返します。

出力例
{"code":1,"error":"URL not found","message":"URL not found"}

`curl`コマンドのURLは、`fed-master`サービスがどのように公開されているかによって異なります。`ingress`サービスが構成されている場合、ポートを指定する必要はありません。

curl -v https://<fed-master>[:<port>]/v1/eula

fed-managedサービスを確認してください

クラスターサービスポート`10443`は、`REST API`と`fed-managed`サービスの間で共有されています。以下のコマンドは、`fed-managed`サービスが利用可能であることを示す応答を返すときに成功コードを返します。

出力例
{"eula":{"accepted":true}})

`curl`コマンドのURLは、`fed-managed`サービスがどのように公開されているかによって異なります。`ingress`サービスが構成されている場合、ポートを指定する必要はありません。

curl -v https://<fed-managed>[:<port>]/v1/eula

フェデレーテッドポリシー

フェデレーテッドルールを作成する方法についての指示は、ポリシー→のフェデレーテッドポリシーセクションを参照してください。

分散型画像スキャン結果のためのフェデレーテッドレジストリ

プライマリ(マスター)クラスターは、フェデレーテッドレジストリとして指定されたレジストリ/リポジトリをスキャンできます。これらのレジストリからのスキャン結果は、すべての管理(リモート)クラスターにsyncされます。これにより、管理クラスターのコンソールでスキャン結果が表示され、Admission Controlルールでその結果が利用できるようになります。レジストリは、各クラスターによってではなく、一度だけスキャンする必要があり、CPU/メモリおよびネットワーク帯域幅の使用を削減します。

フェデレーテッドレジストリは、プライマリクラスターのアセット→レジストリでフェデレーテッド管理者によってのみ構成できます。フェデレーテッドリポジトリを追加してスキャンした後、スキャン結果はすべての管理クラスターにsyncされます。画像スキャンを必要とする各管理クラスターのAdmission Controlルール(例:CVE、コンプライアンスベースのルール)は、フェデレーテッドスキャン結果とローカルに構成されたレジストリスキャン結果の両方を自動的に使用します。

CI/CDスキャナーからの結果のフェデレーテッド化(オプション)

フェデレーテッドレジストリスキャン結果は、上記のように常に管理クラスターにsyncされます。プライマリクラスターは、スタンドアロンのスキャナーのスキャン結果や、ビルドCI/CDパイプラインから呼び出されたスキャナープラグインのスキャン結果も受信できます。ビルドフェーズ(CI/CD)リポジトリのスキャン結果を管理クラスターにsyncさせるには、まず以下に示すようにプライマリ(マスター)クラスターの設定を編集して有効にします。

master_settings

fed_sync