使用 PowerShell 模块验证 AKS 上的 gMSA
使用 PowerShell 模块在 AKS 上配置 gMSA 后,即可在 AKS 上的 Windows 节点上部署应用程序。 但是,如果要进一步验证配置是否已正确设置,可以使用下面的说明确认是否已正确配置部署。
验证
AKS PowerShell 模块上的 gMSA 提供一个命令,用于验证环境设置是否已正确配置。 验证 gMSA 凭据规范是否适用于以下命令:
Start-GMSACredentialSpecValidation `
-SpecName $params["gmsa-spec-name"] `
-AksWindowsNodePoolsNames $params["aks-win-node-pools-names"]
从 Windows 节点收集 gMSA 日志
以下命令可用于从 Windows 主机中提取日志:
# Extracts the following logs from each Windows host:
# - kubelet logs.
# - CCG (Container Credential Guard) logs (as a .evtx file).
Copy-WindowsHostsLogs -LogsDirectory $params["logs-directory"]
日志将从每个 Windows 主机复制到本地目录 $params["logs-directory"]
。 日志目录将具有一个以每个 Windows 代理主机命名的子目录。 仅在满足以下要求后,才能在事件查看器中正确检查 CCG(容器凭据防护).evtx 日志文件:
- 已安装容器 Windows 功能。 可以使用以下命令通过 PowerShell 安装它:
# Needs computer restart
Install-WindowsFeature -Name Containers
- CCGEvents.man 日志记录清单文件是通过以下方式注册的:
wevtutil im CCGEvents.man
注意
日志记录清单文件需要由Microsoft提供。
使用 gMSA 设置示例应用程序
除了简化 AKS 上的 gMSA 配置外,PowerShell 模块还提供一个示例应用程序供你用于测试目的。 若要安装示例应用程序,请运行以下命令:
Get-GMSASampleApplicationYAML `
-SpecName $params["gmsa-spec-name"] `
-AksWindowsNodePoolsNames $params["aks-win-node-pools-names"] | kubectl apply -f -
验证 AKS 代理池对 Azure Key Vault 的访问权限
AKS 节点池需要能够访问 Azure Key Vault 机密,才能使用可以在 Active Directory 上检索 gMSA 的帐户。 必须正确配置此访问权限,使节点能够与 Active Directory 域控制器通信。 无法访问机密意味着应用程序无法进行身份验证。 另一方面,你可能需要确保不向节点池提供任何不需要的访问权限。
使用 AKS PowerShell 模块上的 gMSA,可以验证哪些节点池有权访问 Azure Key Vault 上的哪些机密。
Get-AksAgentPoolsAkvAccess `
-AksResourceGroupName $params["aks-cluster-rg-name"] `
-AksClusterName $params["aks-cluster-name"] `
-VaultResourceGroupNames $params["aks-cluster-rg-name"]
共享反馈
有关 AKS PowerShell 模块上的 gMSA 的反馈、问题和建议,请访问 GitHub 上的 Windows 容器存储库。