ααααΈαααα ααΎαααΆαα αΆααααααΎα Kubernetes 1.9 αα ααΎ AWS αααααααΎ Kops α ααΆαααΈαααα·ααα·α ααααααααααααα»αααααΎαααΆαα ααΆα αααααααΈαααΆααααΌααα ααΆαααααα»α Kubernetes αααααααα»αααααααΎα αααα»αααΆαα αΆααααααΎαααααααααΆααααα α»ααααα»αααΆααααααααΆαααααα DNS αα·αααααααΆαααααΆαα αΌαααααααααα·ααΈααααααΎαα
ααΆαα
αααΎαααΆααα’αααΈααΏαααααα
ααΎ GitHub kube-dns
ΠΈ dnsmasq
. α’αααΈααααα½αα±ααα
αΆααα’αΆαααααα αα·αααααΈαααα»ααααααΆαααααα»αααΊααΆα ααα»αααααααΆααααΆαααΎαα‘αΎααααΆαααααΆααααα
ααΆα
αααααΎ DNS α αααααΆααααααααα»αααΊα’αααΈααΏαααα αα·αα’αααΈαααααααΌαααααΎα’αααΈααΆα
αααααααααΆα DNS αα
ααΆααααα»ααα»α - ααΌα
αα
αααα»αααααααααααΈαα»α
ααΆαα½α - ααααΌαααΆαααααααααα―αααΆαααααααα
ααΆαααααααα /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 ααααΌαααΆααααααΎαα‘αΎα (α¬ααααΉαααααΌαααΆαααα αααααΆααααΆααααααααααααΆααααααααΆα) ααΆααΉαα αααααα½α DNS α ααα½α 5 αα»ααααααααααααααααΌαααΆααααααααΆααααΆαααααΉαααααΌα αααααααΆααΉαααααΌαααααααΆααααΆαα»ααα·αα 4 αααααααααααααα»ααααα»α α αΎααα α α»ααααα ααααΉαα ααααααΎααααααααααΆααααααααΆα αααΆαα
ααΆααΆαααΆαααααααααα αΆαααΈα ααΆα αααααα»ααα ααΎαααΌαα»α kube-dns α ααα½α 3 ααααααΎααα»α αα·ααααααΆααααΈααΎαααααΌαααααααααΆαααΈααα½αα ααα½ααααααΆαααααααα ααΆαααααααααα αααα»ααααααα·ααΈααααααΎααα ααΆαααααα·ααΈαααααΆααααααααΆαααααααα
ααααΆααααΆαααΆαααααααααα αΆαααΈααΆαααΊααααΆααααααααα·ααΈαα»α αα·ααααααααααααααΎαααααΌαααααααααΆαααΈαααΆα αααΎααααααΆαααααααα ααΆαααααααααα αααα»ααααααα·ααΈααααααΎααα ααΆαααααααα (αααααΆαααααααααααααααΊααΆααΆαααΆαααααααΆα)α
αααααααααΆαααΈ 1 - ααααΎααααααααααΆααααααααααααααα·αααααααααΆαα
ααααα·αααΎα’αααααΆααααααααΆααααα αα·αα·αααααα·α αα½α (α§. ααΆαααααααααα»αααΆαααααααα ααΆαααααααααααααα·ααΈ) αααα’ααααααααΎαααΆααααααΆαααα½αα ααα½ααα αααα ααααΆαααααααααΆαααααΆαααααααα»αααΊααααΌαααααΌααα½αααΆαα ααααααααααΆααααααααΆααααααααααααααΆαααααααααααα½αααΆα αα βα α»αβαααα ααα
ααααα·ααααααΆαααααααααΆαα α»αααααααα ααα»ααααααΆα’αΆα αα½αααΆααααΆαααΆαααα αα αααααΈαα·αααα’αΆαααααα ααααΎα’ααααααΆαααΆααααααΎαα‘αΎαα ααΎαααΆαα’αα»αααααααααααααΎααααΈαααααααΆααααα αΆααααααΎα αααααααααααααΌαααΆααααα αΆααα αααα»αααΌαααα’ααααααααΆαααΎα
αααααααααΆαααΈ 2 - ααΆαααααΌαααΆααααα ndots
Π² dnsConfig
αα
αααα»α Kubernetes 1.9 αα»αααΆαααΆααααα αΆααααα½ααα
αααα»αααααα’αΆααα αααΆ (ααααααααΆ v1.10) αααα’αα»ααααΆαα±ααα’αααααααααααααααΆαααΆαααααα DNS ααΆαααααααααΎαα‘αΎαααΆαααααααααααααααααα·αααα
αααα»α dnsConfig
. αααα»αα
ααααααααααααααααααΆα’αα»ααααΆαα±ααα’αααααααααα
ααΆααααααααααααα ndots
αααααΆαα pod ααΆααααΆαααα½α, i.e.
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 bot αααααΆαα Redmine α αα·ααΈααααΎα±ααααΈαα·αααΆαααααααααΆαααααα½αα’ααα αα·αα’αααααα
ααααα: www.habr.com