Share via


kubectl アクセスを設定する

この攻略ガイドでは、他の手順のために必要に応じて必要な kubeconfig ファイルを取得する方法について説明します。 クラスター構成を表示するには、読み取り専用ファイルで十分です。 コア名前空間ファイルは、ローカル認証や Microsoft Entra 認証の変更などの操作や、パケット キャプチャの収集に必要です。

読み取り専用アクセス

ポッドの記述やログの表示などの目的で、読み取り専用の kubectl コマンドを実行する場合、ASE ローカル UI から kubeconfig ファイルをダウンロードできます。 [デバイス] で、[構成をダウンロードする] を選択します。

ヒント

ローカル UI にアクセスするには、「チュートリアル: GPU 搭載の Azure Stack Edge Pro に接続する」を参照してください。

Screenshot of Kubernetes dashboard showing link to download config.

ダウンロードされるファイルは config.json と呼ばれます。 このファイルには、ポッドの記述とログの表示のためのアクセス許可がありますが、kubectl exec でポッドにアクセスすることはできません。

コア名前空間アクセス

Azure Private 5G Core デプロイでは、"コア" の名前空間が使用されます。 ローカル認証や Microsoft Entra 認証の変更や、パケット キャプチャの収集などの操作では、"コア" 名前空間へのフル アクセス権を持つ kubeconfig ファイルが必要です。 このファイルをダウンロードするには、minishell セッションを設定し、このセクションの指示にしたがって必要なコマンドを実行します。

この手順は 1 度だけ実行する必要があります。 この手順を以前実行したことがある場合、以前保存した kubeconfig ファイルを使用できます。

minishell セッションを開始する

この手順では、Azure Stack Edge で minishell コマンドを実行する必要があります。 ASE の管理ポートにアクセスできるネットワーク上にある Windows マシンを使用する必要があります。 アクセス権があることを確認するために、ASE ローカル UI を表示できる必要があります。

コンピューター上で WinRM を有効にする

次のプロセスでは PowerShell を使用して、コンピューター上で WinRM を有効にする必要があります。 管理者モードで PowerShell ウィンドウから次のコマンドを実行します。

winrm quickconfig

有効化は 1 回だけ行う必要があるため、WinRM はコンピューター上で既に有効になっている可能性があります。 ネットワーク接続が (パブリックではなく) プライベートまたはドメインに設定されていることを確認し、変更を受け入れます。

ヒント

WinRM では PC のリモート接続が開きます。これは手順の残りの部分で必要になります。 リモート接続を許可したままにしない場合は、手順の残りの部分を完了してコア名前空間アクセスを取得した後、PowerShell ウィンドウから管理者モードで Stop-Service WinRM -PassThru を実行してから Set-Service WinRM -StartupType Disabled -PassThru を実行します。

minishell セッションを開始する

  1. PowerShell ウィンドウから管理者モードで、ASE 管理 IP アドレス (引用符を含む。例: "10.10.5.90") を入力します。

    $ip = "<ASE_IP_address>"
    
    $sessopt = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
    
    $minishellSession = New-PSSession -ComputerName $ip -ConfigurationName "Minishell" -Credential ~\EdgeUser -UseSSL -SessionOption $sessopt
    
  2. プロンプトで Azure Stack Edge のパスワードを入力します。 次のメッセージは無視してください。

    WARNING: The Windows PowerShell interface of your device is intended to
    be used only for the initial network configuration. Please
    engage Microsoft Support if you need to access this interface
    to troubleshoot any potential issues you may be experiencing.
    Changes made through this interface without involving Microsoft
    Support could result in an unsupported configuration.
    

これで、次の手順で kubeconfig ファイルを取得するための minishell セッション設定の準備が整いました。

ヒント

ネットワークの変更がある場合、セッションが中断する可能性があります。 Get-PSSession を実行して、セッションの状態を表示します。 まだ接続されている場合、引き続き minishell コマンドを実行できるはずです。 中断または切断されている場合、Remove-PSSession を実行してセッションをローカルで削除してから、新しいセッションを開始します。

kubectl アクセスを設定する

  • この手順を初めて実行する場合は、次の手順を実行する必要があります。 次の手順では、名前空間を作成し、kubeconfig ファイルをダウンロードし、それを使用して名前空間へのアクセスを許可します。

    Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesNamespace -Namespace "core"}
    Invoke-Command -Session $minishellSession -ScriptBlock {New-HcsKubernetesUser -UserName "core"} | Out-File -FilePath .\kubeconfig-core.yaml
    Invoke-Command -Session $minishellSession -ScriptBlock {Grant-HcsKubernetesNamespaceAccess -Namespace "core" -UserName "core"}
    

    The Kubernetes namespace 'core' already existsのようなエラーが表示された場合は、これらの手順を以前実行済みであるということです。 この場合は、次の箇条書きに直接スキップして、以前生成されたファイルを取得します。

  • この手順を以前実行したことがある場合は、次のコマンドを実行して、以前に生成された kubeconfig ファイルをすぐに取得できます。

    Invoke-Command -Session $miniShellSession -ScriptBlock { Get-HcsKubernetesUserConfig -UserName "core" }
    

詳細については、「Kubernetes RBAC を使用してクラスター アクセスを構成する」を参照してください。

次のステップ

  • kubeconfig ファイルを保存して、今後必要な場合に使用できるようにします。
  • 別の手順 (Microsoft Entra 認証の設定など) の一部として kubeconfig ファイルが必要な場合は、その手順に戻って続行します。