node runs the Docker container. Depending on the design of the cluster, a worker node can be either a virtual ma- chine or a physical machine. Each worker node includes all of the services needed to run pods (or a cluster of con- tainers). It is managed by the master node. These nodes do not have a public IP address and therefore process data on the node and report resources to the master node. API server The API Server manages the entire cluster by processing REST operations, validates them, and updates the corre- sponding objects in etcd. One important function of the API Server is to authentication and authorization of the interactions with the API clients. The Kubernetes API server is designed to validate and configure the data for pods, services and replication con- trollers. In addition, the API server assigns pods (or a group of containers) so they can be deployed as a unit on the same host) to the cluster of nodes. At this point, the API server synchronizes the container group information with service configuration. The API Server is the central manager that communicates directly with distributed storage and can manipulate the state of services. Etcd storage Managing clusters across distributed systems is compli- cated. Etcd is an open source distributed key value store that provides shared configuration and service discovery for container Linux clusters. Etcd replicates the state data across all nodes in the cluster, preventing a single node failure from bringing down the whole group. Etcd runs on each machine in a cluster and gracefully handles leader election during network partitions and the loss of the 50

Building Cloud Native Apps Painlessly - Page 56 Building Cloud Native Apps Painlessly Page 55 Page 57