Crée from scratch un VPC, subnet, 1 virtual machine (Controller), 2 virtural machine (Worker) sur aws en utilisant Terraform et installer kubernetes sur chaqu'une de vm en utilisant Ansible.
Installer Python3
Install my-project with npm
Pour Mac
- brew tap hashicorp/tap
- brew install hashicorp/tap/terraform
Pour linux
- wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
- echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
- sudo apt update && sudo apt install terraform
Pour windows install Binary download for Windows
installation Ansible
- pip3 install --include-deps ansible
Pour build l'architecture aws :
Pour initialisé le projet en terraform
Terraform init
Pour crée un plan d'éxécution
Terraform plan
Pour appliqué
Terraform apply
Pour se connecté à une instance
ssh -i ansible "<key.pem>" user@ipv4
Pour installer les dépendances sur chacune des instances
ansible-playbook -i hosts role-kube.yml --verbose
-
Anisble/group_vars :
-
Ansible/roles/cni/tasks: Pour l'installation de kubctl
-
Ansible/roles/cni/vars : Pour l'installation de python2.7
-
Ansible/roles/common/ : Pour installer le setup kubernetes cluster
-
Ansible/roles/master : Pour installer le master node de kubernetes
-
Ansible/roles/node : Pour joindre le node master au node worker de kubernetes
-
Ansible/roles/os-facts : Pour installer les dépendences dans les différents Os
-
Ansible/roles/runtime :
-
Anisble/ansible.cfg: Fichier de configuration
-
Ansible/hosts : ip connection pour le master et les workers
-
Ansible/requirements.yml : Pour Build Kubernetes cluster avec kubeadm
-
Ansible/role-kube.yml : pour installer toutes les dépendences
-
Terraform/compute.tf : Instances ec2 aws
-
Terraform/network.tf : [VPC, Subnet, route_table, security_groups]
-
Terraform/variables.tf : les variables utiliser pour les différents fichiers précédents