๋ฉ๋ชจ ๋ฒ์ญ: ์ด๊ฒ์ ํ์ฌ ์์ง๋์ด๋ง ๋ธ๋ก๊ทธ์ ๊ณต๊ฐ ์ฌํ ๋ถ์์ ๋ฒ์ญํ ๊ฒ์
๋๋ค.
์ด ๋ฌธ์๋ ์ฌํ ๋ถ์์ ๋ํด ์ข ๋ ์์ธํ ์์๋ณด๊ณ ์ถ๊ฑฐ๋ ํฅํ ๋ฐ์ํ ์ ์๋ ์ผ๋ถ DNS ๋ฌธ์ ๋ฅผ ์๋ฐฉํ๋ ค๋ ์ฌ๋๋ค์๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.
์ด๊ฒ์ DNS๊ฐ ์๋๋๋ค
DNS๊ฐ ๋ ์ ์์ต๋๋ค
DNS์๊ตฐ์
Preply์ ์ฌํ ๋ถ์ ๋ฐ ํ๋ก์ธ์ค์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช
์ฌํ ์กฐ์ฌ๋ ์ค์๋์ด๋ ์์ฐ ๊ณผ์ ์ ์ผ๋ถ ์ด๋ฒคํธ๋ฅผ ์ค๋ช ํฉ๋๋ค. ์ฌํ ๋ถ์์๋ ์ด๋ฒคํธ ํ์๋ผ์ธ, ์ฌ์ฉ์ ์ํฅ, ๊ทผ๋ณธ ์์ธ, ์ทจํ ์กฐ์น ๋ฐ ํ์ตํ ๊ตํ์ด ํฌํจ๋ฉ๋๋ค.
๋งค์ฃผ ํผ์์์ ๋ฏธํ
์์๋ ๊ธฐ์ ํ ๊ฐ ๋ค์ํ ์ ๋ณด๋ฅผ ๊ณต์ ํฉ๋๋ค. ์ด๋ฌํ ํ์์์ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ ์ค ํ๋๋ ์ฌํ ๋ถ์์ผ๋ก, ์ฌ๋ผ์ด๋๊ฐ ํฌํจ๋ ํ๋ ์ ํ
์ด์
๊ณผ ์ฌ๊ฑด์ ๋ํ ๋ณด๋ค ์ฌ์ธต์ ์ธ ๋ถ์์ด ๋๋ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๊ฐ์ฅ ๋ง์ต๋๋ค. ์ฌํ์ ๋ฐ์๋ฅผ ์น์ง๋ ์๋๋ผ๋ "๋ฌด์ฃ" ๋ฌธํ๋ฅผ ๋ฐ์ ์ํค๋ ค๊ณ ๋
ธ๋ ฅํฉ๋๋ค(
์ฌ๊ฑด์ ์ฐ๋ฃจ๋ ๊ฐ์ธ์ ์ฒ๋ฒ์ด๋ ๋ณด๋ณต์ ๋๋ ค์ํ์ง ์๊ณ ์์ธํ ๋งํ ์ ์๋ค๊ณ ๋๊ปด์ผ ํฉ๋๋ค. ๋น๋ํ์ง ๋ง์ธ์! ์ฌํ ๋ถ์์ ์์ฑํ๋ ๊ฒ์ ์ฒ๋ฒ์ด ์๋๋ผ ํ์ฌ ์ ์ฒด๋ฅผ ์ํ ํ์ต ๊ธฐํ์ ๋๋ค.
Kubernetes์ DNS ๋ฌธ์ . ๊ฒ์
ะะฐัะฐ : 28.02.2020
์ ์ : Amet U., ์๋๋ ์ด S., ์ด๊ณ ๋ฅด K., ์๋ ์ธ์ด P.
์ ๋ชฉ : ์์ฑ๋
๊ฐ๋จํ : Kubernetes ํด๋ฌ์คํฐ์ ์ผ๋ถ ์๋น์ค์ ๋ํ ๋ถ๋ถ์ DNS ์ฌ์ฉ ๋ถ๊ฐ(26๋ถ)
์ํฅ: ์๋น์ค A, B, C์ ๋ํด 15000๊ฐ์ ์ด๋ฒคํธ ์์ค
๊ทผ๋ณธ ์์ธ: Kube-proxy๊ฐ conntrack ํ ์ด๋ธ์์ ์ด์ ํญ๋ชฉ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ๊ฑฐํ์ง ๋ชปํ์ฌ ์ผ๋ถ ์๋น์ค๊ฐ ์ฌ์ ํ ์กด์ฌํ์ง ์๋ Pod์ ์ฐ๊ฒฐ์ ์๋ํ๊ณ ์์์ต๋๋ค.
E0228 20:13:53.795782 1 proxier.go:610] Failed to delete kube-system/kube-dns:dns endpoint connections, error: error deleting conntrack entries for UDP peer {100.64.0.10, 100.110.33.231}, error: conntrack command returned: ...
๋ฐฉ์์ : Kubernetes ํด๋ฌ์คํฐ ๋ด๋ถ์ ๋ฎ์ ๋ก๋๋ก ์ธํด CoreDNS-autoscaler๋ ๋ฐฐํฌ์ Pod ์๋ฅผ XNUMX๊ฐ์์ XNUMX๊ฐ๋ก ์ค์์ต๋๋ค.
์๋ฃจ์ : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ๋ฐฐํฌ์์๋ ์ ๋ ธ๋ ์์ฑ์ด ์์๋์๊ณ , CoreDNS-autoscaler๋ ํด๋ฌ์คํฐ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ๋ ๋ง์ ํฌ๋๋ฅผ ์ถ๊ฐํ์ผ๋ฉฐ ์ด๋ก ์ธํด conntrack ํ ์ด๋ธ์ด ๋ค์ ์์ฑ๋์์ต๋๋ค.
๋ฐ๊ฐ: Prometheus ๋ชจ๋ํฐ๋ง์ ์๋น์ค A, B, C์ ๋ํด ๋ค์์ 5xx ์ค๋ฅ๋ฅผ ๊ฐ์งํ๊ณ ๋ด๋น ์์ง๋์ด์๊ฒ ์ ํ๋ฅผ ๊ฑธ์์ต๋๋ค.
Kibana์ 5xx ์ค๋ฅ
ํ๋
ะะตะนััะฒะธะต
์ ํ
์ฑ
์๊ฐ์๋
ํ์คํฌ
CoreDNS์ ๋ํ ์๋ ํฌ๊ธฐ ์กฐ์ ๋นํ์ฑํ
์๋ฐฉํ๋ค
์๋ฉํธ U.
DEVOPS-695
์บ์ฑ DNS ์๋ฒ ์ค์
๊ฐ์ํ๋ค
๋งฅ์ค V.
DEVOPS-665
conntrack ๋ชจ๋ํฐ๋ง ์ค์
์๋ฐฉํ๋ค
์๋ฉํธ U.
DEVOPS-674
๊ตํ
์ ๋ ์ :
- ๋ชจ๋ํฐ๋ง์ด ์ ๋๋๊ตฐ์. ์๋ต์ด ๋น ๋ฅด๊ณ ์ฒด๊ณ์ ์ด์์ต๋๋ค.
- ๋ ธ๋ ์ ํ์ ๋๋ฌํ์ง ์์์ต๋๋ค.
๋ฌด์์ด ์๋ชป๋์๋์?
- ์ค์ ๊ทผ๋ณธ ์์ธ์ ์์ง ์๋ ค์ง์ง ์์์ต๋๋ค.
ํน์ ๋ฒ๊ทธ ์ฝํธ๋์์ - ๋ชจ๋ ์กฐ์น๋ ๊ทผ๋ณธ ์์ธ(๋ฒ๊ทธ)์ด ์๋ ๊ฒฐ๊ณผ๋ง ์์ ํฉ๋๋ค.
- ์กฐ๋ง๊ฐ DNS์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์์์ง๋ง ์์ ์ ์ฐ์ ์์๋ฅผ ์ ํ์ง ์์์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด์ด ์ข์๋ ๊ณณ:
- ๋ค์ ๋ฐฐํฌ๋ conntrack ํ ์ด๋ธ์ ๋ฎ์ด์ด CoreDNS-autoscaler์ ์ํด ํธ๋ฆฌ๊ฑฐ๋์์ต๋๋ค.
- ์ด ๋ฒ๊ทธ๋ ์ผ๋ถ ์๋น์ค์๋ง ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค.
ํ์๋ผ์ธ(EET)
์๊ฐ
ะะตะนััะฒะธะต
22:13
CoreDNS-autoscaler๋ ํฌ๋ ์๋ฅผ XNUMX๊ฐ์์ XNUMX๊ฐ๋ก ์ค์์ต๋๋ค.
22:18
๊ทผ๋ฌด ์ค์ธ ์์ง๋์ด๋ค์ด ๋ชจ๋ํฐ๋ง ์์คํ
์ผ๋ก๋ถํฐ ์ ํ๋ฅผ ๋ฐ๊ธฐ ์์ํ์ต๋๋ค.
22:21
๊ทผ๋ฌด์ค์ธ ์์ง๋์ด๋ค์ ์ค๋ฅ์ ์์ธ์ ์ฐพ๊ธฐ ์์ํ์ต๋๋ค.
22:39
๋ด๋น ์์ง๋์ด๊ฐ ์ต์ ์๋น์ค ์ค ํ๋๋ฅผ ์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ๊ธฐ ์์ํ์ต๋๋ค.
22:40
5xx ์ค๋ฅ๊ฐ ๋ ์ด์ ๋ํ๋์ง ์๊ณ ์ํฉ์ด ์์ ํ๋์์ต๋๋ค.
- ํ์ง ์๊ฐ: 4 ๋ถ
- ํ๋ ์ ์๊ฐ: 21 ๋ถ
- ์์ ์๊ฐ: 1 ๋ถ
์ถ๊ฐ ์ ๋ณด
- CoreDNS ๋ก๊ทธ:
I0228 20:13:53.507780 1 event.go:221] Event(v1.ObjectReference{Kind:"Deployment", Namespace:"kube-system", Name:"coredns", UID:"2493eb55-3dc0-11ea-b3a2-02bb48f8c230", APIVersion:"apps/v1", ResourceVersion:"132690686", FieldPath:""}): type: 'Normal' reason: 'ScalingReplicaSet' Scaled down replica set coredns-6cbb6646c9 to 2
- Kibana(์ปท), Grafana(์ปท)์ ๋ํ ๋งํฌ
Linux conntrack์ด ๋ ์ด์ ์น๊ตฌ๊ฐ ์๋ ๊ณณ kube-proxy ๋ฏธ๋ฌํจ: ๊ฐํ์ ์ธ ์ฐ๊ฒฐ ์ฌ์ค์ ๋๋ฒ๊น Racy conntrack ๋ฐ DNS ์กฐํ ์๊ฐ ์ด๊ณผ
CPU ์ฌ์ฉ๋์ ์ต์ํํ๊ธฐ ์ํด Linux ์ปค๋์ conntrack์ด๋ผ๋ ๊ฒ์ ์ฌ์ฉํฉ๋๋ค. ๊ฐ๋จํ ๋งํด์ ์ด๊ฒ์ ํน์ ํ
์ด๋ธ์ ์ ์ฅ๋ NAT ๋ ์ฝ๋ ๋ชฉ๋ก์ ํฌํจํ๋ ์ ํธ๋ฆฌํฐ์
๋๋ค. ๋ค์ ํจํท์ด ์ด์ ๊ณผ ๋์ผํ Pod์์ ๋์ผํ Pod๋ก ๋์ฐฉํ๋ฉด ์ต์ข
IP ์ฃผ์๋ ๋ค์ ๊ณ์ฐ๋์ง ์๊ณ conntrack ํ
์ด๋ธ์์ ๊ฐ์ ธ์ต๋๋ค.
conntrack ์๋ ๋ฐฉ์
๊ฒฐ๊ณผ
์ด๊ฒ์ ๋ช ๊ฐ์ง ์ ์ฉํ ๋งํฌ๊ฐ ํฌํจ๋ ์ฌํ ๋ถ์ ์ค ํ๋์ ์์ ๋๋ค. ํนํ ์ด ๊ธฐ์ฌ์์๋ ๋ค๋ฅธ ํ์ฌ์ ์ ์ฉํ ์ ์๋ ์ ๋ณด๋ฅผ ๊ณต์ ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ค์ํ๋ ๊ฒ์ ๋๋ ค์ํ์ง ์์ผ๋ฉฐ ์ฌํ ๋ถ์ ์ค ํ๋๋ฅผ ๊ณต๊ฐํฉ๋๋ค. ๋ค์์ ์ข ๋ ํฅ๋ฏธ๋ก์ด ๊ณต๊ฐ ์ฌํ ๋ถ์์ ๋๋ค.
- GitLab :
31์ XNUMX์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค๋จ์ ๋ํ ์ฌํ ๋ถ์ - ๋ณด๊ด ์ฉ :
์ฌํ ์ ๊ฒ - Spotify :
Spotify์ DNS์ ์ ์ฆ ๊ด๊ณ - ๊ทธ ์ธ ๋ค์
์ด ์์ ๋ฐ ์ ์ฅ์Kubernetes ์คํจ ์ฌ๋ก - ๋ํ
์ SRE Book์ ์ฌ์ฉํ ๊ณต๊ฐ ์ฌํ ๋ถ์
์ถ์ฒ : habr.com