Kubernetes Installations
- Graduated Projects - Kubernetes (Orchestration)
- Incubating Projects - Prometheus (Monitoring), Fluentd (logging), rkt (Container Runtime), CNI (Networking API), Notary (Security), CoreDNS (Service Discovery), Linkerd (Service Mesh), Helm (Package Management), ...
- Sandbox Projects - Rook (Storage), SPIFFE (Identity Spec), SPIRE(Identity), Open Policy Agent (Policy), CloudEvents (Serverless), Telepresence (Tooling)
CNCF supported k8s OSS distributions
Located: https://github.com/kubernetes repositories
Described: https://github.com/kubernetes/community/blob/master/sig-cluster-lifecycle/README.md#subprojects
- bootkube - tool for launching self-hosted Kubernetes clusters
- kops - run production-grade, highly available, k8s clusters on AWS, GCE or DigitalOcean
- kube-aws - create, update and destroy Kubernetes clusters on AWS, Highly available and scalable k8s clusters backed by multi-AZ deployment and Node Pools
- kube-up - start k8s in GCE, part of Kubernetes
- kubeadm - toolkit that helps you bootstrap a best-practice Kubernetes cluster in an easy, reasonably secure and extensible way, part of Kubernetes
- kubernetes-anywhere - k8s in the cloud
- kubespray - create HA cluster on AWS, GCE, Azure, OpenStack, vSphere or Baremetal
- minikube - run Kubernetes locally, single-node k8s cluster inside a VM/Docker
How to start with Kubernetes
Use your own laptop...
- Minikube - single node, easy, can be docker based (--vm-driver=none) or virtualization needed, addons, mount local dir to pods
- Kubeadm - official Kubernetes tool for installations, multinode, multi distro
- Kubespray - multinode, more complex, many options, HA, enterprise, multi distro
Use Public Cloud...
Many Public Cloud providers has "Kubernetes as a Service", depends on costs...
- AWS (Amazon) - EKS (Amazon Elastic Container Service for Kubernetes)
- Azure (Microsoft) - AKS (Azure Kubernetes Service)
- Google Cloud - GKE (Google Kubernetes Engine)
- https://github.com/kubernetes-incubator/kubespray
- Started by a group of independent developers as "Kargo" project
- Install Production Ready Kubernetes Cluster with HA
- Ansible based
- Kubernetes Incubated project
- Supported distributions: Container Linux by CoreOS, Debian, Ubuntu, CentOS/RHEL 7, Fedora/CentOS Atomic, openSUSE Leap 42.3/Tumbleweed
- Network Plugins: flannel, calico, canal, cilium, contiv, weave
- Many options: https://github.com/kubernetes-incubator/kubespray/tree/master/inventory/sample/group_vars
kubespray
Architecture Diagram
3 VMs, all 3 have etcd installed, all 3 are nodes (running pods), 2 of them run master components
kubespray demo
kubeadm
-
https://kubernetes.io/blog/2016/09/how-we-made-kubernetes-easy-to-install/
-
part of the Kubernetes distribution as of 1.4.0
-
response to criticisms of Kubernetes is hard to install
-
does not provision machines
-
https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/
-
You install Docker and the official Kubernetes packages
-
Select a master host, run kubeadm init
-
This sets up the control plane and outputs a kubeadm join […] command which includes a secure token
-
On each host selected to be a worker node, run the kubeadm join […] command from above
-
Install a pod network
Architecture Diagram
kubeadm demo
Thank you...
Kubernetes Installations
By Petr Ruzicka
Kubernetes Installations
- 1,955