2019-06-20 17:44:22 +03:00
# Introduction
This repository is intended for demo-ing the manual install of kubernetes's components on both master and worker nodes.
2019-06-20 21:56:42 +03:00
It should be able to get you to a working single master (insecure) kubernetes setup on a set of VMs
2019-06-20 22:44:37 +03:00

2019-06-20 21:56:42 +03:00
2019-06-20 17:44:59 +03:00
# prerequisites
- vagrant
2019-06-27 19:53:09 +03:00
- cfssl
- cfssljson
2019-06-20 17:44:59 +03:00
2019-06-27 19:53:09 +03:00
You can run the following command to check if you've missed something (don't worry, it won't install anything on your machine)
2019-06-20 21:56:42 +03:00
```sh
2019-06-27 19:53:09 +03:00
ansible-playbook kthw-playbook.yml -t check_local_prerequisites -l localhost
2019-06-20 21:56:42 +03:00
```
2019-06-20 17:44:59 +03:00
2019-06-28 01:42:55 +03:00
# Root Certificate Authority
Kubernetes components implement a certificates based authentication mecanism (non revoked client certficates signed with a server's key are valid credentials).
Etcd also implements such a mecanism.
We need a root Certificate Authority to :
* enable authentication to the kubernetes api server.
* enable authentication to the etcd cluster.
To generate it, run
```sh
ansible-playbook kthw-playbook.yml -t generate_the_root_ca -l localhost
```
# Infrastructure
- provision the vms the kubernetes cluster will be running on:
```sh
vagrant up
```
# CRI-compatible container runtime
- setup a CRI-compatible container runtime on these VMs
2019-06-20 17:44:59 +03:00
```sh
2019-06-27 19:53:09 +03:00
ansible-playbook kthw-playbook.yml -t install_container_runtime -l k8s_nodes
2019-06-20 17:44:59 +03:00
```
2019-06-28 01:42:55 +03:00
# Etcd cluster
- download etcd
2019-06-20 21:56:42 +03:00
```sh
2019-06-28 01:42:55 +03:00
ansible-playbook kthw-playbook.yml -t download_etcd -l etcd_peers
2019-06-20 21:56:42 +03:00
```
2019-06-28 01:42:55 +03:00
# Kubernetes Control Plane
- download kubelet, kube-proxy, apiserver, scheduler and native controllers on the master nodes
2019-06-20 21:56:42 +03:00
```sh
2019-06-28 01:42:55 +03:00
ansible-playbook kthw-playbook.yml -t download_kubernetes_control_plane -l masters
2019-06-20 21:56:42 +03:00
```
2019-06-28 01:42:55 +03:00
# Kubernetes worker nodes
- download kubelet & kube-proxy on the worker nodes
2019-06-20 21:56:42 +03:00
```sh
2019-06-28 01:42:55 +03:00
ansible-playbook kthw-playbook.yml -t download_kubernetes_worker_components -l workers
2019-06-27 19:53:09 +03:00
```
2019-06-28 01:42:55 +03:00