Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.
Go to file
mbenabda 89fee4b7aa VTWO-14496 : continue configuring machine 2019-06-20 21:36:16 +02:00
scripts VTWO-14496 : continue configuring machine 2019-06-20 21:36:16 +02:00
.gitignore VTWO-14496 : continue configuring machine 2019-06-20 21:36:16 +02:00
README.md VTWO-14496 : continue configuring machine 2019-06-20 21:36:16 +02:00
Vagrantfile VTWO-14496 : continue configuring machine 2019-06-20 21:36:16 +02:00

README.md

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 (insecure) kubernetes setup on a set of VMs

@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

setup

  • 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:

./scripts/copy_file_to_nodes cluster.config
  • install the jq CLI on the nodes so they can read the config
./scripts/run_script_on_nodes install_jq_cli
  • setup a container runtime
./scripts/run_script_on_nodes install_container_runtime
  • download kubernetes
./scripts/download_kubernetes_binaries $(cat cluster.config | jq -r ".kubernetes_version") ./kubernetes
  • download etcd
./scripts/download_etcd_binaries $(cat cluster.config | jq -r ".etcd3_version") ./etcd3
  • copy kubelet & kube-proxy on the worker nodes
./scripts/copy_file_to_nodes ./kubernetes/workers worker
  • copy kubelet, proxy, apiserver, scheduler and native controllers binaries to the master nodes
./scripts/copy_file_to_nodes ./etcd3 master