通过 PowerShell 模块验证 AKS 上的 gMSA
使用 PowerShell 配置 AKS 上的 gMSA 后,就可以在 AKS 上的 Windows 节点上部署应用程序。 但是,如果要进一步验证是否正确设置了配置,则可以按照以下说明来确认是否已正确配置部署。
验证
AKS 上的 gMSA PowerShell 模块提供一个命令来验证是否正确配置环境设置。 使用以下命令验证 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 (Container Credential Guard) .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 上的 gMSA PowerShell 模块,可以验证哪些节点池有权访问 Azure Key Vault 上的哪些机密。
Get-AksAgentPoolsAkvAccess `
-AksResourceGroupName $params["aks-cluster-rg-name"] `
-AksClusterName $params["aks-cluster-name"] `
-VaultResourceGroupNames $params["aks-cluster-rg-name"]
模块反馈
有关 AKS 上的 gMSA PowerShell 模块的反馈、问题和建议,请访问 GitHub 上的 Windows 容器存储库。