for the most critical data of a distributed system • Simple • well-defined, user-facing API (gRPC) • Secure • automatic TLS with optional client cert authentication • Fast • benchmarked 10,000 writes/sec • Reliable • properly distributed using Raft Raft is a consensus algorithm, equivalent to Paxos in fault-tolerance and performance. written in Go
Kubernetes • an open-source system for automating deployment, scaling, and management of containerized applications • locksmith • a reboot manager for the CoreOS update engine • vulcand • a programmatic extendable proxy for microservices and API management • Doorman • a solution for Global Distributed Client Side Rate Limiting
kube-apiserver • the front end of Kubernetes control plane, exposes the Kubernetes API • etcd • a backing store for all cluster data • kube-scheduler • watches newly created pods and selects a node for them • kube-controller-manager • runs controllers – Node, Replication, Endpoints, Service Account & Token • cloud-controller-manager • Interact with the underlying cloud providers
following... • run etcd as a cluster of odd members • fulfill guaranteed resource requirements • set version of etcd 3.2.10+, recommended • limit access to etcd cluster, because it’s like root permission in cluster • back up an etcd cluster Built-in snapshot or Volume snapshot on GKE, master nodes are automatically scaled
Use case Recommend type small • fewer than 100 clients • fewer than 200 of requests/sec • stores less than 100MB • Ex. a 50-node Kubernetes cluster n1-standard-2 50GB PD SSD medium • fewer than 500 clients • fewer than 1,000 of requests/sec • stores less than 500MB • Ex. a 250-node Kubernetes cluster n1-standard-4 150GB PD SSD large • fewer than 1,500 clients • fewer than 10,000 of requests/sec • stores less than 1GB • Ex. a 1,000-node Kubernetes cluster n1-standard-8 250GB PD SSD