Разрешение имени из windows pods не работает на 1.18.1 - PullRequest
0 голосов
/ 10 апреля 2020

Имеют следующую настройку ниже. Фланель находится в режиме VXLAN. Разрешение имен не работает с Windows узлов. Проверено, что следующие работы:

  1. Windows POD -> разрешение внешнего DNS-сервера
  2. Windows POD -> HTTPS-соединение с сервисом API Kubernetes IP
  3. Linux POD на главном сервере -> разрешение имен для службы DNS

Не работает следующее:

  1. Windows POD -> запрос DNS к службе DNS
  2. Windows POD -> DNS-запрос к IP-адресу DNS pod
gregory@master1:~$ k get nodes
NAME         STATUS   ROLES    AGE    VERSION
master1      Ready    master   22h    v1.18.1
winworker1   Ready    <none>   15h    v1.18.1
winworker2   Ready    <none>   169m   v1.18.1

DNS repro

PS C:\> Test-NetConnection 10.96.0.10 -port 53
WARNING: TCP connect to (10.96.0.10 : 53) failed
ComputerName           : 10.96.0.10
RemoteAddress          : 10.96.0.10
RemotePort             : 53
InterfaceAlias         : vEthernet (62a92abe4497c380bae9dfdee71ae5069cd0bd1b66208f58016345b7a6d9fabe_flannel.4096)
SourceAddress          : 10.244.1.4
PingSucceeded          : False
PingReplyDetails (RTT) : 0 ms
TcpTestSucceeded       : False
PS C:\> Test-NetConnection 10.96.0.1 -port 443
ComputerName     : 10.96.0.1
RemoteAddress    : 10.96.0.1
RemotePort       : 443
InterfaceAlias   : vEthernet (62a92abe4497c380bae9dfdee71ae5069cd0bd1b66208f58016345b7a6d9fabe_flannel.4096)
SourceAddress    : 10.244.1.4
TcpTestSucceeded : True
PS C:\> Resolve-dnsname www.google.com -server 8.8.8.8
Name                                           Type   TTL   Section    IPAddress
----                                           ----   ---   -------    ---------
www.google.com                                 AAAA   299   Answer     2607:f8b0:4004:811::2004
www.google.com                                 A      299   Answer     172.217.15.100
PS C:\> Resolve-dnsname www.google.com -server 10.96.0.10
Resolve-dnsname : www.google.com : This operation returned because the timeout period expired

1 Ответ

1 голос
/ 11 апреля 2020

FYI. В Kubernetes 1.18.1 есть ошибка для windows узлов, которые не могут создать сеть с именем Host при перезагрузке. (https://github.com/kubernetes-sigs/sig-windows-tools/issues/52). В результате связь нарушается во фланели, даже если вы воссоздаете сеть вручную с помощью docker network create -d nat host. Чтобы разрешение DNS снова заработало, вам также нужно перезапустить службу Rancher wins get-service rancher-wins | Restart-Service Полное решение, пока это не исправлено, - это изменить файл StartKubelet.ps1 и добавить в него следующее в строке 3

$netId = docker network ls -f name=host --format "{{ .ID }}"
if ($netId.Length -lt 1) {
    docker network create -d nat host
}
...