20180503_talk_2
20180503_talk_2
KubeSpray Introduction
k8s
Goals
- Run app
- Keep these running
- Give resources
- Connecting them together
- Publishing services
Requirements
- Etcd
- Masters
- Workers
- Container Runtime
- Container Network
- PKI
- Storage
Deployments
Divivsive
* Golang vs CfgMgnt
* Orchestration approcaches (do your own)
* CfgMgmt divisions
* Not invented here syndrome
* Reliability and maintenance
Ecosystem
* Kops (cloud 1st, BareMetal now)
* KubeAdm
* Comercials
Kubespray
Overview
- Lifecycle manager
- Flexible and composable
- Prod ready
- Community driven since 2015
Ansible playbook
- Comprehensive approach with playbooks concepts
- Covers all componenents
- Readable
- Flexible
- Actively maintained
Approach
- Containerize everything
- Container engine option (Dokcer or rkt)
- Depoyment options (container-static-pods, Kubeadm, SelfHosted)
Community
Acvite & Helpful: 250+ contributors
Ci
- 20+ cluster topolgies tested
- Deploys real clusters
- Runs n GCE and DO
Workflows
Deployment
* Bootstrap OS
* Preinstall (?)
* Container Runtime
* ETCD
* PKI
* Kube Masters
* Kube workers
* Network
* DNS
Upgrade
* Change ansible value
* Apply changes
Notes
Upgrade concerns: Drain nodes before maintenance
HA
- ETCD
- KubeAPIServer
- Runs Nnginx on every master servers (Or Cloud LBs of available)
Scale tips
- IOs for ETCD
Next steps
- More cloud providers support
- K8s e2e tests
- Auto-scaling
- More add-on providers besides Helm