Azure Kubernetes 服务上的 gMSA
可在 Azure Kubernetes 服务 (AKS) 上使用组托管服务帐户 (gMSA),以支持需要 Active Directory 进行身份验证的应用程序。 配置 AKS 上的 gMSA 时,需要正确设置以下服务和设置:AKS、Azure Key Vault、Active Directory、凭据规范等。为了简化此过程,可使用下面的 PowerShell 模块。 本模块是为简化 AKS 上的 gMSA 的配置过程(通过消除设置不同服务的复杂性)而定制的。
环境要求
为了部署 AKS 上的 gMSA,将需要以下内容:
- 一个启动并运行 Windows 节点的 AKS 群集。 如果还未准备好 AKS 群集,请查看 Azure Kubernetes 服务文档。
- 群集必须获得 AKS 上的 gMSA 的授权。 有关详细信息,请参阅为 Azure Kubernetes 服务 (AKS) 群集上的 Windows Server 节点启用组托管服务帐户 (GMSA)。
- 已为 gMSA 正确配置 Active Directory 环境。 下面将提供有关如何配置域的详细信息。
- AKS 上的 Windows 节点必须能够连接到 Active Directory 域控制器。
- 具有对设置 gMSA 和标准域用户的委托授权的 Active Directory 域凭据。 可将该任务委托给获得授权的人员(如果需要)。
安装 AKS 上的 gMSA PowerShell 模块
首先,从 PowerShell 库下载 PowerShell 模块:
Install-Module -Name AksGMSA -Repository PSGallery -Force
注意
AKS 上的 gMSA PowerShell 模块会不断更新。 如果你之前运行过本教程中的步骤,并且现在正在检查新配置,请确保将该模块更新到最新版本。 有关该模块的详细信息,请参阅 PowerShell 库页面。
模块要求
AKS 上的 gMSA PowerShell 模块依赖不同的模块和工具。 为了安装这些要求的模块和工具,请在提升的会话中运行以下命令:
Install-ToolingRequirements
使用 Azure 凭据登录
需使用 AKS 上的 gMSA PowerShell 模块的凭据登录到 Azure,以正确配置 AKS 群集。 若要通过 PowerShell 登录 Azure,请运行以下命令:
Connect-AzAccount -DeviceCode -Subscription "<SUBSCRIPTION_ID>"
还需要使用 Azure CLI 登录,因为 PowerShell 模块还会在后台使用它:
az login --use-device-code
az account set --subscription "<SUBSCRIPTION_ID>"
设置 AKS 上的 gMSA 模块所需的输入
在配置 AKS 上的 gMSA 的过程中,需要很多输入,例如:AKS 群集名称、Azure 资源组名称、部署必要资产的区域、Active Directory 域名,等等。 为了简化以下过程,我们创建了一个输入命令,它可收集所有必要的值并将其存储在一个变量中,该变量随后将用于下面的命令。
首先,运行以下命令:
$params = Get-AksGMSAParameters
运行命令后,提供必要的输入,直到命令结束。 从现在起,你可以简单地复制和粘贴命令,如本页中所示。
连接到 AKS 群集
使用 AKS 上的 gMSA PowerShell 模块时,将连接到要配置的 AKS 群集。 AKS 上的 gMSA PowerShell 模块依赖 kubectl 连接。 若要连接群集,请运行以下命令:(注意,由于已提供了上面的输入,因此可以简单地将下面的命令复制并粘贴到 PowerShell 会话中)。
Import-AzAksCredential -Force `
-ResourceGroupName $params["aks-cluster-rg-name"] `
-Name $params["aks-cluster-name"]