SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Azure からの AKS ハイブリッドクラスター展開についてのメモ

leave a comment

AKS ハイブリッドデプロイオプションの要素の一つとして「Azure からの AKS ハイブリッドクラスター展開 (プロビジョニング)」 があります。

この展開方法を使用する際にいくつかの確認点がありましたのでメモを。

Azure からの AKS ハイブリッドクラスター展開とは

Windows Server / Azure Stack HCI に AKS を展開する方法として 「AKS ハイブリッドデプロイオプション (AKS ハイブリッド)」 があります。

この展開オプションの一つとして「Azure からのAKS ハイブリッドクラスター展開」があり、この展開方法を Azure ハイブリッドクラスター展開と呼ぶことがあります。

今までの AKS ハイブリッドによる AKS ハイブリッドクラスターの展開は、Windows Admin Center や CUI を使用して AKS の展開を行っていました。

この方法で展開をした場合、Azure Arc 対応 Kubernetes として Azure にリソースが登録されていますが、展開をキックするのは Azure Portal / API ではなく、実行基盤の Windows OS に対してコマンドを投入する必要がありました。

新しい展開方法として「AKS ハイブリッドクラスター展開」が提供されました。

Azure からの AKS ハイブリッドクラスター展開により展開される AKS も Windows Server / Azure Stack HCI 上に構築が行われます。

しかし、GUI としては、Azure Portal / CUI としては Az CLI または Azure REST API を使用するといった、Azure を起点とした展開を行うことができます。

どちらの方法で展開した AKS についても Azure 上に登録されるのですが、リソースが異なるというのも特徴としてあり、登録されるリソースが異なるため、Azure 上で可能な操作も変わってきます。

image

Azure Portal で提供されている機能も異なります。左が従来の展開方法で展開した AKS、右が Azure からのハイブリッドクラスター展開で展開した AKS となります。

従来の展開方法で展開した AKS については、Azure Arc 対応 Kubernetes により接続された環境となり、Azure Portal から Kubernetes リソースを確認する機能が提供されています。

Azure から展開した AKS については、この機能は提供されていません。

両方とも Azure Arc によって Azure に接続が行われている k8s ではあるのですが、操作可能な内容が異なっています。

image

 

大まかな内容としては次のような違いがあるのではないでしょうか。

Provisioned Clusters – Create Or Update

New-AksHciCluster

  従来の AKS ハイブリッドクラスターの展開 Azure からのAKS ハイブリッドクラスター展開
GUI による作成 Windows Admincenter Azure Portal
CUI による作成 New-AksHciCluster az hybridaks create
REST による操作 N/A Provisioned Clusters – Create Or Update
Az CLI az connectedk8s az hybridaks
リソースプロバイダー Microsoft.Kubernetes Microsoft.HybridContainerService
ポータルからの k8s のリソース確認 サポート N/A

 

Azure からの AKS ハイブリッドクラスター展開を可能とするためには

Azure からの AKS ハイブリッドクラスター展開を可能とするためには、AKS の実行基盤となる Windows Server / Azure Stack HCI を Azure 上からリージョンのように取り扱うことができるようにする必要があります。

このような展開を可能とするためには、Azure Arc リソースブリッジ を展開する必要があります。

Azure Arc リソースブリッジを使用した Azure からのリソース展開を使用する機能はいくつかありますが、今回のケースでは、次のような機能が必要となります。

  1. Azure から AKS 用の Hyper-V の仮想マシンを展開する
  2. 展開された仮想マシンを使用して AKS を構築する

これを実現するために必要な作業が次のドキュメントツリーで解説されている形になります。

 

作業の流れ

現在はプレビュー中の機能ということもあり、情報が散見しているのですが、オンプレミスの環境に展開する場合には次のドキュメントの作業を順に実行していくことになります。

  1. Azure からの AKS ハイブリッド クラスター プロビジョニングのシステム要件 (プレビュー)
    • 投稿時点では使用する CLI の拡張機能のバージョンが厳密になっています。
    • 特定のバージョンの拡張機能でないと展開が失敗するケースがあります。
  2. コマンド ラインを使用して Azure Arc VM 管理を設定する (プレビュー)
    • AKS で使用する Hyper-V の仮想マシンを Azure から展開する必要があるため、Azure Arc VM 管理の機能が必要となります。
    • Azure Arc リソースブリッジが展開され仮想マシンを展開可能とするための各種設定が行われます。
  3. Arc VM と共に Azure Stack HCI に AKS サービスをインストールする方法
    • 「2.」の設定は Arc VM 管理向けの汎用的な設定となるため、Azure からの AKS ハイブリッドクラスター展開を可能とするための設定を投入します。
  4. Azure 用の AKS ハイブリッド ネットワークを作成する方法
    • AKS で使用するネットワークの設定と、k8s のノードで使用するイメージのダウンロードを行います。

ここまでの設定が実行できると、次の方法を使用して Azure からオンプレミスの環境に対して AKS を展開することが可能となります。

上記は、作業ステップ単位でドキュメントを切り出したものとなりますが、クイック スタート: Azure CLI を使用して Azure VM の Windows Server ノードに AKS ハイブリッド クラスターをデプロイする も公開されており、作業の全体像としてはこちらのドキュメントを確認してみるのもよいかもしれません。(稀に、こちらのドキュメントにしか記載されていない内容があります…。)

 

実際に展開して気づいた点

実際にオンプレミスの環境に構築して Azure から展開できることを確認したのですが、その中で気づいた点をいくつか残しておきたいと思います。

 

Private Preview の API を利用できるようにする

Azure からの AKS ハイブリッド クラスター プロビジョニングのシステム要件 (プレビュー) に記載されていますが、「Microsoft.HybridConnectivity」のリソースプロバイダーについては、Private Preview の API バージョンにアクセスできるようにするため、サブスクリプション単位で 1 回「az feature register」を事前に実行しておく必要があります。

前述のとおり、Azure から AKS を展開する際には「Microsoft.HybridConnectivity」のリソースプロバイダーが使用されますが、標準の状態では「endpoints」に対して「2021-private-preview」「2021-07-08-privatepreview」の API バージョンの利用が許可されていません。

システム要件に記載されている「az feature register」を実行することで次のように、privatepreview の API のアクセスが許可されますので、こちらを忘れないように実行しておく必要があります。

image

これを実行していないと「az hybridaks proxy」という AKS とのプロキシを開始するコマンドでエラーが発生します。

Az CLI の hybridaks のバージョンが 0.2.2 の場合の固有の動作となり、0.2.4 という最新のバージョンを使用した場合には使用される API バージョンが変更されるため Private Preview の API が使用できなくても動作するのですが、システム要件に記載されているバージョンで動作させるためには、リソースプロバイダーで使用可能な API バージョンについての注意が必要なります。

 

システム要件の CLI のバージョンで作業を進める

こちらも、Azure からの AKS ハイブリッド クラスター プロビジョニングのシステム要件 (プレビュー) の内容となりますが、arcappliance / hybridaks の CLI の拡張機能についてはドキュメントに記載されているバージョンで進める必要があります。

  • arcappliance: 0.2.33
  • hybridaks: 0.2.2
    • hybridaks については、最新の 0.2.4 でも動作しそうでしたが

これらの拡張機能は現時点では上記に記載しているバージョンより新しいものが公開されており「az upgrade」のような CLI / 拡張機能を更新するコマンドを実行すると最新バージョンにアップグレードが行われます。

「hybridaks」については、0.2.4 に最新化されても基本的な動作は問題なさそうでしたが、「arcappliance」については 1.0.0 にアップグレードされると AKS の作成でエラーが出てしまいました。

GitHub 上にコードが見当たらなかったのですが、「$env:USERPROFILE\.Azure\cliextensions\arcappliance\arcappliance-xxxx」の「DESCRIPTION.rst」を見ると、1.0.0 になったタイミングで多数の変更が行われているようなので、Az CLI のバージョンには気を付けておいたほうが良いかと思います。

 

Entra ID を使用した Kubernetes の操作について

現在、どちらの方法で展開した AKS ハイブリッドクラスターについても Entra ID を使用した Kubernetes API への認証 (Entra Authentication) がサポートされています。

単純にドキュメントを検索すると Microsoft Entra ID を使用してクラスター リソースを操作する がヒットするケースが多いかと思います。

このドキュメントについては「az connectedk8s proxy」を使用したものとなるため、Azure Arc 対応 Kubernetes で接続された AKS (Microsoft.Kubernetes) 向けの内容となります。(RBAC の設定が足りていないため、Arc 対応 Kubernetes で利用しようとした場合も手順が一部不足していると思いますが….)

 

Azure から展開した AKS ハイブリッドクラスターについては 手順 15: ID と Microsoft Entra ID を使用して kubectl AKS ハイブリッド クラスターに接続する の内容となり、「az hybridaks proxy」を使用して Azure から展開された AKS (Microsoft.HybridContainerService) 向けの操作として実行する必要があります。

 

異なる展開方法の AKS の共存について

AKS-HCI と Azure Arc リソース ブリッジの使用に関する問題 には次のように記載されています。

AKS on Azure Stack HCI と Azure Arc Resource Bridge を同じ Azure Stack HCI または Windows Server クラスターで実行することはお勧めしません。 AKS on Azure Stack HCI がインストールされている場合は、Azure Arc リソース ブリッジを最初から実行 Uninstall-AksHci してデプロイを開始します。

Windows Admin Center / Azure Portal の両方方法を使用して AKS を展開可能な環境を作成することは、構成としてはできるのですが、これは非推奨となるようです。

AKS を展開する方法としてどちらを使用するかは事前に決定しておくのが良いのではないでしょうか。

 

SSH を利用した接続について

ハイブリッド展開されている AKS のノードに対しての SSH による接続については次のようなドキュメントが公開されています。

ワークロードクラスターについては、展開時に指定した SSH キーで接続ができますがリソースブリッジ用の Linux について「C:\ProgramData\kva\.ssh」に SSH キーが含まれています。

logkey のアクセス権を接続するユーザーの読み取りのみ付与した状態であれば SSH で接続することができますので、OS にログインしたい場合には上記のディレクトリのファイルを使用します。

Share

Written by Masayuki.Ozawa

10月 25th, 2023 at 4:50 pm

Posted in AKS,Azure Stack HCI

Tagged with ,

Leave a Reply