/etc/resolv.conf для Kubernetes pods, опция ndots:5, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния

/etc/resolv.conf для Kubernetes pods, опция ndots:5, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния

НС Ρ‚Π°ΠΊ Π΄Π°Π²Π½ΠΎ ΠΌΡ‹ запустили Kubernetes 1.9 Π½Π° AWS с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Kops. Π’Ρ‡Π΅Ρ€Π°, Π²ΠΎ врСмя ΠΏΠ»Π°Π²Π½ΠΎΠ³ΠΎ выкатывания Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π° самый большой ΠΈΠ· Π½Π°ΡˆΠΈΡ… Kubernetes кластСров, я Π½Π°Ρ‡Π°Π» Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ошибки Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ DNS, Π·Π°Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ нашим ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ.

На GitHub довольно Π΄ΠΎΠ»Π³ΠΎ ΠΎΠ± этом Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ, поэтому я Ρ‚ΠΎΠΆΠ΅ Ρ€Π΅ΡˆΠΈΠ» Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ. Π’ ΠΈΡ‚ΠΎΠ³Π΅ я понял, Ρ‡Ρ‚ΠΎ Π² нашСм случаС это Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½Π½ΠΎΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ Π½Π° kube-dns ΠΈ dnsmasq. Π‘Π°ΠΌΡ‹ΠΌ интСрСсным ΠΈ Π½ΠΎΠ²Ρ‹ΠΌ для мСня оказалась сама ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ увСличСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° DNS-запросов. Об этом ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΠΎΠΉ пост.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ DNS Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° β€” ΠΊΠ°ΠΊ ΠΈ Π² любой систСмС Linux β€” опрСдСляСтся ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ /etc/resolv.conf. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Kubernetes dnsPolicy это ClusterFirst, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ любой DNS-запрос Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ Π½Π° dnsmasq, Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹ΠΉ Π² ΠΏΠΎΠ΄Π΅ kube-dns Π²Π½ΡƒΡ‚Ρ€ΠΈ кластСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ запрос Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ kube-dns, Ссли имя заканчиваСтся суффиксом кластСра, ΠΈΠ»ΠΈ, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС, ΠΊ DNS сСрвСру Π±ΠΎΠ»Π΅Π΅ высокого уровня.

Π€Π°ΠΉΠ» /etc/resolv.conf Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

nameserver 100.64.0.10
search namespace.svc.cluster.local svc.cluster.local cluster.local 
eu-west-1.compute.internal
options ndots:5

Как ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‚ΡƒΡ‚ Ρ‚Ρ€ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

  1. Π‘Π΅Ρ€Π²Π΅Ρ€ ΠΈΠΌΠ΅Π½ β€” это IP сСрвиса kube-dns
  2. Π£ΠΊΠ°Π·Π°Π½ΠΎ 4 Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… поисковых Π΄ΠΎΠΌΠ΅Π½Π° search
  3. Π•ΡΡ‚ΡŒ опция ndots:5

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ этой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ являСтся Ρ‚ΠΎ, ΠΊΠ°ΠΊ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ поисковыС Π΄ΠΎΠΌΠ΅Π½Ρ‹ ΠΈ настройки ndots:5 ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ вмСстС. Π§Ρ‚ΠΎΠ±Ρ‹ это ΠΏΠΎΠ½ΡΡ‚ΡŒ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ DNS для Π½Π΅ΠΏΠΎΠ»Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π½.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ΅ имя?

ΠŸΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ имя β€” это имя, для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ поиск, ΠΈ имя Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒΡΡ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½. По соглашСнию, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС DNS считаСт имя ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ, Ссли ΠΎΠ½ΠΎ заканчиваСтся Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ (.), И Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС. Π’ΠΎ Π΅ΡΡ‚ΡŒ google.com. ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ, Π° google.com β€” Π½Π΅Ρ‚.

Как обрабатываСтся Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ имя?

Когда ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡƒ хосту, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΈΠΌΠ΅Π½ΠΈ, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ DNS ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ выполняСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ систСмного Π²Ρ‹Π·ΠΎΠ²Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, getaddrinfo(). А Π²ΠΎΡ‚ Ссли имя Π½Π΅ΠΏΠΎΠ»Π½ΠΎΠ΅ (Π½Π΅ заканчиваСтся Π½Π° .), интСрСсно, попытаСтся Π»ΠΈ систСмный Π²Ρ‹Π·ΠΎΠ² сначала Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ имя ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅, ΠΈΠ»ΠΈ сначала ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Π΅ поисковыС Π΄ΠΎΠΌΠ΅Π½Ρ‹? Π­Ρ‚ΠΎ зависит ΠΎΡ‚ ΠΎΠΏΡ†ΠΈΠΈ ndots.

Из ΠΌΠ°Π½ΡƒΠ°Π»Π° ΠΏΠΎ resolv.conf:

ndots:n

устанавливаСт ΠΏΠΎΡ€ΠΎΠ³ для количСства Ρ‚ΠΎΡ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² ΠΈΠΌΠ΅Π½ΠΈ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ сдСлан Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ запрос. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для n Ρ€Π°Π²Π½ΠΎ 1, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли Π² ΠΈΠΌΠ΅Π½ΠΈ Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ, имя Π±ΡƒΠ΄Π΅Ρ‚ сначала ΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π½ΠΎ ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ имя, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΊ Π½Π΅ΠΌΡƒ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ элСмСнты списка поиска.

Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ссли для ndots Π·Π°Π΄Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 5, Π° имя содСрТит ΠΌΠ΅Π½Π΅Π΅ 5 Ρ‚ΠΎΡ‡Π΅ΠΊ, систСмный Π²Ρ‹Π·ΠΎΠ² попытаСтся Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, сначала пройдя ΠΏΠΎ всСм Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ поисковым Π΄ΠΎΠΌΠ΅Π½Π°ΠΌ, ΠΈ, Π² случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ, Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ имя.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΆΠ΅ ndots:5 ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ прилоТСния?

Как Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ссли вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ внСшнСго Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ установлСнного TCP-соСдинСния (ΠΈΠ»ΠΈ, Ρ‚ΠΎΡ‡Π½Π΅Π΅, для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ) ΠΎΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ 5 DNS-запросов, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ имя Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ сначала ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· 4 Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… поисковых Π΄ΠΎΠΌΠ΅Π½Π°, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ выдаст запрос Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ.

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ суммарный Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° Π½Π°ΡˆΠΈΡ… 3 модулях kube-dns Π΄ΠΎ ΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ нСсколько ΠΈΠΌΠ΅Π½ хостов, настроСнных Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅.

/etc/resolv.conf для Kubernetes pods, опция ndots:5, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния

На ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° прилоТСния Π΄ΠΎ ΠΈ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ нСсколько ΠΈΠΌΠ΅Π½ хостов, настроСнных Π² нашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Π½Π° ΠΏΠΎΠ»Π½Ρ‹Π΅ (Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ синяя линия это Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠ΅):

/etc/resolv.conf для Kubernetes pods, опция ndots:5, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ прилоТСния

РСшСниС #1 β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π°

Если Ρƒ вас ΠΌΠ°Π»ΠΎ статичСских Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈΠΌΠ΅Π½ (Ρ‚. Π΅. ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ прилоТСния), ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π²Ρ‹ создаСтС большоС количСство соСдинСний, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, самоС простоС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΈΡ… Π½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅, просто Π΄ΠΎΠ±Π°Π²ΠΈΠ². Π² ΠΊΠΎΠ½Ρ†Π΅.

Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠΊΠΎΠ½Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ быстро, ΠΏΡƒΡΡ‚ΡŒ ΠΈ Π½Π΅ чисто, ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‡ ΠΌΡ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ»ΠΈ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ нашСй ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‡Π΅Π³ΠΎ Π±Ρ‹Π»ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ‹ Π½Π° ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π°Ρ… Π²Ρ‹ΡˆΠ΅.

РСшСниС #2 β€” кастомизация ndots Π² dnsConfig

Π’ Kubernetes 1.9 Π² Π°Π»ΡŒΡ„Π° Ρ€Π΅ΠΆΠΈΠΌΠ΅ появился Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» (Π±Π΅Ρ‚Π°-вСрсия v1.10), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт Π»ΡƒΡ‡ΡˆΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ DNS Ρ‡Π΅Ρ€Π΅Π· свойство ΠΏΠΎΠ΄Π° Π² dnsConfig. Π‘Ρ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΡ‡Π΅Π³ΠΎ, ΠΎΠ½ позволяСт Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ndots для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π°, Ρ‚.Π΅.

apiVersion: v1
kind: Pod
metadata:
  namespace: default
  name: dns-example
spec:
  containers:
    - name: test
      image: nginx
  dnsConfig:
    options:
      - name: ndots
        value: "1"

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΈ

Π’Π°ΠΊΠΆΠ΅ Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ Π² нашСм Π±Π»ΠΎΠ³Π΅:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ