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に必要に応じて証明書ファイルが埋め込まれた設定を提供します。
-
SUSE ManagerのWeb UIで、
に移動します。 -
作成をクリックし、[
Kubernetesクラスタ
]を選択します。 -
[
Add a Kubernetes Virtual Host Manager
](Kubernetes仮想ホストマネージャの追加)セクションで、次のパラメータを使用します。-
[
ラベル
]フィールドにVHMのカスタム名を入力します。 -
Kubernetesクラスタに必要データが含まれている
kubeconfig
ファイルを選択します。
-
-
[
コンテキスト
]フィールドで、クラスタに適切なコンテキストを選択します。 これはkubeconfig
ファイルで指定されています。 -
作成をクリックします。
-
SUSE ManagerのWeb UIで、
に移動します。 -
Kubernetesクラスタを選択します。
-
Schedule refresh data(データの更新をスケジュールする)をクリックしてノードのデータを更新します。
ノードのデータの更新には数分かかる場合があります。 更新された情報を表示するには、ブラウザウィンドウを更新する必要がある場合があります。
接続および認証の問題はgatherer.log
にログされます。
登録中にはノードのデータは更新されません。 データを表示するにはデータを手動で更新する必要があります。 |
2. イメージランタイムデータの取得
SUSE ManagerのWeb UIでKubernetesイメージに関するランタイムデータを表示できます。そのためには、
に移動します。イメージリストの表には、3つの列があります。
-
リビジョン
:SUSE Managerによってビルドされたイメージをリビルドするたびに、または外部でビルドされたイメージをインポートするたびに増加するシーケンス番号。
-
ランタイム
:登録されたクラスタの各イメージにおける実行中インスタンスの全般的な状態。
-
インスタンス
:SUSE Managerで登録されているすべてのクラスタでこのイメージを実行しているインスタンスの数。 数値の横のポップアップアイコンをクリックして数値の内訳を表示できます。
[ランタイム
]列には、次の状態メッセージのいずれかが表示されます。
-
全てのインスタンスがSUSE Managerと同期できています
:実行中のすべてのインスタンスがSUSE Managerによって追跡されているイメージの同じビルドを実行しています。
-
古いインスタンスが見つかりました
:インスタンスの一部が古いビルドのインスタンスを実行しています。 イメージを再展開する必要があるかもしれません。
-
情報無し
:SUSE Managerに含まれているイメージデータとインスタンスイメージのチェックサムが一致していません。 イメージを再展開する必要があるかもしれません。
-
SUSE ManagerのWeb UIで、
に移動します。 -
作成をクリックしてイメージストアを作成します。
-
に移動します。
-
作成をクリックしてイメージプロファイルを作成します。 Kubernetesへの展開に適したdockerファイルを使用する必要があります。
-
に移動して、新しいプロファイルでイメージをビルドします。
-
イメージを登録済みのKubernetesクラスタのいずれかに展開します。 この操作は
kubectl
ツールを使用して実行できます。
更新データは、
にあるイメージリストに表示されます。-
SUSE ManagerのWeb UIで、
に移動します。 -
インポートするイメージを所有しているレジストリがない場合、追加します。
-
に移動し、インポートをクリックします。
-
各フィールドに入力し、作成したイメージストアを選択し、インポートをクリックします。
インポートしたデータは、
にあるイメージリストに表示されます。-
SUSE ManagerのWeb UIで、
に移動し、再ビルドするイメージが含まれている行を探し、詳細をクリックします。 -
[
ビルド状態
]セクションに移動し、再ビルドをクリックします。 再ビルドの完了には少し時間がかかります。
再ビルドが正常に完了すると、
のイメージリストでイメージのランタイム状態が更新されます。 インスタンスが前のビルドのインスタンスを実行していることをこれは示しています。
再ビルドできるのは、元々SUSE Managerでビルドされたイメージのみです。 インポートしたイメージは再ビルドできません。 |
-
SUSE ManagerのWeb UIで、
に移動し、実行中のインスタンスが含まれている行を探し、詳細をクリックします。 -
[
概要
]タブに移動します。 [イメージの情報
]セクションには、[ランタイム
]フィールドと[インスタンス
]フィールドにデータがあります。 -
[
ランタイム
]タブに移動します。 このセクションには、登録されているすべてのクラスタでこのイメージを実行しているKubernetesポッドに関する情報が含まれています。 このセクションの情報を次に示します。-
ポッドの名前。
-
ポッドがあるネームスペース。
-
指定されているポッドのコンテナのランタイム状態。
-
3. パーミッションと証明書
SUSE Managerでは |
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/を参照してください。