====== Kubernetes ======
===== Créer un cluster avec rke =====
Prérequis :
* Un ordinateur (non-ARM) capable de faire fonctionner [[https://github.com/rancher/rke/releases/latest|rke]].
* Deux ou plusieurs ordinateurs où installer le cluster, avec [[docker]] installé
==== Installation de rke ====
$ wget https://github.com/rancher/rke/releases/download/v0.1.11/rke_linux-amd64
$ mv rke_linux-amd64 rke
$ chmod +x rke
$ sudo cp rke /usr/bin/
$ rke
NAME:
rke - Rancher Kubernetes Engine, an extremely simple, lightning fast Kubernetes installer that works everywhere
(...)
==== Créer une configuration de cluster avec rke ====
(source: [[https://hackernoon.com/deploying-kubernetes-on-premise-with-rke-and-deploying-openfaas-on-it-part-1-69a35ddfa507|hackernoon.com]])
$ rke config
[+] Cluster Level SSH Private Key Path [~/.ssh/id_rsa]: ~/.ssh/id_ed25519
[+] Number of Hosts [1]: 2
[+] SSH Address of host (1) [none]: 192.168.1.101
[+] SSH Port of host (1) [22]: 1803
[+] SSH Private Key Path of host (192.168.1.101) [none]:
[-] You have entered empty SSH key path, trying fetch from SSH key parameter
[+] SSH Private Key of host (192.168.1.101) [none]:
[-] You have entered empty SSH key, defaulting to cluster level SSH key: ~/.ssh/id_ed25519
[+] SSH User of host (192.168.1.101) [ubuntu]: simon
[+] Is host (192.168.1.101) a Control Plane host (y/n)? [y]: y
[+] Is host (192.168.1.101) a Worker host (y/n)? [n]: y
[+] Is host (192.168.1.101) an etcd host (y/n)? [n]: y
[+] Override Hostname of host (192.168.1.101) [none]:
[+] Internal IP of host (192.168.1.101) [none]:
[+] Docker socket path on host (192.168.1.101) [/var/run/docker.sock]:
[+] SSH Address of host (2) [none]: 192.168.1.100
[+] SSH Port of host (2) [22]: 1803
[+] SSH Private Key Path of host (192.168.1.100) [none]:
[-] You have entered empty SSH key path, trying fetch from SSH key parameter
[+] SSH Private Key of host (192.168.1.100) [none]:
[-] You have entered empty SSH key, defaulting to cluster level SSH key: ~/.ssh/id_ed25519
[+] SSH User of host (192.168.1.100) [ubuntu]: simon
[+] Is host (192.168.1.100) a Control Plane host (y/n)? [y]: y
[+] Is host (192.168.1.100) a Worker host (y/n)? [n]: y
[+] Is host (192.168.1.100) an etcd host (y/n)? [n]: y
[+] Override Hostname of host (192.168.1.100) [none]:
[+] Internal IP of host (192.168.1.100) [none]:
[+] Docker socket path on host (192.168.1.100) [/var/run/docker.sock]:
[+] Network Plugin Type (flannel, calico, weave, canal) [canal]:
[+] Authentication Strategy [x509]:
[+] Authorization Mode (rbac, none) [rbac]:
[+] Kubernetes Docker image [rancher/hyperkube:v1.11.3-rancher1]:
[+] Cluster domain [cluster.local]:
[+] Service Cluster IP Range [10.43.0.0/16]: 10.100.0.0/16
[+] Enable PodSecurityPolicy [n]:
[+] Cluster Network CIDR [10.42.0.0/16]: 10.110.0.0/16
[+] Cluster DNS Service IP [10.43.0.10]: 10.100.0.10
[+] Add addon manifest URLs or YAML files [no]:
Ça crée un fichier ( ''cluster.yml'' ), reprenant toutes ces informations.
==== Avant de déployer ====
Il faut faire un [[swapoff]] sur les hosts :
$ sudo swapoff -a
Il faut vérifier qu'on peut accéder aux hosts avec une clé SSH.