A Beginner's Guide to Kubernetes, Part 5: Conclusion
Updated by Linode Contributed by Linode
NoteThis is the fifth guide in the Beginner’s Guide to Kubernetes series that explains the major parts and concepts of Kubernetes.
In this guide you will learn about networking in Kubernetes and about advanced Kubernetes topics.
Networking
Networking in Kubernetes was designed to make it simple to port existing apps from VMs to containers, and subsequently, Pods. The basic requirements of the Kubernetes networking model are:
- Pods can communicate with each other across Nodes without the use of NAT
- Agents on a Node, like kubelet, can communicate with all of a Node’s Pods
- In the case of Linux, Pods in a Node’s host network can communicate to all other Pods without NAT.
Though the rules of the Kubernetes networking model are simple, the implementation of those rules is an advanced topic. Because Kubernetes does not come with its own implementation, it is up to the user to provide a networking model.
Two of the most popular options are Flannel and Calico.
Flannel is a networking overlay that meets the functionality of the Kubernetes networking model by supplying a layer 3 network fabric, and is relatively easy to set up.
Calico enables networking, and networking policy through the NetworkPolicy API to provide simple virtual networking.
For more information on the Kubernetes networking model, and ways to implement it, consult the cluster networking documentation.
Advanced Topics
There are a number of advanced topics in Kubernetes. Below are a few you might find useful as you progress in Kubernetes:
- StatefulSets can be used when creating stateful applications.
- DaemonSets can be used to ensure each Node is running a certain Pod. This is useful for log collection, monitoring, and cluster storage.
- Horizontal Pod Autoscaling can automatically scale your deployments based on CPU usage.
- CronJobs can schedule Jobs to run at certain times.
- ResourceQuotas are helpful when working with larger groups where there is a concern that some teams might take up too many resources.
Next Steps
Now that you are familiar with Kubernetes concepts and components, you can follow the Getting Started with Kubernetes: Use kubeadm to Deploy a Cluster on Linode guide. This guide provides a hands-on activity to continue learning about Kubernetes.
If you would like to deploy a Kubernetes cluster on Linode for production use, we recommend using one of the following methods instead. These methods are also a much faster way to get a cluster running, and they will also integrate your cluster with some useful Linode plugins:
- How to Deploy Kubernetes on Linode with Rancher
- Use the Linode Terraform Provider
- Try the Linode Kubernetes Engine
More Information
You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.
Join our Community
Find answers, ask questions, and help others.
This guide is published under a CC BY-ND 4.0 license.