
Irgendwann haben wir bei okmeter.io festgestellt, dass wir auch k8s in der Produktion benötigen, obwohl wir nicht einmal eine CI / CD haben, aber es gibt eine Aufgabe, einen gemeinsamen Serverpool zwischen Anwendungen zu teilen, und es ist ziemlich einfach, dem Cluster KapazitĂ€ten hinzuzufĂŒgen. Gleichzeitig gab es eine Reihe von UmstĂ€nden, die die Implementierung von k8s erschwerten:
- Wir legen groĂen Wert auf Fehlertoleranz (wir bringen neue Technologien erst dann in die Produktion, wenn wir sie auf einem ausreichenden Niveau verstehen).
- Wir haben Dienste mit Antwortzeiten von weniger als 10 ms.
- Wir haben nur sehr wenige Mitarbeiter fĂŒr diese Aufgabe (lernen Sie 10 neue OK-Begriffe, 50 - nicht mehr).
: 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 ?
Ich habe nur Angst vor diesen Worten. Wir haben die Ăberwachung von K8s durchgefĂŒhrt und mussten einen PrĂŒfstand fĂŒr virtuelle Maschinen erstellen, um eine Demo der Ăberwachung zu erstellen. Dort setzte Kubespray standardmĂ€Ăig Calico ein. Es funktioniert, aber ich verstehe nicht, wie es funktioniert. Wir haben dort keine Benchmarks durchgefĂŒhrt, ich weiĂ nicht, wie es funktioniert. Und wie es brechen wird, weiĂ ich nicht. Ich weiĂ, wie Flanell brechen wird, ich bin bereit dafĂŒr. Und wie all die anderen 19 Plugins kaputt gehen, weiĂ ich nicht.
Diese Frage ist im Hinblick auf den Datenschutz interessant, um ein sicheres, ungesichertes Netzwerk zu trennen.
Wir sind in dieser Hinsicht gesegnet, wir haben nichts dergleichen.
Du bist sehr glĂŒcklich.
Also danke!