この記事では、Nexus Kubernetes クラスター機能を使用する方法について説明します。 Nexus Kubernetes クラスター機能は、お客様が新しいパッケージまたは機能を追加して Nexus Kubernetes クラスターを拡張できる Nexus プラットフォームの機能です。
前提条件
この攻略ガイドを読み進む前に、次のことをお勧めします。
- 関連する包括的な概要と手順について、Nexus Kubernetes クラスターのクイックスタート ガイドを参照してください。
- ガイドの実装を円滑に行うため、概要が説明されている前提条件を満たしていることを確認してください。
- 最小限必要な
networkcloud
az-cli 拡張機能のバージョン:2.0.b3
制限事項
Required
フィールドがFalse
に設定されている Kubernetes クラスター機能のみを、作成、削除、または更新できます。- Kubernetes クラスター機能を初めてインストールするときは、機能の名前を、表に示されている機能名のいずれかにする必要があります。 その後の更新や削除などのアクションでは、
az networkcloud kubernetescluster feature list
コマンドを使って機能の名前を取得する必要があります。 - ポッドの水平オートスケーラー (HPA) がクラスター内で使われている場合は、
metrics-server
機能を削除できません。 csi-nfs
やcsi-volume
などのストレージ関連の Kubernetes クラスター機能は、それぞれの StorageClass がクラスター内で使われている場合は削除できません。
既定の構成
Nexus Kubernetes クラスターをデプロイすると、必要な Kubernetes クラスター機能の一覧が自動的にインストールされます。 デプロイ後は、オプションの Kubernetes クラスター機能を、インストールまたはアンインストール (クラスターから削除) して管理できます。
"Required" とマークされた Kubernetes クラスター機能のインストールを制御することはできません。一方、"Required" フィールドが "False" に設定されている機能については、作成、更新、削除の操作を実行できます。update コマンドを使って、Kubernetes クラスター機能を更新することもできます。
各 Nexus Kubernetes クラスターでは、次の Kubernetes クラスター機能を使用できます。 "Required" が "True" に設定されている機能は、常に既定でインストールされ、削除できません。
名前 | 説明 | 必須 | 既定でインストールされています |
---|---|---|---|
azure-arc-k8sagents | Arc が Nexus Kubernetes クラスターを接続します | True | True |
calico | コンテナー ネットワーク インターフェイス (CNI) のサポートを提供します | True | True |
cloud-provider-kubevirt | Kubernetes で仮想マシン ベースのワークロードを管理するための Cluster API (CAPI) KubeVirt プロバイダーをサポートします | True | True |
ipam-cni-plugin | ipamEnabled が True に設定されている場合、ワークロード コンテナーに接続されているレイヤー 3 ネットワークに IP アドレスを割り当てます |
True | True |
metallb | Kubernetes 内のトラフィックを負荷分散するために、LoadBalancer サービスに外部 IP を提供します | True | True |
multus | Kubernetes ポッドへの複数のネットワーク インターフェイスのアタッチをサポートします | True | True |
node-local-dns | Kubernetes クラスター内の DNS のパフォーマンスと信頼性を向上させるため、NodeLocal DNSCache をデプロイします | True | True |
sriov-dp | ネットワークのパフォーマンスを向上させるため、シングルルート I/O 仮想化 (SR-IOV) 用のオプションの CNI プラグインをデプロイします | True | True |
azure-arc-servers | 各コントロール プレーンとエージェント プール ノードに Azure Arc 対応サーバーをデプロイし、Azure リソースと共に Azure 以外のリソースを管理できるようにします | False | True |
csi-nfs | Kubernetes で NFS ベースのストレージをサポートするため、NFS (ネットワーク ファイル システム) 用の Container Storage Interface (CSI) ドライバーを提供します | False | True |
csi-volume | Kubernetes 内での永続ボリューム要求のための csi-nexus-volume ストレージ クラスをサポートします | False | True |
metrics-server | メトリック サーバーをデプロイします。これは、CPU やメモリの使用量など、Kubernetes クラスターのリソース使用量メトリックを提供します | False | True |
Note
- 各クラスターで、Kubernetes クラスター機能の種類ごとに 1 つの機能だけを作成できます。
- "Required" 属性が "False" に設定されている Kubernetes クラスター機能を削除すると、関連するグラフがクラスターから削除されます。
Kubernetes クラスター機能を管理する方法
次の操作を使って、Kubernetes クラスター機能の構成を作成および管理できます。
Kubernetes クラスター機能をインストールする
Kubernetes クラスター機能をクラスターにインストールするには、az networkcloud kubernetescluster feature create
コマンドを使います。 複数の Azure サブスクリプションがある場合は、CLI コマンドで --subscription
フラグを使うか、az account set コマンドで適切なサブスクリプション ID を選んで、サブスクリプション ID を指定する必要があります。
az networkcloud kubernetescluster feature create \
--name "<FEATURE_NAME>" \
--kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
--resource-group "<RESOURCE_GROUP>" \
--location "<LOCATION>" \
--tags "<KEY1>=<VALUE1>" "<KEY2>=<VALUE2>"
- プレースホルダー (
<FEATURE_NAME>
、<KUBERNETES_CLUSTER_NAME>
、<RESOURCE_GROUP>
、<LOCATION>
、<KEY1>=<VALUE1>
、<KEY2>=<VALUE2>
) は、具体的な情報に置き換えます。
使用可能なすべてのパラメーターとその説明を表示するには、次のコマンドを実行します。
az networkcloud kubernetescluster feature create --help
Kubernetes クラスター機能の構成パラメーター
パラメーター名 | 説明 |
---|---|
FEATURE_NAME | Kubernetes クラスター feature の名前 |
KUBERNETES_CLUSTER_NAME | クラスターの名前 |
LOCATION | クラスターがデプロイされる Azure リージョン |
RESOURCE_GROUP | クラスター リソース グループの名前 |
KEY1 | Kubernetes クラスター機能の作成に渡すオプションの tag1 |
VALUE1 | Kubernetes クラスター機能の作成に渡すオプションの tag1 の値 |
KEY2 | Kubernetes クラスター機能の作成に渡すオプションの tag2 |
VALUE2 | Kubernetes クラスター機能の作成に渡すオプションの tag2 の値 |
az コマンドで --no-wait --debug
オプションを指定すると、このコマンドの実行が非同期になります。 詳細については、非同期操作の追跡方法に関する記事を参照してください。
Kubernetes クラスター機能を一覧表示する
az networkcloud kubernetescluster feature list
コマンドを使って、特定のクラスターの Kubernetes クラスター機能リソースを確認できます。 このコマンドは、指定した Kubernetes クラスターに関連付けられているすべての機能の一覧を表示します。
az networkcloud kubernetescluster feature list \
--kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
--resource-group "<RESOURCE_GROUP>"
Kubernetes クラスター機能を取得する
Kubernetes クラスターが作成された後は、networkcloud kubernetescluster feature show
コマンドを使って、特定の Kubernetes クラスター機能の詳細を確認できます。 これにより、機能に関する詳細な情報が提供されます。
az networkcloud kubernetescluster feature show \
--cluster-name "<KUBERNETES_CLUSTER_NAME>" \
--resource-group "<RESOURCE_GROUP>"
このコマンドは、Kubernetes クラスター機能の構成の JSON 表現を返します。
Kubernetes クラスター機能を更新する
Kubernetes クラスター機能の作成と同様に、更新アクションを実行して、Kubernetes クラスター機能に割り当てられているタグを変更できます。 タグを更新するには次のコマンドを使います。
重要
name
パラメーターは、az networkcloud kubernetescluster feature list
コマンドの出力から取得した "Name" と一致する必要があります。 最初はインストール時に指定した機能名を使用できますが、機能がインストールされると、一意の名前が割り当てられます。 そのため、更新と削除の操作では、テーブルで示されている初期機能名を使うのではなく、常にlist
コマンドを使って実際のリソース名を取得します。
az networkcloud kubernetescluster feature update \
--name "<FEATURE_NAME>" \
--kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
--resource-group "<RESOURCE_GROUP>" \
--tags <KEY1>="<VALUE1>" \
<KEy2>="<VALUE2>"
az コマンドで --no-wait --debug
オプションを指定すると、このコマンドの実行が非同期になります。 詳細については、非同期操作の追跡方法に関する記事を参照してください。
Kubernetes クラスター機能を削除する
Kubernetes クラスター機能を削除すると、クラスターからリソースが削除されます。 Kubernetes クラスター機能を削除するには、次のコマンドを使います。
重要
name
パラメーターは、az networkcloud kubernetescluster feature list
コマンドの出力から取得した "Name" と一致する必要があります。 最初はインストール時に指定した機能名を使用できますが、機能がインストールされると、一意の名前が割り当てられます。 そのため、更新と削除の操作では、テーブルで示されている初期機能名を使うのではなく、常にlist
コマンドを使って実際のリソース名を取得します。
az networkcloud kubernetescluster feature delete \
--name "<FEATURE_NAME>" \
--kubernetes-cluster-name "<KUBERNETES_CLUSTER_NAME>" \
--resource-group "<RESOURCE_GROUP>"
az コマンドで --no-wait --debug
オプションを指定すると、このコマンドの実行が非同期になります。 詳細については、非同期操作の追跡方法に関する記事を参照してください。
Note
Required=True
である Kubernetes クラスター機能を削除しようとすると、コマンドは失敗し、"... 機能は必須機能であるため削除できません" というエラー メッセージが表示されます。- このような場合、後続の show/list コマンドでは
provisioningState
がFailed
と表示されます。 これは既知の問題です。 provisioningState
は、影響を受ける Kubernetes クラスター機能でのタグの更新のような、no-op コマンドを実行して修正できます。 これを行うには、update コマンドの--tags
パラメーターを使います。 この操作により、provisioningState
がSucceeded
にリセットされます。