Kubernetes ู„ู…ู† ู‡ู… ููˆู‚ ุณู† ุงู„ุซู„ุงุซูŠู†.ู†ูŠูƒูˆู„ุงูŠ ุณูŠููƒูˆ (2018)



ููŠ ู…ุฑุญู„ุฉ ู…ุง ุŒ ุฃุฏุฑูƒู†ุง ููŠ okmeter.io ุฃู†ู†ุง ู†ุญุชุงุฌ ุฃูŠุถู‹ุง ุฅู„ู‰ k8s ููŠ ุงู„ุฅู†ุชุงุฌ ุŒ ุนู„ู‰ ุงู„ุฑุบู… ู…ู† ุฃู†ู†ุง ู„ุง ู†ู…ู„ูƒ ุญุชู‰ CI / CD ุŒ ูˆู„ูƒู† ู‡ู†ุงูƒ ู…ู‡ู…ุฉ ู„ู…ุดุงุฑูƒุฉ ุชุฌู…ุน ุฎุงุฏู… ู…ุดุชุฑูƒ ุจูŠู† ุงู„ุชุทุจูŠู‚ุงุช ูˆู…ู† ุงู„ุณู‡ู„ ุฌุฏู‹ุง ุฅุถุงูุฉ ู‚ุฏุฑุงุช ุฅู„ู‰ ุงู„ู…ุฌู…ูˆุนุฉ. ููŠ ุงู„ูˆู‚ุช ู†ูุณู‡ ุŒ ูƒุงู† ู‡ู†ุงูƒ ุนุฏุฏ ู…ู† ุงู„ุธุฑูˆู ุงู„ุชูŠ ุฃุฏุช ุฅู„ู‰ ุชุนู‚ูŠุฏ ุชู†ููŠุฐ k8s:



  • ู†ุญู† ู†ู‡ุชู… ูƒุซูŠุฑู‹ุง ุจุงู„ุชุณุงู…ุญ ู…ุน ุงู„ุฎุทุฃ (ู†ุญู† ู„ุง ู†ุฌุฑ ุงู„ุชู‚ู†ูŠุงุช ุงู„ุฌุฏูŠุฏุฉ ุฅู„ู‰ ุงู„ู…ู†ุชุฌ ุญุชู‰ ู†ูู‡ู…ู‡ุง ุจู…ุณุชูˆู‰ ูƒุงูู) ุ›
  • ู„ุฏูŠู†ุง ุฎุฏู…ุงุช ุฐุงุช ุฃูˆู‚ุงุช ุงุณุชุฌุงุจุฉ ุฃู‚ู„ ู…ู† 10 ู…ู„ู„ูŠ ุซุงู†ูŠุฉ ุ›
  • ู„ุฏูŠู†ุง ุนุฏุฏ ู‚ู„ูŠู„ ุฌุฏู‹ุง ู…ู† ุงู„ู…ูˆุงุฑุฏ ุงู„ุจุดุฑูŠุฉ ู„ู‡ุฐู‡ ุงู„ู…ู‡ู…ุฉ (ุชุนู„ู… 10 ู…ุตุทู„ุญุงุช ุฌุฏูŠุฏุฉ ุฌูŠุฏุฉ ุŒ 50 - ู„ู… ุชุนุฏ).




: 2018 , issue .





. Okmeter.io. . , . , . .





?



, , , , โ€“ .



Kubernetes.





.



Okmeter.io. :



  • , , , auto discovery.
  • , .


:



  • , , . . , . Python Go.
  • - , . Kafka, Cassandra, Elasticsearch, PostgreSQL.
  • . , , latency. .
  • DevOps , CI/CD, pipeline. , .
  • . , ( ), . , . read , . . , , .
  • , , , , โ€“ , 2 , , , .
  • .




, .



Google App Engine. . , . .



, , . , latency . .



, - . . Cassandra, Elasticsearch, Go Python.





, Elasticsearch.



, Elasticsearch , , CPU. Python.





. , Go stateless, , -, , , CPU - .



, . , , .





?



  • Ansible , , , , server -> roles . .
  • , . Ansible , , . , , , .
  • , Ansible, , , . โ€“ playbooks . , , playbooks production. , , . , .




, , instance, ?



  • inventory. , - - .
  • . , , . , . .




, , , .



  • , Kubernetes , . , .
  • , , . . , , , , , , .
  • , . . Request + Limit โ€“ , .




Kubernetes. . . . , , . , , , instances. , OOM killer, , . , , .



, , , . .



, health checks , . , , .





Ansible . Ansible? , , . , . Ansible, , .



Kubernetes, , . - . , , over kill.





, ? :



  • โ€” , , .
  • โ€“ Ansible , , Kubernetes .




Kubernetes , Ansible? Kubernetes apply, , , . . -, , . , โ€“ , .



, ? - ? , . , pod. , , Ansible. , , .





? service discovery. , . nginx, upstreamโ€™. . . . . , , service discovery. . Kubernetes.



, . , , . - , . DNS, ETCD. , , . .





, , , , . , readiness/ liveness-. , , curl, , Kubernetes .



? , pull . , , . pod, IP, . pull . , . , , .



, , pod . , , . graceful shutdown . . , .



. , RequestID, tracing, , , . , pod โ€“ , .





โ€“ . Kubernetes, , , L2 , , .





, , ? , 20 , . ? . bgp. , bgp. bgp 10 ?



Kubernetes , service discovery iptables , . . daemon, iptables. , . , , , , .





. 20 , . iptables , .



, , . IP podโ€™ IP . , . SR-IOV. , 128 . switch . . , , .



, . . , -, , , . - . flannel host-gw. 24- . , , -. , .





iptables kube-proxy, , iptables Kubernetes. Google , . . headless services .





?



  • , K8s .
  • , , CI/CD.
  • . . . , ? , .
  • production .




, :



  • , K8s. docker , , Python. Go โ€“ . , docker . .
  • docker . Ansible docker: ยซ , , ยป.
  • , . .




. , - etcd, ConfigMap, . , . , reconfig. , .



Helm . , .





, Helm. update/ rollback podโ€™, immutable ConfigMap, . , , , , , rolling update, , . , . . , production , . ConfigMap, ConfigMag.





, , โ€“ .



โ€“ , . - . pod, , immutable. , . , Helm.





. Go- , YAML . , - , -. YAML, . โ€“ .





Python Django . Settings.py โ€“ . settings . .





, , , K8s stateful . , : Cassandra, Kafka. -, , .



, , Ansible. Ansible , - K8s . ?





Kubernetes โ€“ Ansible playbook. . . playbook, , , K8s.





production - - .



. request/ limit.



, , . CPU . . , podโ€™ . , - , CPU.





, . , , - , OOM Killer . , 100 , .





โ€“ deployments - . , , selector , pod deployments. OOM Killer , . . deployment , . , .





- - . , โ€“ . K8s back-off. . .





, , , โ€ฆ, back-off .



, rollout, . . , . , , . . . . , .





, , , iptables headless. ? selector, podโ€™, . podโ€™ readiness probe, . endpoint, , . . endpoint โ€“ podโ€™.



IP . IP, pod.



IP. , . , iptables , upstream, .



DNS-.





? , pod. readiness probe kubelet . . , kubeletโ€™ apiserver.



kube-proxy . kube-proxy . , .





?



  • Probes . , , .
  • . 10 000 rps, , .
  • . Kubelet -> apiserver -> kube-proxy-> iptables. , .
  • , kubelet apiserver? kube-proxy iptables? , .
  • , iptables pod, . , , . retries.




, headless service โ€“ , .



. etcd, apiserver, DNS.





envoy, L7, retry. http, retry , . , , application level . , ? Envoy.





. envoy. DNS. K8s DNS, endpoints. , . , .



envoy DeamonSet, , sidecar container. ? - .



envoy, -, , , podโ€™ . . . rolling-update. - , , pod .





. . . envoy nginx -t. . , : ยซ, ยป. . , podโ€™ .



, sidecar . envoy , .





. envoy. , resolve , , 3 DNS. , envoy resolve. . . . , health check, retry.





, service mesh . service mesh, . . , .



- , GitHub , . envoy. , istio , . .





ingress-. IP, K8s-. K8s, , .



DaemonSet envoy, . DaemonSet โ€“ . IP , DaemonSet, IP - . . 3 - 4, 5, 10 upstream .



DaemonSet rolling .





ingress controller, , nginx - ingress K8s. , . . , , envoy, DaemonSet, ingress controller. . DaemonSet, . ingress.





, . .



Kubespray โ€“ , , 20 K8s-.



, , , , . , , .



playbook .





?



etcd c apiserverโ€™. . full mesh.





, Kubelet โ€ฆ, . , , . . pod , . , .





CoreDNS. deployment. deployment, iptables, .



iptables, DNS deployment DaemonSet. , , . DNS , -, .





3 + N . , , . , Ansible. , .



Stateful- , , . .



, Kafka 4 10 . Kubelet , . , overbooked .





, , flannel . podโ€™. . 1/0. podโ€™ . . . . . , .





, , . , , , egress, , . flannel NAT. podโ€™ .



, . NAT.





  • . .
  • , . , .
  • - . . , , . , - , . 3 , , , , .
  • , Kubernetes, , . , , .




Kubernetes .





Kubernetes .



, . !



:



, ! follower, , , , Kubernetes, - ? Kubernetes ?



, , Kubernetes . , . , . . , .



, , , , , , , , . , service discovery . , , , , .



! Stateful- , . HA ? HAProxy K8s?



Cassandra . , , . . endpoints IP , .



Postgres?



Postgres . Postgresโ€™ , . . , . , , . Postgres - . , , -, . Postgres , .



, ! ! latency. , , latency . , ?



. . . iptables , . iptables, . , , .



20 . - ?



flannel .



, , Open vSwitch ?



ุฃู†ุง ูู‚ุท ุฃุฎุงู ู…ู† ู‡ุฐู‡ ุงู„ูƒู„ู…ุงุช. ู„ู‚ุฏ ู‚ู…ู†ุง ุจู…ุฑุงู‚ุจุฉ K8s ุŒ ูˆูƒุงู† ุนู„ูŠู†ุง ุนู…ู„ ู…ู†ุตุฉ ุงุฎุชุจุงุฑ ุนู„ู‰ ุงู„ุฃุฌู‡ุฒุฉ ุงู„ุงูุชุฑุงุถูŠุฉ ู…ู† ุฃุฌู„ ุนู…ู„ ุนุฑุถ ุชูˆุถูŠุญูŠ ู„ู„ู…ุฑุงู‚ุจุฉ. ู‡ู†ุงูƒ ุŒ ุจุดูƒู„ ุงูุชุฑุงุถูŠ ุŒ ู†ุดุฑ Kubespray ูƒุงู„ูŠูƒูˆ. ุฅู†ู‡ ูŠุนู…ู„ ุŒ ู„ูƒู†ู†ูŠ ู„ุง ุฃูู‡ู… ูƒูŠู ูŠุนู…ู„. ู„ู… ู†ู‚ู… ุจุฅุฌุฑุงุก ุฃูŠ ู…ุนุงูŠูŠุฑ ู‡ู†ุงูƒ ุŒ ูˆู„ุง ุฃุนุฑู ูƒูŠู ูŠุนู…ู„. ูˆูƒูŠู ุณูŠู†ูƒุณุฑ ุŒ ู„ุง ุฃุนุฑู. ุฃุนุฑู ูƒูŠู ุณูŠุชูƒุณุฑ ุงู„ูุงู†ูŠู„ุง ุŒ ุฃู†ุง ุฌุงู‡ุฒ ู„ุฐู„ูƒ. ูˆูƒูŠู ุณุชุชุนุทู„ ุฌู…ูŠุน ุงู„ู…ูƒูˆู†ุงุช ุงู„ุฅุถุงููŠุฉ ุงู„ู€ 19 ุงู„ุฃุฎุฑู‰ ุŒ ู„ุง ุฃุนุฑู.



ู‡ุฐุง ุงู„ุณุคุงู„ ู…ุซูŠุฑ ู„ู„ุงู‡ุชู…ุงู… ู…ู† ุญูŠุซ ุญู…ุงูŠุฉ ุงู„ุจูŠุงู†ุงุช ู…ู† ุฃุฌู„ ูุตู„ ุดุจูƒุฉ ุขู…ู†ุฉ ุนู† ุดุจูƒุฉ ุบูŠุฑ ุขู…ู†ุฉ.



ู†ุญู† ู…ุญุธูˆุธูˆู† ููŠ ู‡ุฐุง ุงู„ุตุฏุฏ ุŒ ู„ูŠุณ ู„ุฏูŠู†ุง ุดูŠุก ู…ู† ู‡ุฐุง ุงู„ู‚ุจูŠู„.



ุงู†ุช ู…ุญุธูˆุธ ุฌุฏุง.



ุญุชู‰ ุชุฑู†ูƒ!




All Articles