Kubernetes

From PKC
Jump to navigation Jump to search

Kubernetes is a container orchestration system, whose documentation can be found here[1]. It is often abbreviated as K8s. The way to think about Kubernetes is to treat it as a networked computer, and its main programming language is called YAML, which is a nested data structure of key-value pairs. In other words, Kubernetes is a kind of programming environment that is made of named services, and networked ports as endpoints.

Technical Challenges

The main approach to configure Kubernetes is to use yaml file that specified key-value pairs of resources and more specifically relations between endpoints. However, this approach is like programming complex mathematical formula using just low level machine instructions. It is very easy to make mistakes. Some solutions such as Helm is available, but the essence of Kubernetes is its service composability, which is not trivial for most people who are newly introduced to Kubernetes, and that is what PKC DevOps will be dedicated to reduce the complexity of learning and using Kubernetes.

How to learn Kubernetes

Some of the more useful books in learning Kubernetes can be found here:

  1. Cloud Native DevOps with Kubernetes[2]
  2. NGINX Cookbook: Advanced Recipes for High-Performance Load Balancing[3]
  3. Awesome Kubernetes[4]: A Github Project that contains lots of Kubernetes references
  4. Cloud Native Technology Open Course (Chinese), [5] 云原生技术公开课,阿里云大学
    1. Duing lecture 4[6] of the above mentioned course: 云原生技术公开课, one critical assumption about Kubernetes is revealed: All of the Design Patterns in Kubernetes is to enable Decoupling and Reuse (To attain system-level Composability).
  5. Kubectl Proxy vs NodePort vs LoadBalancer vs Ingress
  6. Keycloak as an Identity Provider & OpenID Connect Token Issuer
  7. Flannel的两种模式解析(VXLAN、host-gw)
  8. A Systematic explanation of Kubernetes by Sean Wingert

Installing Kubernetes

For instructions to install Kubernetes, please see this page: K8s Installation.

Installing Kubernetes with Ansible

Ansible is ideal for automating the process of installing Kubernetes software, partially because Kubernetes is a technology for managing replicated computing services in a network cluster. There are many resources that explains how to use Ansible for installing Kubernetes, we provide links to the following tutorials to get started:

  1. Create Kubernetes Cluster Using Ansible Playbook Automation
  2. Installing Kubernetes with Ansible on AWS
  3. Kubernetes setup using Ansible and Vagrant
  4. Video/Kubernetes Cluster Installation using Ansible

Transcluded from Kubernetes and MediaWiki

Core Platform Team/Initiative/MediaWiki on Kubernetes/Epics, User Stories, and Requirements

Deploying MediaWiki to Kubernetes 101 (Youtube video)

|wZmARQxAims}}

The project source code can be found here[7]:

In terms of how to install Kubernetes, see Installing Kubernetes.



References

  1. Kuberenetes Official Site, https://kubernetes.io/docs/home/, last accessed: July 20, 2020
  2. Arundel, John; Domingus, Justin (2019). Cloud Native DevOps with Kubernetes. O'Reilly Media. ISBN 978-1-492-04076-7. 
  3. DeJohghe, Derek (2021). NGINX Cookbook:Advanced Recipes for High-Performance Load Balancing. O'Reilly Media. ISBN 978-1-492-08702-1. 
  4. Ramit Surana, https://github.com/ramitsurana/awesome-kubernetes, last accessed: August 13, 2021
  5. CNCF x Alibaba, https://edu.aliyun.com/roadmap/cloudnative, last accessed: August 13, 2021
  6. CNCF x Alibaba, Lecture 4, 理解 Pod 和容器设计模式, https://edu.aliyun.com/lesson_1651_13079, last accessed: August 13, 2021
  7. Jeena Huneidi, https://github.com/rakugama/emwcon-demo, last accessed: July 20, 2021

Related Pages