ΠΠ°ΡΠΊΠΎΡΠΎ ΡΡΠ°ΡΡΠΈΡΠ°Ρ ΠΌΠ΅ 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
ΠΠ°ΠΊΡΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅, ΠΈΠΌΠ° ΡΡΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈ:
- Π‘ΡΡΠ²ΡΡΡΡ Π·Π° ΠΈΠΌΠ΅Π½Π° Π΅ IP Π°Π΄ΡΠ΅ΡΡΡ Π½Π° ΡΡΠ»ΡΠ³Π°ΡΠ°
kube-dns
- ΠΠΎΡΠΎΡΠ΅Π½ΠΈ ΡΠ° 4 Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π·Π° Π»ΠΎΠΊΠ°Π»Π½ΠΎ ΡΡΡΡΠ΅Π½Π΅
search
- ΠΠΌΠ° Π²Π°ΡΠΈΠ°Π½Ρ
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 ΠΌΠΎΠ΄ΡΠ»Π° ΠΏΡΠ΅Π΄ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡ ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΈΠΌΠ΅Π½Π° Π½Π° Ρ ΠΎΡΡΠΎΠ²Π΅, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ Π² Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΡΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ.
Π‘Π»Π΅Π΄Π²Π°ΡΠ°ΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠ° ΠΏΠΎΠΊΠ°Π·Π²Π° Π»Π°ΡΠ΅Π½ΡΠ½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅Π΄ΠΈ ΠΈ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡ ΠΌΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΈΠΌΠ΅Π½Π° Π½Π° Ρ ΠΎΡΡΠΎΠ²Π΅, ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°Π½ΠΈ Π² Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΏΡΠ»Π½ΠΈ ΠΈΠΌΠ΅Π½Π° (Π²Π΅ΡΡΠΈΠΊΠ°Π»Π½Π°ΡΠ° ΡΠΈΠ½Ρ Π»ΠΈΠ½ΠΈΡ Π΅ Π²Π½Π΅Π΄ΡΡΠ²Π°Π½Π΅ΡΠΎ):
Π Π΅ΡΠ΅Π½ΠΈΠ΅ #1 - ΠΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΠΈΠΌΠ΅Π½Π°
ΠΠΊΠΎ ΠΈΠΌΠ°ΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π²ΡΠ½ΡΠ½ΠΈ ΠΈΠΌΠ΅Π½Π° (Ρ.Π΅. Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½ΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ), ΠΊΡΠΌ ΠΊΠΎΠΈΡΠΎ ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ Π²ΡΡΠ·ΠΊΠΈ, ΠΌΠΎΠΆΠ΅ Π±ΠΈ Π½Π°ΠΉ-ΠΏΡΠΎΡΡΠΎΡΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° Π³ΠΈ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΊΡΠΌ Π½Π°ΠΏΡΠ»Π½ΠΎ ΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΡΠΎ Π³ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅. Π½Π°ΠΊΡΠ°Ρ.
Π’ΠΎΠ²Π° Π½Π΅ Π΅ ΠΎΠΊΠΎΠ½ΡΠ°ΡΠ΅Π»Π½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, Π½ΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° Π±ΡΡΠ·ΠΎ, ΠΌΠ°ΠΊΠ°Ρ ΠΈ Π½Π΅ ΡΠΈΡΡΠΎ, ΠΏΠΎΠ΄ΠΎΠ±ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠΈΡΡΠ°ΡΠΈΡΡΠ°. ΠΡΠΈΠ»ΠΎΠΆΠΈΡ ΠΌΠ΅ ΡΠ°Π·ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΈΡ, Π·Π° Π΄Π° ΡΠ°Π·ΡΠ΅ΡΠΈΠΌ Π½Π°ΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΊΠΎΠΉΡΠΎ Π±ΡΡ Π° ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ Π½Π° Π΅ΠΊΡΠ°Π½Π½ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΏΠΎ-Π³ΠΎΡΠ΅.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ #2 - ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ ndots
Π² dnsConfig
Π Kubernetes 1.9 ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ° ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π² Π°Π»ΡΠ° ΡΠ΅ΠΆΠΈΠΌ (Π±Π΅ΡΠ° Π²Π΅ΡΡΠΈΡ v1.10), ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°ΡΠ΅ ΠΏΠΎ-Π΄ΠΎΠ±ΡΠ΅ DNS ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΠ΅Π· ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π½Π° pod Π² dnsConfig
. ΠΡΠ²Π΅Π½ Π²ΡΠΈΡΠΊΠΎ Π΄ΡΡΠ³ΠΎ, ΡΠΎΠΉ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΡΠ° ndots
Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° ΡΡΡΡΠ»ΠΊΠ°, Ρ.Π΅.
apiVersion: v1
kind: Pod
metadata:
namespace: default
name: dns-example
spec:
containers:
- name: test
image: nginx
dnsConfig:
options:
- name: ndots
value: "1"
ΠΈΠ·ΡΠΎΡΠ½ΠΈΡΠΈ
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° ΠΊΠ²Π°Π»ΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° DNS ΠΈΠΌΠ΅ Kubernetes: DNS Π·Π° ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΏΠΎΠ΄ΠΎΠ²Π΅
ΠΡΠΎΡΠ΅ΡΠ΅ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈ ΡΡΠ°ΡΠΈΠΈ Π² Π½Π°ΡΠΈΡ Π±Π»ΠΎΠ³:
Π Π°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ Π² Golang Π’ΡΠΈ Π»Π΅ΡΠ½ΠΈ ΡΡΠΈΠΊΠ° Π·Π° ΡΠ²ΠΈΠ²Π°Π½Π΅ Π½Π° Docker ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π² Kubernetes ΠΡΡ ΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° Π³ΠΎΠ»ΡΠΌ Π±ΡΠΎΠΉ ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΠΈ ΡΠ΅Π± ΠΏΡΠΎΠ΅ΠΊΡΠΈ Telegram Π±ΠΎΡ Π·Π° Redmine. ΠΠ°ΠΊ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈΠΌ ΠΆΠΈΠ²ΠΎΡΠ° ΠΏΠΎ-Π»Π΅ΡΠ΅Π½ Π·Π° ΡΠ΅Π±Π΅ ΡΠΈ ΠΈ Π΄ΡΡΠ³ΠΈΡΠ΅
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com