10.3 C
New York
Monday, April 14, 2025

What is Kubernetes? Scalable cloud-native applications



Another place to look for official Helm charts is the Kubeapps directory, which allows Kubernetes applications to be deployed and installed from within a Kubernetes cluster itself, using a handy web-based interface.

Kubernetes simplifies application resource management

Containers are meant to be immutable; the code and data you put into them isn’t supposed to change. But applications need state, meaning they need a reliable way to deal with data that changes. That’s made all the more complicated by the way containers live, die, and are reborn across the lifetime of an application.

Kubernetes provides abstractions to allow containers and applications to deal with data storage in the same decoupled way as other resources. Many common kinds of storage, from Amazon EBS volumes to plain old NFS shares, can be accessed via Kubernetes storage drivers, called volumes. Normally, volumes are bound to a specific pod, but a volume subtype called a persistent volume (PV) can be used for data that needs to live on independently of any pod.

Containers often need to work with secrets. These are credentials like API keys or service passwords that you don’t want hard-coded into a container or stashed openly on a disk volume. While there are third-party solutions like Docker secrets and HashiCorp Vault, Kubernetes has its own mechanism for natively handling secrets, although it should be configured with care (for instance, by restricting access through RBACs).

Hybrid cloud and multi-cloud deployments

One of the long-standing dreams of cloud computing is to be able to run any application in any cloud, or in any mix of public or private clouds. This isn’t just to avoid vendor lock-in, but also to take advantage of features specific to individual clouds.

For some time, the most common mechanism for keeping multiple clusters in sync with one another across multiple regions and clouds was a Kubernetes SIG project called KubeFed, for Kubernetes Cluster Federation. In a federation, a given application deployment can be kept consistent between multiple clusters, and different clusters can share service discovery so that a back-end resource can be accessed from any cluster. Federations can also be used to create highly available or fault-tolerant Kubernetes deployments, whether or not you’re spanning multiple cloud environments.

However, in September 2023, the KubeFed project was archived. A successor project, Karmada, uses Kubernetes-native APIs to synchronize applications across clusters. It requires no changes to the applications themselves.

Small deployments and edge computing

Kubernetes deployments don’t have to be big to be useful. K3s, for instance, is a tiny Kubernetes deployment—a single 70MB binary—that can run on embedded hardware or low-resource ARM systems (2GB of RAM). Minimal Kubernetes distros have created space for Kubernetes in edge computing—not just in environments with tight hardware constraints, but also minimal or even no external networking.

Where to get Kubernetes

Kubernetes is available in many forms—from open source bits to commercially backed distribution to public cloud service. The best way to figure out where to get Kubernetes is by use case.

  • If you want to do it all yourself: The source code, and pre-built binaries for most common platforms, can be downloaded from the GitHub repository for Kubernetes. If you want to try out a tiny instance of Kubernetes on your own system, you can use Minikube to set up a local cluster on a single machine, or use the K3s distribution.
  • If you’re using Docker: Docker Desktop’s most recent editions come with Kubernetes as a pack-in. This is ostensibly the easiest way for container mavens to get a leg up with Kubernetes, since it comes by way of a product you’re almost certainly already familiar with. (Docker can also use Minikube for deployments.)
  • If you’re deploying on-prem or in a private cloud: Chances are good that any infrastructure you choose for your private cloud has Kubernetes built-in. Standard-issue, certified, supported Kubernetes distributions are available from dozens of vendors.
  • If you’re deploying in a public cloud: The three major public cloud vendors all offer Kubernetes as a service. Google Cloud Platform offers Google Kubernetes Engine. Microsoft Azure offers the Azure Kubernetes Service. And Amazon has added Kubernetes to its existing Elastic Container Service. Managed Kubernetes services are also available from many vendors.

Kubernetes tutorials and certifications

Now that you’ve got the basics under your belt, are you ready to get started with Kubernetes? You might want to start off with the simple tutorials on the Kubernetes project site itself; when you’re ready for something more advanced, check out the list of guides in the awesome-kubernetes repository, which has something for everyone. For migration advice, see “How to succeed with Kubernetes.”

If you feel you have a good handle on how Kubernetes works and you want to demonstrate your expertise to employers, certification may be the way to go. Check out the pair of Kubernetes-related certifications offered jointly by the Linux Foundation and the Cloud Native Computing Foundation:

  • Certified Kubernetes Administrator: Seeks to “provide assurance that CKAs have the skills, knowledge, and competency to perform the responsibilities of Kubernetes administrators,” including application lifecycle management, installation, configuration, validation, cluster maintenance, and troubleshooting.
  • Certified Kubernetes Application Developer: Certifies that “users can design, build, configure, and expose cloud native applications for Kubernetes.”

The certification exams are $445 each. There are also accompanying training courses, which can serve as a structured way to learn more about Kubernetes.

Related Articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Latest Articles