Let’s start at the beginning, Kinda. The obvious question to start is, what is it? Kubernetes is an open source cloud system for automating deployments, scaling, managing containerized applications, but what does that really mean?
Before we dive too deep into the resources, we want to highlight what there is to learn in this short guide. We suggest going through these in the order mentioned below:
- Intro: This section give a brief overview of Kubernetes so you can start to conceptualize what it is, where it came from, and what it does.
- Kubernetes Basics: Here we give you a place to start to learn how to work in Kubernetes. This section includes helpful guides and tutorials that, if followed in order, can put you on the right track to understanding how to use Kubernetes.
- Resources: This is a section that is meant for you to refer back to after you have completed the other sections. It contains links to the official documentation as well as to the community so you can stay informed.
Intro: History, Quick Familiarization, and Introduction to Kubernetes
Below you’ll find an excerpt explaining the history of Kubernetes from Wikipedia to give you some context into how the project got started before you start moving through the resource list.
What is Kubernetes?
Kubernetes (commonly stylized as K8s) is an open-source container-orchestration system for automating deployment, scaling and management of containerized applications. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation. It aims to provide a “platform for automating deployment, scaling, and operations of application containers across clusters of hosts”. It works with a range of container tools, including Docker, since its first release.
Where Does the Word Come From and What Does it Mean?
Think of Kubernetes as your captain helping you navigate the deep ocean of cloud computing and containerized applications.
Kubernetes (κυβερνήτης, Greek for “governor”, “helmsman” or “captain”) was founded by Joe Beda, Brendan Burns and Craig McLuckie, who were quickly joined by other Google engineers including Brian Grant and Tim Hockin, and was first announced by Google in mid-2014. Its development and design are heavily influenced by Google’s Borg system,and many of the top contributors to the project previously worked on Borg. The original codename for Kubernetes within Google was Project Seven, a reference to Star Trek character Seven of Nine that is a “friendlier” Borg. The seven spokes on the wheel of the Kubernetes logo are a nod to that codename.
Kubernetes v1.0 was released on July 21, 2015. Along with the Kubernetes v1.0 release, Google partnered with the Linux Foundation to form the Cloud Native Computing Foundation (CNCF) and offered Kubernetes as a seed technology. On March 6, 2018, Kubernetes Project reached ninth place in commits at GitHub, and second place in authors and issues to the Linux kernel.
The Illustrated Children’s Guide to Kubernetes
This short video explains the broad concepts of Kubernetes in a way that anyone can understand in a visual and fun way. Even if you’re already familiar with the basic concepts of Kubernetes, this video is still worth watching to gain a different perspective.
Introduction to Key Terminology
Before you dive into the more in-depth resources, it’s important to understand the terminology associated with kubernetes.
Introduction to Kubernetes from Digital Ocean:
Kubernetes is a powerful open-source system, initially developed by Google, for managing containerized applications in a clustered environment. It aims to provide better ways of managing related, distributed components and services across varied infrastructure.
In this guide, we’ll discuss some of Kubernetes’ basic concepts. We will talk about the architecture of the system, the problems it solves, and the model that it uses to handle containerized deployments and scaling.
Follow the link below to read the full list of important terminology from Digital Ocean.
Kubernetes Basics: Learn the Kubernetes model through interactive examples
The following section is a list of resources for you to get started using Kubernetes. Going through each resource in order will give a good understanding of the basics so you can continue to learn at your own pace.
Hands-on introduction to Kubernetes (Interactive)
This is a hands-on introduction to Kubernetes by the OpenShift Team. The introduction provides you with examples that you can work with.
Learn the Kubernetes Very Basics
This tutorial provides a walkthrough of the basics of the Kubernetes cluster orchestration system. Each module contains some background information on major Kubernetes features and concepts, and includes an interactive online tutorial. These interactive tutorials let you manage a simple cluster and its containerized applications for yourself.
Using the interactive tutorials, you can learn to:
- Deploy a containerized application on a cluster
- Scale the deployment
- Update the containerized application with a new software version
- Debug the containerized application
The tutorials use Katacoda to run a virtual terminal in your web browser that runs Minikube, a small-scale local deployment of Kubernetes that can run anywhere. There’s no need to install any software or configure anything; each interactive tutorial runs directly out of your web browser itself.
Read the full tutorial: https://kubernetes.io/docs/tutorials/kubernetes-basics/
Kubernetes Architecture Model
Below is a simple visualization of the Kubernetes Architecture model from the Kubernetes Github Page to help give you a picture of how it is organized.
Step by step guide to get started
From the: Hobby Kube Github page
This guide answers the question of how to setup and operate a fully functional, secure Kubernetes cluster on a cloud provider such as Hetzner Cloud, DigitalOcean or Scaleway. It explains how to overcome the lack of external ingress controllers, fully isolated secure private networking and persistent distributed block storage.
Be aware, that the following sections might be opinionated. Kubernetes is an evolving, fast paced environment, which means this guide will probably be outdated at times, depending on the author’s spare time and individual contributions. Due to this fact contributions are highly appreciated.
This guide is accompanied by a fully automated cluster setup solution in the shape of well structured, modular Terraform recipes. Links to contextually related modules are spread throughout the guide, visually highlighted using the Terraform icon.
Access the full guide and get started using Kubernetes through the link: https://github.com/hobby-kube/guide
Resources & Help
The Official Kubernetes Documentation
This is the official documentation from kubernetes.io. Keep this as a reference while you’re moving through the guides and walkthroughs. Here is the link: https://kubernetes.io/docs/home/?path=users&persona=app-developer&level=foundational
The Official Kubernetes Community Page on Github
This is the official Kubernetes community. Here you can contribute to the community and learn from other people working with Kubernetes.
Kubernetes Offical Slack Channel
Kubernetes Official Dev Group
This is the official Google developer group for Kubernetes, become part of the conversation and stay informed of important changes. https://groups.google.com/forum/#!forum/kubernetes-dev
DigitalOcean Kubernetes is designed for developers and businesses that want a simple way to deploy and manage container workloads in the cloud.
Kubernetes master node services are free. Costs for applications that are deployed to Kubernetes are based on usage of Droplet worker nodes, load balancers, and storage.
Get Started with DigitalOcean Kubernetes:
From the thenewstack.io:
The concept of monitoring a distributed systems environment is completely different from monitoring a client/server network, for a reason that becomes retroactively obvious once it’s discovered. The thing you are monitoring — whose performance, resilience, and security are important to your organization — is bigger than any one processor that runs any individual part of it. So monitoring a server or watching a network address conveys far less relevant information for distributed systems and microservices than it did before.
Five Monitoring Tools: https://thenewstack.io/5-tools-monitoring-kubernetes-scale-production/
Helpful CLI Tools
This is a breakdown of helpful CLI tools that can really increase the efficiency of managing Kubernetes. https://dev.to/joehobot/few-helpful-cli-tools-for-managing-kubernetes–372d
A great list of CI tools from Weaveworks. The list highlights the most popular tools and explains the pros and cons of each.
While it’s true that Kubernetes is complex to say the least, if you follow the resources in this guide you will have a solid base in the system. Go through the guides thoroughly and then keep referring to this list for the resources as you progress. Get involved in the Kubernetes development community as much as you can and have fun coding!