A namespace is used to keep a group of resources separate. Namespaces in KubernetesĮvery object in a Kubernetes cluster has a unique ID and a name that denotes its resource type. With annotations, this useful information no longer needs to be stored on external resources, boosting performance. They could contain administrator contact information, general image or build info, specific data locations, or tips for logging.
However, Kubernetes does not use annotations to select and identify objects.Īnnotations store information that is not meant to be used by Kubernetes’ internal resources. Much like labels, annotations are also key/value pairs and can be used to attach metadata to objects. The ability to group pods and give them meaningful identifiers improves a user’s control over a cluster. The labels group and organize the pods in a user-defined subset. Once assigned, pods are easier to identify and control. Labels are simple key/value pairs that can be assigned to pods. Kubernetes has several instruments that users or internal components utilize to identify, manage, and manipulate objects within the Kubernetes cluster. If you need to scale your app within a Kubernetes cluster, you can only do so by adding or removing pods. It represents a ‘wrapper’ for the container with the application code.
This is usually a 3 rd party software or plugin, such as Docker.Ī network proxy that maintains network communication to your Pods from within or from outside the cluster.Īdditional features you can add to your cluster to extend certain functionalities.Ī pod is the smallest element of scheduling in Kubernetes. These nodes are the machines where the containerized workloads and storage volumes are deployed.Ī daemon that runs on each node and responds to the master’s requests to create, destroy, and monitor pods on that machine.Ī container runtime retrieves images from a container image registry and starts and stops containers. There are multiple instances of Worker Nodes, each performing their assigned tasks. The Master Node components control the Worker Nodes. Always selects nodes with the least traffic to balance the workload. Schedules newly created pods onto worker nodes. It tries to move the actual state of the cluster to match the desired state from your manifest file. Uses the API Server to monitor the state of the cluster. The API Server communicates with all the components within the cluster.Ī light-weight distributed key-value store used to accumulate all cluster data. It is responsible for establishing and maintaining communication within the cluster and for load balancing workloads. The components of the Master Node administer Worker Nodes and assign individual tasks to each. The Master Node is the container orchestration layer of a cluster. Kubernetes Master NodeĪ Node is a physical machine or VM. Note: See Understanding Kubernetes Architecture with Diagrams where we break down Kubernetes architecture and take a look at its core components. The components that make global decisions about the cluster, like the API server, are located on the Master Node.
The main elements of a Kubernetes cluster are the Master Node, Worker Nodes, and Pods. The API server then automatically adds and removes containers in your cluster to make sure that the defined desired state and the actual state of the cluster always match. Kubectl is used to directly manage cluster resources and provide instructions to the Kubernetes API server. The default Kubernetes command-line interface is called kubectl. This framework is usually a basic manifest file you provide to Kubernetes using a command-line interface tool. Kubernetes only needs a general framework of what you would like your cluster to look like. Instead of boosting the durability of an individual container, Kubernetes uses the unstable nature of a container and turns that weakness into an asset.
As a result, they are fragile and transitory. How Does Kubernetes Work?Ĭontainers are designed to be as light-weight as possible. These microservices are then coupled and deployed quickly and easily on a Kubernetes cluster. Ideally, a single service should only perform a single function. Developers can now design applications as a set of smaller, independent microservices.