ááŸááºáá»áẠáá¬áá¬ááŒááº- á€áááºááŸá¬ áá¯áá¹ááá®á á¡ááºáá»ááºáá®áá¬ááá±á¬á·ááºá០á¡áá»á¬ážáá°ááŸá¬ áááºááœá²á
á
áºáá±ážááŒááºážá áá¬áá¬ááŒááºáá»ááºááŒá
áºáááºá
ááœááºááœááºááœá¬ážáá°áá»á¬ážá¡ááŒá±á¬ááºáž á¡áááºážáááºááá¯ááá¯áá±á·áá¬ááá¯áá°áá»á¬ážá¡ááœáẠááá¯á·ááá¯áẠá¡áá¬áááºááœáẠááŒá áºááá¯ááºáá»á±ááŸááá±á¬ DNS ááŒá¿áá¬á¡áá»áá¯á·ááᯠáá¬ááœááºááá¯áá°áá»á¬ážá¡ááœáẠá€áá±á¬ááºážáá«ážááẠá¡áá¯á¶ážáááºááá¯ááºáá«áááºá
áááºážááẠDNS ááá¯ááºáá«á
DNS áááŒá
áºááá«áá°ážá
áááºážááẠDNS ááŒá
áºáááºá
Preply ááœáẠá¡áá±á¬ááºážáá¯áááŒááºážáá»á¬ážááŸáá·áº áá¯ááºáááºážá ááºáá»á¬ážá¡ááŒá±á¬ááºáž á¡áááºážáááº
áááºááœá²á á áºáá±ážááŸá¯ááẠáá»áá¯á·ááœááºážáá»ááºáá áºáᯠááá¯á·ááá¯áẠáá¯ááºáá¯ááºááŸá¯ááœáẠá¡áá»áá¯á·áá±á¬ááŒá áºáááºááᯠáá±á¬áºááŒáááºá áá±áá¯á¶ážááŸá¯ááœáẠááŒá áºáááºáá»á¬ážá á¡áá»áááºááá¬ážá á¡áá¯á¶ážááŒá¯áá°á á¡áá»áá¯ážáááºáá±á¬ááºááŸá¯á á¡áááºážáá¶á¡ááŒá±á¬ááºážááá¬ážá áá¯ááºáá±á¬ááºááŸá¯áá»á¬ážááŸáá·áº áááºáááºážá á¬áá»á¬áž áá«áááºáááºá
áá®áá¬ááŸáá·áº á¡áááºá
áẠá¡á
ááºážá¡áá±ážáá»á¬ážááœáẠáááºážááá¬á¡ááœá²á·á០áá»áœááºá¯ááºááá¯á·ááẠá¡áá»ááºá¡áááºá¡áá»áá¯ážáá»áá¯ážááᯠáá»áŸáá±áá«áááºá ááá¯ááá¯á·áá±á¬ á¡á
ááºážá¡áá±ážáá»á¬ážá á¡áá±ážááŒá®ážáá¯á¶áž á¡á
áááºá¡ááá¯ááºážáá»á¬ážáá²á០áá
áºáá¯ááŸá¬ á¡áá±áá¶áá±ááŒááºáž (Post-mortems) ááŒá
áºááŒá®áž á¡áá»á¬ážá
á¯ááŸá¬ áááá¯ááºáá»á¬ážááŒáá·áº áááºááŒááŒááºážááŸáá·áº á¡ááŒá
áºá¡áá»ááºááᯠááá¯ááá¯áááºááŸáá¯ááºážá
áœá¬ ááœá²ááŒááºážá
áááºááŒá¬ááŒááºážááŒáá·áº ááá¯ááºáá«ááœá¬ážáá±á·ááŸááááºá ááœááºááœááºááŒá®ážáá±á¬áẠáááºáá¯ááºááá®ážááŒáá±á¬áºáááºáž âá¡ááŒá
áºáááŸáâ áá°áá±á¬ áááºáá»á±ážááŸá¯ááᯠááŒáŸáá·áºáááºááẠááŒáá¯ážá
á¬ážááŒáááºá
á¡ááŒá áºá¡áá»ááºáá áºáá¯ááœáẠáá«áááºáááºáááºáá°áá»á¬ážááẠááŒá áºáááºáá±ážááŒááºáž ááá¯á·ááá¯áẠáá»á±á¬áºááŒá±ážáá±ážááŒááºážááᯠáááŒá±á¬ááºááœá¶á·áá² á¡áá±ážá áááºááŒá±á¬ááá¯ááºáááºáᯠáá¶á á¬ážáááá·áºáááºá á¡ááŒá áºáááŸááá«! áááºááœá²á á áºáá±ážááŒááºážááẠááŒá áºáááºáá áºáá¯ááá¯ááºáá±á¬áºáááºáž áá¯áá¹ááá®áá áºáá¯áá¯á¶ážá¡ááœáẠáááºáá°ááœáá·áºáá áºáá¯ááŒá áºáááºá
Keep CALMS & DevOps: S ááẠáá»áŸáá±áááºá¡ááœááºááŒá áºáááºá
Kubernetes ááŸá DNS ááŒá¿áá¬áá»á¬ážá áá±ááºááœááº
áááºá áœá² 28.02.2020
á á¬áá±ážáá°áá»á¬áž - Amet U., Andrey S., Igor K., Alexey P.
á¡ááŒá±á¡áá± ááŒá®ážááŒá®á
áá±áá¹á: Kubernetes á¡á á¯á¡áá±ážááŸá áááºáá±á¬ááºááŸá¯á¡áá»áá¯á·á¡ááœáẠáá áºá áááºáá áºááá¯ááºáž DNS ááááŸáááá¯ááºááŸá¯ (26 áááá áº)
ááœáŸááºážááá¯ážááŸá¯- áááºáá±á¬ááºááŸá¯ Aá B ááŸáá·áº C á¡ááœáẠáá¯á¶ážááŸá¯á¶ážááœá¬ážáá±á¬ ááŒá áºááẠ15000
á¡ááŒá±á¬ááºážáá¶: Kube-proxy ááẠconntrack table á០áááºáá±á¬ááºááŸá¯ á¡áá±á¬ááºážááᯠááŸááºáááºá áœá¬ áááºááŸá¬ážááá¯ááºááŒááºáž áááŸááá±á¬ááŒá±á¬áá·áº á¡áá»áá¯á·áá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážááẠáááºááŸáááŒááºážáááŸááá±á¬ pods áá»á¬ážááŸáá·áº áá»áááºáááºááẠááŒáá¯ážá á¬ážáá±áá²ááŒá áºáááºá
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-á¡á±á¬áºááá¯á áá±ážáááááá¬ááẠááŒáá·áºáá»ááºááŸá¯ááœáẠá¡áá»áááºá¡áááºá¡áá±á¡ááœááºááᯠáá¯á¶ážá០ááŸá áºá¡áá áá»áŸá±á¬á·áá»áá²á·áááºá
ááŒá±ááŸááºážáá»ááº: á¡ááá®áá±ážááŸááºážááá±á¬ááºáááºááŒáá·áºáá»ááºááŸá¯ááẠnode á¡áá áºáá»á¬ážáááºáá®ážááŒááºážááá¯á áááºáá²á·ááŒá®áž CoreDNS-autoscaler ááẠá¡á á¯á¡áá±ážááá¯áá¯ááºáá±á¬ááºááẠáá±á¬ááºááẠpods áá»á¬ážááá¯ááá·áºááœááºážáá²á·ááŒá®ážá conntrack ááá¬ážááá¯ááŒááºáááºáá±ážáá¬ážáááºááŸáá¯ážáá±á¬áºáá²á·áááºá
áá±á¬ááºááŸááºážááŒááºáž- Prometheus á á±á¬áá·áºááŒáá·áºá á áºáá±ážááŸá¯ááẠáááºáá±á¬ááºááŸá¯ Aá B ááŸáá·áº C á¡ááœáẠ5xx á¡ááŸá¬ážá¡ááœááºážáá»á¬ážá áœá¬ááᯠááœá±á·ááŸááá²á·ááŒá®áž áá¬áááºáá»á¡ááºáá»ááºáá®áá¬áá»á¬ážáᶠáá¯ááºážáá±á«áºááá¯ááŸá¯ á áááºáá²á·áááºá
Kibana ááœáẠ5xx á¡ááŸá¬ážáá»á¬áž
áá¯ááºáááºáá»á¬áž
á¡áá»áá¯áž
áá¯á¶á
á¶
áá¬áááºááŸááá±á¬
áá¯ááºáááºáž
CoreDNS á¡ááœáẠá¡á±á¬áºááá¯á
áá±ážááᯠááááºáá«á
áá¬ážáá®ážáá²á·áááºá
Amet U
DEVOPS-695
ááááºážáááºážáá¬ážáá±á¬ DNS áá¬áá¬ááᯠá
áá
áºááá·áºááœááºážáá«á
áá»áááºážááŒááºážá
Max V
DEVOPS-665
conntrack á
á±á¬áá·áºááŒáá·áºááŸá¯ááᯠáááºááŸááºáá«á
áá¬ážáá®ážáá²á·áááºá
Amet U
DEVOPS-674
áááºáááºážá á¬áá»á¬áž
áá¬áá±á¬ááºážááœá¬ážáá²
- á á±á¬áá·áºááŒáá·áºááŸá¯ áá±á¬ááºážáá±á¬ááºážáá¯ááºáá²á·áááºá áá¯á¶á·ááŒááºááŸá¯ááŸá¬ ááŒááºáááºááŒá®áž á áá áºááá»ááŒá áºáááºá
- áá»áœááºá¯ááºááá¯á·ááẠnode áá»á¬ážááœáẠáááºááá·áºááá·áºáááºáá»ááºááá¯áá»áŸ ááááá²á·áá«á
áá¬ááŸá¬ážáá²á·áá²
- á¡á
á
áºá¡ááŸáẠá¡áááºážáᶠá¡ááŒá±á¬ááºážá¡áááºážááᯠáááááá±ážáá«á
áá®ážááŒá¬áž bug conntrack ááœáẠ- áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážáá¯á¶ážááẠá¡áá»áá¯ážáááºáá»á¬ážáá¬ááŒá áºááŒá®áž áá°áá¡ááŒá±á¬ááºážááá¬áž (bug) ááá¯ááºáá²á
- áá»á¬ážáááŒá¬áá® ááá¯á·ááá¯áẠáá±á¬ááºááá¯ááºážááœáẠáá»áœááºá¯ááºááá¯á·ááẠDNS ááŸáá·áº ááŒá¿áá¬áá»á¬áž ááŸáááá¯ááºáááºááᯠáá»áœááºá¯ááºááá¯á· ááááŸááá¬ážáá±á¬áºáááºáž á¡áá¯ááºáá»á¬ážááᯠáŠážá á¬ážáá±áž ááá¯ááºáá±á¬ááºáá²á·áá«á
áá«ááá¯á·áá¶áá±á¬ááºážáá²á·áá²á·áá±áá¬
- áá±á¬ááºáá áºááŒááẠááŒáá·áºáá»ááºááŸá¯ááᯠCoreDNS-autoscaler á០á¡á áá»áá¯ážáá²á·ááŒá®ážá conntrack table ááᯠoverwrite áá¯ááºáááº
- á€áá»áá¯á·ááœááºážáá»ááºááẠáááºáá±á¬ááºááŸá¯á¡áá»áá¯á·ááá¯áᬠáááºáá±á¬ááºááŸá¯ááŸááááºá
á¡áá»áááºááá¯ááºáž (EET)
á¡áá»áááº
á¡áá»áá¯áž
22:13
CoreDNS-autoscaler ááẠpods á¡áá±á¡ááœááºááᯠáá¯á¶ážá០ááŸá
áºáá¯ááá¯á· áá»áŸá±á¬á·áá»áááºá
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 Subtleties- Intermittent Connection Reset ááᯠá¡ááŸá¬ážááŸá¬ááŒááºážá áááœááºááᬠconntrack ááŸáá·áº DNS ááŸá¬ááœá±ááŸá¯ á¡áá»áááºáá¯ááºááŒááºážáá»á¬áž
CPU á¡áá¯á¶ážááŒá¯ááŸá¯ááᯠáá»áŸá±á¬á·áá»áááºá Linux kernel ááẠconntrack áá¯áá±á«áºáá±á¬ á¡áá¬áá
áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áááºá á¡ááá¯áá»á¯ááºá¡á¬ážááŒáá·áºá áááºážááẠá¡áá°ážááá¬ážáá
áºáá¯ááœáẠááááºážáááºážáá¬ážááá·áº NAT ááŸááºáááºážáá»á¬ážá
á¬áááºážáá«ááŸááá±á¬ á¡áá¯á¶ážáááºááŸá¯áá
áºáá¯ááŒá
áºáááºá áá±á¬áẠpacket ááẠáá°áá®áá±á¬ pod á០ááááºáá²á·ááá¯á· áá°áá®áá±á¬ pod ááá¯á· áá±á¬ááºááŸááá±á¬á¡áá«á áá±á¬ááºáá¯á¶áž IP ááááºá
á¬ááᯠááŒááºáááºááœááºáá»ááºáááºááá¯ááºáá±á¬áºáááºáž conntrack table á០áá°ááœá¬ážáááºááŒá
áºáááºá
áááºááᯠconttrack á¡áá¯ááºáá¯ááºáá²á
ááááºáá»á¬ážááá¯
á€áááºááŸá¬ á¡áá¯á¶ážáááºáá±á¬ ááá·áºááºáá»á¬ážáá«ááŸááá±á¬ áá»áœááºá¯ááºááá¯á·á áá±áá¯á¶ážááœá¬ážááŒááºážá ááá°áá¬áá áºáá¯ááŒá áºáááºá á¡áá°ážáááŒáá·áº á€áá±á¬ááºážáá«ážááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá¬ážáá¯áá¹ááá®áá»á¬ážá¡ááœáẠá¡áá¯á¶ážáááºááá¯ááºááá·áº á¡áá»ááºá¡áááºáá»á¬ážááᯠáá»áŸáá±áá«áááºá ááá¯á·ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡ááŸá¬ážáá¯ááºááááẠáááŒá±á¬ááºáá² áá»áœááºá¯ááºááá¯á·á áááºááœá²á á áºáá±ážááŒááºážáá»á¬ážááᯠáá°ááááŸááºááŒá¬áž ááŒá¯áá¯ááºáááŒááºážááŒá áºáá«áááºá á€áááºááŸá¬ á áááºáááºá á¬ážá áá¬áá±á¬ááºážáá±á¬ á¡áá»á¬ážáá°ááŸá¬ áá±áá¯á¶ážááŸá¯á¡áá»áá¯á·ááŒá áºáááºá
- GitLab-
áááºááá«áá® áá ááẠáá±áá¬áá±á·á ẠááŒááºáá±á¬ááºááŸá¯ á¡ááŒá®ážáá±áá¯á¶ážááŸá¯ - Dropbox ááá¯:
áá¬ááºááœá²áááºáž ááŒááºáá±á¬ááºááŸá¯ - Spotify:
Spotify á DNS ááŸáá·áº áá»á áºááŒááºáž/á¡áá¯ááºáž áááºáá¶áá±áž - áááŒá¬ážáá°ááœá±áááºáž á¡áá»á¬ážááŒá®ážáá²á
á€á¡áá»áẠááŸáá·áº repositoryKubernetes áá»ááºááœááºáá¬ááºáááºážáá»á¬áž - áááºáž
ááá°áᬠSRE Book ááŒáá·áº á¡áá»á¬ážáá°ááŸá¬ áááºááœá²á á áºáá±ážááŒááºážá
source: www.habr.com