VHMとKubernetes

仮想ホストマネージャ(VHM)を使用して、Kubernetesクラスタを管理できます。

VHMを使用すると、SUSE Managerは、クラスタに関する情報を取得して報告できます。 VHMの詳細については、仮想ホストマネージャを参照してください。

KubernetesでSUSE Managerを使用するには、SUSE Managerサーバがコンテナ管理用に設定されていて、必要なすべてのチャンネルがあり、登録されているコンテナビルドホストが利用できる必要があります。

次の要件もあります。

  • 1つ以上のKubernetesのクラスタをネットワーク上で使用できる。

  • virtual-host-gatherer-KubernetesパッケージがSUSE Managerサーバにインストールされている。

  • Kubernetesバージョン1.5.0以上。

  • コンテナビルドホストにDockerバージョン1.12以上がある。

1. Kubernetes VHMの作成

Kubernetesクラスタは、SUSE ManagerにVHMとして登録されています。

Kubernetesクラスタを登録して認可するkubeconfigファイルが必要です。 Kubernetesのコマンドラインツールであるkubectlを使用してkubeconfigファイルを取得できます。 kubectl config view --flatten=trueは、VHMに必要に応じて証明書ファイルが埋め込まれた設定を提供します。

プロシージャ: Kubernetes VHMの作成
  1. SUSE ManagerのWeb UIで、システム  仮想ホストマネージャに移動します。

  2. 作成をクリックし、[Kubernetesクラスタ]を選択します。

  3. Add a Kubernetes Virtual Host Manager](Kubernetes仮想ホストマネージャの追加)セクションで、次のパラメータを使用します。

    • ラベル]フィールドにVHMのカスタム名を入力します。

    • Kubernetesクラスタに必要データが含まれているkubeconfigファイルを選択します。

  4. コンテキスト]フィールドで、クラスタに適切なコンテキストを選択します。 これはkubeconfigファイルで指定されています。

  5. 作成をクリックします。

プロシージャ: クラスタのノードを表示する
  1. SUSE ManagerのWeb UIで、システム  仮想ホストマネージャに移動します。

  2. Kubernetesクラスタを選択します。

  3. Schedule refresh data(データの更新をスケジュールする)をクリックしてノードのデータを更新します。

ノードのデータの更新には数分かかる場合があります。 更新された情報を表示するには、ブラウザウィンドウを更新する必要がある場合があります。

接続および認証の問題はgatherer.logにログされます。

登録中にはノードのデータは更新されません。 データを表示するにはデータを手動で更新する必要があります。

2. イメージランタイムデータの取得

SUSE ManagerのWeb UIでKubernetesイメージに関するランタイムデータを表示できます。そのためには、イメージ  イメージリストに移動します。

イメージリストの表には、3つの列があります。

  • リビジョン:

    SUSE Managerによってビルドされたイメージをリビルドするたびに、または外部でビルドされたイメージをインポートするたびに増加するシーケンス番号。

  • ランタイム:

    登録されたクラスタの各イメージにおける実行中インスタンスの全般的な状態。

  • インスタンス:

    SUSE Managerで登録されているすべてのクラスタでこのイメージを実行しているインスタンスの数。 数値の横のポップアップアイコンをクリックして数値の内訳を表示できます。

ランタイム]列には、次の状態メッセージのいずれかが表示されます。

  • 全てのインスタンスがSUSE Managerと同期できています:

    実行中のすべてのインスタンスがSUSE Managerによって追跡されているイメージの同じビルドを実行しています。

  • 古いインスタンスが見つかりました:

    インスタンスの一部が古いビルドのインスタンスを実行しています。 イメージを再展開する必要があるかもしれません。

  • 情報無し:

    SUSE Managerに含まれているイメージデータとインスタンスイメージのチェックサムが一致していません。 イメージを再展開する必要があるかもしれません。

プロシージャ: イメージのビルド
  1. SUSE ManagerのWeb UIで、イメージ  ストアに移動します。

  2. 作成をクリックしてイメージストアを作成します。

  3. イメージ  プロファイルに移動します。

  4. 作成をクリックしてイメージプロファイルを作成します。 Kubernetesへの展開に適したdockerファイルを使用する必要があります。

  5. イメージ  ビルドに移動して、新しいプロファイルでイメージをビルドします。

  6. イメージを登録済みのKubernetesクラスタのいずれかに展開します。 この操作はkubectlツールを使用して実行できます。

更新データは、イメージ  イメージリストにあるイメージリストに表示されます。

プロシージャ: 以前展開したイメージのインポート
  1. SUSE ManagerのWeb UIで、イメージ  イメージストアに移動します。

  2. インポートするイメージを所有しているレジストリがない場合、追加します。

  3. イメージ  イメージリストに移動し、インポートをクリックします。

  4. 各フィールドに入力し、作成したイメージストアを選択し、インポートをクリックします。

インポートしたデータは、イメージ  イメージリストにあるイメージリストに表示されます。

プロシージャ: 以前展開したイメージの再ビルド
  1. SUSE ManagerのWeb UIで、イメージ  イメージリストに移動し、再ビルドするイメージが含まれている行を探し、詳細をクリックします。

  2. ビルド状態]セクションに移動し、再ビルドをクリックします。 再ビルドの完了には少し時間がかかります。

再ビルドが正常に完了すると、イメージ  イメージリストのイメージリストでイメージのランタイム状態が更新されます。 インスタンスが前のビルドのインスタンスを実行していることをこれは示しています。

再ビルドできるのは、元々SUSE Managerでビルドされたイメージのみです。 インポートしたイメージは再ビルドできません。

プロシージャ: 追加のランタイムデータの取得
  1. SUSE ManagerのWeb UIで、イメージ  イメージリストに移動し、実行中のインスタンスが含まれている行を探し、詳細をクリックします。

  2. 概要]タブに移動します。 [イメージの情報]セクションには、[ランタイム]フィールドと[インスタンス]フィールドにデータがあります。

  3. ランタイム]タブに移動します。 このセクションには、登録されているすべてのクラスタでこのイメージを実行しているKubernetesポッドに関する情報が含まれています。 このセクションの情報を次に示します。

    • ポッドの名前。

    • ポッドがあるネームスペース。

    • 指定されているポッドのコンテナのランタイム状態。

3. パーミッションと証明書

SUSE Managerではkubeconfigファイルにすべての証明書データが埋め込まれている場合、このファイルのみ使用できます。

SUSE ManagerからのAPIコールは次のとおりです。

  • GET /api/v1/pods

  • GET /api/v1/nodes

SUSE Managerの最小推奨パーミッションは次のとおりです。

  • すべてのノードをリストするClusterRole:

    resources: ["nodes"]
    verbs: ["list"]
  • すべてのネームスペースのポッドをリストするClusterRole(ロールのバインドはネームスペースを制限してはいけません):

    resources: ["pods"]
    verbs: ["list"]

/podsが403の応答を返した場合、SUSE Managerはクラスタ全体を無視します。

RBAC認証の操作方法の詳細については、https://kubernetes.io/docs/admin/authorization/rbac/を参照してください。