Difference between revisions of "Kubernetes"

From PKC
Jump to navigation Jump to search
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
[https://kubernetes.io Kubernetes] is a [[container orchestration system]], whose documentation can be found here<ref>Kuberenetes Project, https://kubernetes.io/docs/home/, last accessed: July 20, 2020</ref>.
[https://kubernetes.io Kubernetes] is a [[container orchestration system]], whose documentation can be found here<ref>Kuberenetes Official Site, https://kubernetes.io/docs/home/, last accessed: July 20, 2020</ref>. 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 [[port]]s as [[endpoint]]s.
 
==History and Technical Challenges==
An official documentary video is available here<ref>{{:Video/Kubernetes: The Documentary PART 1}}</ref>. The main approach to configure Kubernetes is to use [[yaml]] file that specified [[key-value pair]]s of resources and more specifically relations between [[endpoint]]s. 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:
# [[Kasten]] provides online training and badges [https://learning.kasten.io/?hsCtaTracking=e5db0ce9-bd37-409d-8244-be2d1698de83%7C9f78775d-0c38-4838-a2c8-7377c2995a94 Learning Kasten/Kubernetes]
# Cloud Native DevOps with Kubernetes<ref>{{:BOOK/Cloud Native DevOps with Kubernetes}}</ref>
# NGINX Cookbook: Advanced Recipes for High-Performance Load Balancing<ref>{{:BOOK/NGINX Cookbook}}</ref>
# Awesome Kubernetes<ref>[https://www.linkedin.com/in/ramitsurana/ Ramit Surana], https://github.com/ramitsurana/awesome-kubernetes, last accessed: August 13, 2021</ref>: A Github Project that contains lots of Kubernetes references
# Cloud Native Technology Open Course (Chinese), <ref>CNCF x Alibaba, https://edu.aliyun.com/roadmap/cloudnative, last accessed: August 13, 2021</ref> [https://edu.aliyun.com/roadmap/cloudnative 云原生技术公开课],阿里云大学
## Duing lecture 4<ref>CNCF x Alibaba, Lecture 4, 理解 Pod 和容器设计模式, https://edu.aliyun.com/lesson_1651_13079, last accessed: August 13, 2021</ref> 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]]).
# [[Video/Kubernetes Kubectl Proxy vs NodePort vs LoadBalancer vs Ingress|Kubectl Proxy vs NodePort vs LoadBalancer vs Ingress]]
# [[Video/Keycloak as an Identity Provider & OpenID Connect Token Issuer|Keycloak as an Identity Provider & OpenID Connect Token Issuer]]
# [https://mp.weixin.qq.com/s/bQsnXFEWkCbJ8OPf_76ljA Flannel的两种模式解析(VXLAN、host-gw)]
# [[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}}


=Transcluded from [[Kubernetes and MediaWiki]]=
=Transcluded from [[Kubernetes and MediaWiki]]=
Line 6: Line 28:
<noinclude>
<noinclude>
=References=
=References=
<references/>
==Related Pages==
{{#ask: [[Is documentary on::Kubernetes]]
|format=table
|mainLabel=Content Link
}}
[[Category:Kubernetes]]
[[Category:Kubernetes]]
[[Category:Container orchestration system]]
</noinclude>
</noinclude>

Latest revision as of 16:35, 26 February 2022

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.

History and Technical Challenges

An official documentary video is available here[2]. 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. Kasten provides online training and badges Learning Kasten/Kubernetes
  2. Cloud Native DevOps with Kubernetes[3]
  3. NGINX Cookbook: Advanced Recipes for High-Performance Load Balancing[4]
  4. Awesome Kubernetes[5]: A Github Project that contains lots of Kubernetes references
  5. Cloud Native Technology Open Course (Chinese), [6] 云原生技术公开课,阿里云大学
    1. Duing lecture 4[7] 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).
  6. Kubectl Proxy vs NodePort vs LoadBalancer vs Ingress
  7. Keycloak as an Identity Provider & OpenID Connect Token Issuer
  8. Flannel的两种模式解析(VXLAN、host-gw)
  9. 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[8]:

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. Honeypot, ed. (Jan 22, 2022). Kubernetes: The Documentary [PART 1]. local page: Honeypot. 
  3. Arundel, John; Domingus, Justin (2019). Cloud Native DevOps with Kubernetes. O'Reilly Media. ISBN 978-1-492-04076-7. 
  4. DeJohghe, Derek (2021). NGINX Cookbook:Advanced Recipes for High-Performance Load Balancing. O'Reilly Media. ISBN 978-1-492-08702-1. 
  5. Ramit Surana, https://github.com/ramitsurana/awesome-kubernetes, last accessed: August 13, 2021
  6. CNCF x Alibaba, https://edu.aliyun.com/roadmap/cloudnative, last accessed: August 13, 2021
  7. CNCF x Alibaba, Lecture 4, 理解 Pod 和容器设计模式, https://edu.aliyun.com/lesson_1651_13079, last accessed: August 13, 2021
  8. Jeena Huneidi, https://github.com/rakugama/emwcon-demo, last accessed: July 20, 2021

Related Pages

Content Link