You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -381,32 +381,110 @@ As Pod specs with GMSA fields populated (as described above) are applied in a cl
381
381
1. 容器运行时为每个 Windows 容器配置所指定的 GMSA 凭据规约,这样容器就可以以
382
382
活动目录中该 GMSA 所代表的身份来执行操作,使用该身份来访问域中的服务。
383
383
384
+
<!--
385
+
## Containerd
386
+
387
+
On Windows Server 2019, in order to use GMSA with containerd, you must be running OS Build 17763.1817 (or later) which can be installed using the patch [KB5000822](https://support.microsoft.com/en-us/topic/march-9-2021-kb5000822-os-build-17763-1817-2eb6197f-e3b1-4f42-ab51-84345e063564).
388
+
389
+
There is also a known issue with containerd that occurs when trying to connect to SMB shares from Pods. Once you have configured GMSA, the pod will be unable to connect to the share using the hostname or FQDN, but connecting to the share using an IP address works as expected.
390
+
-->
391
+
## Containerd
392
+
在 Windows Server 2019 上对 containerd 使用 GMSA,需要使用 Build 17763.1817(或更新的版本),
To correct the behaviour you must run the following on the node `reg add "HKLM\SYSTEM\CurrentControlSet\Services\hns\State" /v EnableCompartmentNamespace /t REG_DWORD /d 1` to add the required registry key. This node change will only take effect in newly created pods, meaning you must now recreate any running pods which require access to SMB shares.
此更改只会在新创建的 Pod 中生效,这意味着你必须重新创建任何需要访问 SMB 共享的正在运行的 Pod。
384
463
<!--
385
464
## Troubleshooting
386
465
387
466
If you are having difficulties getting GMSA to work in your environment, there are a few troubleshooting steps you can take.
388
467
-->
389
468
## 故障排查
390
469
391
-
如果在你的环境中配置 GMSA 时遇到了困难,你可以采取若干步骤来排查可能
392
-
的故障。
470
+
如果在你的环境中配置 GMSA 时遇到了困难,你可以采取若干步骤来排查可能的故障。
393
471
394
472
<!--
395
-
First, make sure the credspec has been passed to the Pod. To do this you will need to `exec` into one of your Pods and check the output of the `nltest.exe /parentdomain` command. In the example below the Pod did not get the credspec correctly:
473
+
First, make sure the credspec has been passed to the Pod. To do this you will need to `exec` into one of your Pods and check the output of the `nltest.exe /parentdomain` command.
Copyright (C) Microsoft Corporation. All rights reserved.
406
-
407
-
PS C:\> nltest.exe /parentdomain
482
+
<!--
483
+
nltest.exe /parentdomain` results in the following error:
484
+
-->
485
+
`nltest.exe /parentdomain` 导致以下错误:
486
+
```
408
487
Getting parent domain failed: Status = 1722 0x6ba RPC_S_SERVER_UNAVAILABLE
409
-
PS C:\>
410
488
```
411
489
412
490
<!--
@@ -434,32 +512,37 @@ If the DNS and communication test passes, next you will need to check if the Pod
434
512
安全通信通道。要执行这一检查,你需要再次通过 `exec` 进入到你的 Pod 中
435
513
并执行 `nltest.exe /query` 命令。
436
514
437
-
```shell
438
-
PS C:\> nltest.exe /query
439
-
I_NetLogonControl failed: Status = 1722 0x6ba RPC_S_SERVER_UNAVAILABLE
515
+
```PowerShell
516
+
nltest.exe /query
440
517
```
441
518
442
519
<!--
443
-
This tells us that for some reason, the Pod was unable to logon to the domain using the account specified in the credspec. You can try to repair the secure channel by running the `nltest.exe /sc_reset:domain.example` command.
520
+
This tells us that for some reason, the Pod was unable to logon to the domain using the account specified in the credspec. You can try to repair the secure channel by running the following:
If the command is successful you will see and output similar to this:
531
+
-->
532
+
如果命令成功,你将看到类似以下内容的输出:
533
+
534
+
```
450
535
Flags: 30 HAS_IP HAS_TIMESERV
451
536
Trusted DC Name \\dc10.domain.example
452
537
Trusted DC Connection Status Status = 0 0x0 NERR_Success
453
538
The command completed successfully
454
-
PS C:\>
455
539
```
456
540
457
541
<!--
458
-
If the above command corrects the error, you can automate the step by adding the following lifecycle hook to your Pod spec. If it did not correct the error, you will need to examine your credspec again and confirm that it is correct and complete.
542
+
If the above corrects the error, you can automate the step by adding the following lifecycle hook to your Pod spec. If it did not correct the error, you will need to examine your credspec again and confirm that it is correct and complete.
459
543
-->
460
-
如果上述命令修复了错误,你就可以通过向你的 Pod 规约添加生命周期回调来将此操作
461
-
自动化。如果上述命令未能奏效,你就需要再次检查凭据规约,以确保其数据时正确的
462
-
而且是完整的。
544
+
如果以上命令修复了错误,你可以通过将以下生命周期回调添加到你的 Pod 规约中来自动执行该步骤。
545
+
如果这些操作没有修复错误,你将需要再次检查你的 credspec 并确认它是正确和完整的。
463
546
464
547
```yaml
465
548
image: registry.domain.example/iis-auth:1809v1
@@ -477,18 +560,3 @@ If you add the `lifecycle` section show above to your Pod spec, the Pod will exe
477
560
列举的命令来重启 `netlogon` 服务,直到 `nltest.exe /query`
478
561
命令返回时没有错误信息。
479
562
480
-
<!--
481
-
## GMSA limitations
482
-
When using the [ContainerD runtime for Windows](/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#cri-containerd) accessing restricted network shares via the GMSA domain identity fails. The container will receive the identity of and calls from `nltest.exe /query` will work. It is recommended to use the [Docker EE runtime](/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#docker-ee) if access to network shares is required. The Windows Server team is working on resolving the issue in the Windows Kernel and will release a patch to resolve this issue in the future. Look for updates on the [Microsoft Windows Containers issue tracker](https://github.com/microsoft/Windows-Containers/issues/44).
0 commit comments