- recréer une instance EC2 complète (40 min)
- test: voir l'ensemble des ressources provisionnées dans la console AWS
- améliorations (+ 30 min)
- extraire
KEYNAME
dans une variable d'environnement - récupérer l'ip publique dans une output value
- récupérer le DNS public dans une output value
Voir ces pages documentation Hashicorp sur les instances et sur les VPC - augmenter le nombre d'instances avec
count
- test: se connecter en SSH aux multiples instances avec leur DNS
- extraire
- installer docker
- utiliser
newgrp
pour éviter de se déconnecter après l'installation
Voir cette réponse sur StackOverflow - test: lancer un container →
docker run -d hello-world
- utiliser
- installer k8s
- utiliser des instances Ubuntu plutôt que Amazon Linux (#1)
- exposer les ports
- tests: en tant qu'utilisateur standard (!= root)
-
docker ps -a
-
kubeadm version
-
service kubelet status
-
kubectl version
-
- créer le cluster depuis le master node
- sur quelle adresse IP le master écoute-t-il ?
- IP publique ? on pourrait avec
$ public_ip=$(curl http://169.254.169.254/latest/meta-data/public-ipv4) $ kubeadm init --apiserver-advertise-address="$public_ip"
- IP privée ? Plus sécurisé, et ça ne devrait pas poser de problème car nos VM sont toutes dans le même VPC.
- tests:
- Vérifier la configuration créée
sudo ls -l /etc/kubernetes/admin.conf
- Vérifier la configuration créée
- sur quelle adresse IP le master écoute-t-il ?
- différencier le master et les worker dans
main.tf
- rejoindre le cluster depuis les worker nodes
- Tests de connectivité
- vérifier le firewall
sudo ufw status → inactive
- ajouter manuellement une règle
All ICMPv4
et ping entre les différentes VM - vérifier que les VM peuvent se pinger sur leur IP publique/privée
- vérifier le firewall
- avoir un token prédéterminé pour pouvoir faire
kubeadm join --token=XXX
Voir l'issue #9 - quelle stratégie pour que les workers rejoignent le master ?
Voir l'issue #10
- Tests de connectivité
- accéder au cluster depuis l'extérieur
Voir l'issue #7- comment sécuriser ce point d'entrée avec un certificat ?
- Nécessite une clé SSH pré-existante pour se connecter
- Nécessite une variable d'environnement
TF_VAR_AWS_KEYNAME
($env:TF_VAR_AWS_KEYNAME
avec Windows Powershell)
$env:TF_VAR_AWS_KEYNAME = 'XXXXXXXX'
terraform apply -var token=$(.\Get-K8sToken.ps1)