Kubernetes (K8s) is an open source system to manage containerized applications across multiple hosts, providing basic mechanisms for deployment, maintenance, and scaling of applications.
Kubernetes architecture comprises of kubectl, which is a command line interface that runs commands against the Kubernetes clusters. Kubernetes also has an API server that runs on the master node. ETCD is a distributed key-value store. The Kubernetes state is defined in ETCD. Besides the master node, the Kubernetes architecture contains one or more worker nodes. The workloads run on the worker nodes.
You can specify declarative artifacts for Kubernetes, which are defined using yaml files and these yaml definitions are submitted to the master. Depending on the definition, constraints, and rules, the Kubernetes master node schedules pods or artifacts submitted in one of the nodes. Similar to any distributed computing architecture, the master manages the front end operations and the nodes come together to form a cluster. The registry, either public or private, can centrally stores the docker images, such as a docker hub or a Google container registry.