DevOps Dashboard featuring number of builds, work in progress, successful deploys

What is Kubernetes?

Kubernetes is a term that describes a portable, open-source container orchestration system or platform for managing containerized applications.

To understand Kubernetes (also called K8s, or “Kube”), it is important to first understand container orchestration. Container architecture breaks the different services that constitute an application into packaged and separate containers that are deployed across a cluster of physical or virtual machines. With the rise of container architecture, there is a need for container orchestration. Container orchestration is a tool that manages and automates deployment, scaling, networking, and availability of these containers.

Kubernetes is a container orchestration system that manages and automates organizing and deploying container processes. Kubernetes began at Google and became open source in 2014. Since then, Kubernetes can be used by anyone with very few restrictions on how it can be used.

Kubernetes is a popular tool for many companies because of the benefits it can provide. These are three benefits of Kubernetes.

Automated operations

Automation is becoming an increasingly crucial part of business processes. Automating more processes increases efficiency and productivity, allowing people at the company to focus on more important tasks. Kubernetes empowers companies to automate day-to-day operations for container architecture, so they can ensure that their time is being spent in the most efficient way possible. Automated operations are also more accurate because there is no opportunity for human error. Automated operations are a powerful tool.

Infrastructure abstraction

Developers’ time is valuable. Companies benefit when developers can focus on the most important tasks while tools take care of the lower priorities. Infrastructure abstraction with Kubernetes allows Kubernetes to manage computing, networking, and storage. Kubernetes manages these tasks and the architecture which frees developers to focus on the applications themselves.

Service health monitoring

Kubernetes runs health checks for developers to ensure that each container is working properly. The system can also restart any containers that stall or fail. Managing the health of the containers is important, but Kubernetes also ensures that only fully functional and running services are available to users. If something is not working, users will not see it until Kubernetes resets it.
Service Management DevOps Insights

See what DevOps can do for you

Speed up software development by reducing time spent on administrative tasks. Scale and minimize risk with DevOps by ServiceNow.

Kubernetes uses various elements of architecture that are familiar to many developers and many that are unique to Kubernetes. These are some of the common Kubernetes terms to know.

Kubernetes clusters

The highest level of Kubernetes organization is the cluster. A cluster is the group of machines running Kubernetes and all the containers managed by it. With Kubernetes, the cluster will have a master or a machine that controls all the other machines in the cluster. Only one master at a time can run the scheduler and controller-manager.

Kubernetes nodes and pods

Each Kubernetes cluster contains nodes, the next level of organization. Nodes can be the physical machines themselves or VMs. Kubernetes handles deployment of an application, regardless of what it is running on, within these nodes.

Within the nodes, there are pods. Nodes run pods. Pods are the most basic objects that can be created and managed in Kubernetes. Each pod represents a single instance of an application running in Kubernetes and has one or more containers. Within pods, Kubernetes will start, stop, and replicate all processes in the containers. Pods make it possible for users to only see the application itself rather than the containers.

Depending on the user requests, pods are created and destroyed within nodes to conform to requests. Because of the complexity of managing pods, Kubernetes uses a controller to create, spin out, and destroy pods.

Kubernetes services

Kubernetes services are what makes it possible to have the back-end pods constantly change while the front-end doesn’t track it and continues to provide user experience. A service describes how a group of pods can be accessed via the network. By controlling how pods are accessed, the application can remain consistent for the user even with pods being created and being destroyed on the back end.

Kubernetes policies

Policies dictate what a pod can do and not do within the system. A Kubernetes policy might limit how much CPU, memory, or disk space a pod can take up and prevent it from using too much. The limits within policies depend on what is being restricted. For memory, policies use absolute terms, like 100MB. For CPUs, the limits are in relative terms, like 50%.

Kubernetes Ingress

Setting up Kubernetes and having it function is an important task. Once a developer has it set up, they will need to access clusters externally. There are several tools that can do that, but the most flexible is Ingress. Ingress is an API that manages external access to a cluster via HTTP. Ingress can be complex to set up, but once it is in place, it provides a simple yet robust way to access a cluster’s services externally.

Kubernetes dashboard

Once all other Kubernetes components are in place, it’s important to have a way to manage them all. The Kubernetes dashboard is a web-based UI that allows developers to troubleshoot and manage all cluster resources. The dashboard does need to be installed separately (it isn’t done automatically), but it is simple to set up and use once in place.

Kubernetes Secret

Sometimes companies have information that needs to remain secure. Kubernetes has a feature that is designed to provide an added layer of security for sensitive information. A Kubernetes Secret is a special type of container that has limited accessibility and that Kubernetes understands is sensitive.

A Secret is accessible when necessary to pods in the cluster, but it is protected from all other visibility that could increase security risks. Essentially, a Secret does not limit which users have access to information. Instead, it gives applications only the data they need to function without unlimited access to that data.

Kubectl

A kubectl is a command line interface to manage operations in clusters. This CLI communicates with the Kubernetes API. There is standardized syntax for using kubectl: kubectl [command] [TYPE] [NAME] [flags].

Minikube

Some people need to access Kubernetes on a smaller device, and Minikube is what makes that possible. Minikube is an open-source tool that allows someone to run Kubernetes on a laptop or other local machine. Minikube takes the size and complexities of Kubernetes and shrinks it down to a single-node cluster. Minikube allows developers, as well as IT employees and C-suite executives, to have powerful Kubernetes functionality from a convenient device. Minikube works best with kubectl installed as well.

Kubernetes is primarily designed to create, manage, and deploy applications. How does Kubernetes work to do that? Developers set up Kubernetes, define a cluster, and create nodes. Once those are in place, Kubernetes will create and remove pods as necessary to keep applications running properly for users. To access and manage Kubernetes, developers can use Minikube to access on a local machine, Ingress to access externally, or the dashboard to access other tools.

What does Kubernetes empower companies to do? These are some of the key goals that can be accomplished with Kubernetes:

  • Orchestrate containers across multiple hosts
  • Scale applications
  • Check the health of applications
  • Control and automate deployment
  • Manage and add storage to run processes
  • Maximize hardware space to run enterprise applications
  • Deploy applications anywhere
  • Increase development velocity

There are other projects often discussed with Kubernetes. Each of these is a distinct project that can perform different tasks for developers. These other projects are often confused with Kubernetes or positioned as the opposite choice. But these projects are compatible with Kubernetes.

Kubernetes vs. Docker

Docker came before Kubernetes and even contributed to the creation of Kubernetes. Docker is a tool that allows developers to separate everything needed to run an application into “boxes” that can be stored and opened when needed. Docker is a way to create containers. But once applications are stored in “boxes,” there needs to be a way to manage those containers and to ensure that the right ones are stored and opened.

That is why Kubernetes was created. Kubernetes was designed to be a tool to organize and manage container applications, like those that Docker creates. Kubernetes was designed to lead containers to the right spots, which is why the system is named for the Greek word for “captain.”

Kubernetes and Docker are not competitors. Kubernetes can be used with or without Docker because they both provide distinct roles for managing container-based applications. But they can also be used together for powerful impact. Kubernetes can use Docker to deploy and manage container-based applications.

Kubernetes vs. Mesos

Mesos is another project often discussed with Kubernetes. Mesos is an Apache project that was created as a response to Google Borg. Mesos also provides container orchestration services, but it’s also designed to be a program that can run non-containerized components, in addition to the containerized ones. Because of its broad scope, many programs can run within Mesos, including Kubernetes

The adoption of Kubernetes is generally a part of a larger program to either transform a company’s application environment to the cloud or to become more “cloud-native” by delivering new applications and services. ServiceNow has multiple ties to help with this transformation that can help your company find the right Kubernetes approach, such as change management, observability, and cloud management.

Change management

The adoption of Kubernetes goes hand-in-hand with modern development practices, such as DevOps. Large and regulated organizations must still focus on governance as part of the release process for updates in the cloud. But there are added complications: a wide range of disparate components and the speed and transient nature of code delivery in a container-based architecture.

We connect the work and services managed in ServiceNow with the development process to allow for automated change management, end-to-end KPIs and flow metric insights, and auditing. We also have a specific component of ITSM Pro called DevOps Config that adds controls and insights specifically around the wide range of configuration activities that occur as part of delivering a service in the cloud that can benefit your company with the implementation of Kubernetes.

Observability

Kubernetes works to improve the function of an application and the way a company manages container-based applications. But there are challenges that organizations face to be able to have the observability necessary to operate successfully. ServiceNow Cloud Observability offers the observability and insights into processes and configurations that can ease the implementation of Kubernetes for your organization.

Cloud Management

As your organization uses the cloud more, it’s important to have cloud management in place. IT Operations Management from ServiceNow can help make this possible while also implementing Kubernetes.

Learn more about ITOM and how it can help your company implement and utilize Kubernetes to manage your applications.

Capabilities that expand with your business

Expand DevOps success across the enterprise. Take the risk out of going fast and minimize friction between IT operations and development.
Loading spinner
Contact
Demo