VTWO-14496 : continue configuring machine

This commit is contained in:
mbenabda
2019-06-20 20:56:42 +02:00
parent ee481cc7d4
commit 89fee4b7aa
12 changed files with 180 additions and 11 deletions

View File

@@ -1,17 +1,62 @@
# Introduction
This repository is intended for demo-ing the manual install of kubernetes's components on both master and worker nodes.
It should be able to get you to a working single master kubernetes setup on a set of vagrant boxes
It should be able to get you to a working single master (insecure) kubernetes setup on a set of VMs
```plantuml
@startuml
database etcd [
etcd
]
package "master-node" {
[api-server] -> etcd
[kubelet] --> [api-server] : watch
[kubelet] --> [container-runtime] : run & watch
[scheduler] --> [api-server] : watch
[scheduler] --> [api-server] : apply
[controller-manager] --> [api-server] : watch
[controller-manager] --> [api-server] : apply
}
package "worker-node-1" {
[kubelet ] --> [api-server] : watch
[kubelet ] --> [container-runtime ] : run & watch
}
package "worker-node-2" {
[kubelet ] --> [api-server] : watch
[kubelet ] --> [container-runtime ] : run & watch
}
@enduml
```
# prerequisites
- vagrant
- the scp vagrant plugin : `vagrant plugin install vagrant-scp`
- [the GNU parallel CLI](https://www.gnu.org/software/parallel/)
- [jq](https://stedolan.github.io/jq/)
# setup
- start the vms
- run `vagrant up` to start the vms. This will create a master node and 2 worker nodes on your host's network
- run `./scripts/show_cluster_config | tee cluster.config`
- copy the cluster configuration to the nodes:
```sh
vagrant up
./scripts/copy_file_to_nodes cluster.config
```
- install the jq CLI on the nodes so they can read the config
```sh
./scripts/run_script_on_nodes install_jq_cli
```
- setup a container runtime
@@ -21,5 +66,19 @@ vagrant up
- download kubernetes
```sh
./scripts/run_script_on_nodes download_node_binaries
./scripts/download_kubernetes_binaries $(cat cluster.config | jq -r ".kubernetes_version") ./kubernetes
```
- download etcd
```sh
./scripts/download_etcd_binaries $(cat cluster.config | jq -r ".etcd3_version") ./etcd3
```
- copy kubelet & kube-proxy on the worker nodes
```sh
./scripts/copy_file_to_nodes ./kubernetes/workers worker
```
- copy kubelet, proxy, apiserver, scheduler and native controllers binaries to the master nodes
```sh
./scripts/copy_file_to_nodes ./etcd3 master
```