你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

设置 kubectl 访问

本操作指南会说明如何根据需要获取其他过程所需的 kubeconfig 文件。 只读文件足以查看群集配置。 修改本地或 Microsoft Entra 身份验证,或是收集数据包捕获等操作需要核心命名空间文件。

只读访问

若要运行只读 kubectl 命令(例如描述 Pod 和查看日志),可以从 ASE 本地 UI 下载 kubeconfig 文件。 在“设备”下,选择“下载配置”

提示

若要访问本地 UI,请参阅教程:连接到包含 GPU 的 Azure Stack Edge Pro

Kubernetes 仪表板的屏幕截图,其中显示了下载配置的链接。

下载的文件名为 config.json。 该文件有权描述 pod 和查看日志,但无权使用 kubectl exec 访问 pod

核心命名空间访问

Azure 专用 5G 核心部署使用核心命名空间。 对于修改本地或 Microsoft Entra 身份验证,或是收集数据包捕获等操作,需要具有对核心命名空间完全访问权限的 kubeconfig 文件。 若要下载此文件,请设置一个 minishell 会话,并按照本部分中的指示运行必要的命令。

只需执行此过程一次即可。 如果之前已完成此过程,则可以使用之前保存的 kubeconfig 文件

输入 minishell 会话

在此过程中,你需要在 Azure Stack Edge 上运行 minishell 命令。 你必须使用网络上有权访问 ASE 管理端口的 Windows 计算机。 你应该能够查看 ASE 本地 UI 来验证你是否具有访问权限。

在计算机上启用 WinRM

以下过程使用 PowerShell,需要在计算机上启用 WinRM。 在管理员模式下从 PowerShell 窗口中运行以下命令:

winrm quickconfig

WinRM 可能已在计算机上启用,因为只需执行一次。 确保网络连接设置为“专用”或“域”(而不是“公共”),并接受任何更改。

提示

WinRM 会为电脑开放远程连接,此过程的其余部分是必需的。 如果不想保留允许的远程连接,请在完成其余过程以获取核心命名空间访问权限后,在管理员模式下从 PowerShell 窗口运行 Stop-Service WinRM -PassThruSet-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.
    

现在,你已设置一个 minishell 会话,可在下一步中获取 kubeconfig 文件

提示

如果存在网络更改,该会话可能会中断。 运行 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 文件,以便在将来需要时使用它
  • 如果需要 kubeconfig 文件作为完成其他过程的一部分(例如设置 Microsoft Entra 身份验证),请返回到该过程并继续