Este proyecto utiliza Terraform para crear la infraestructura necesaria para dos instancias EC2 en AWS. Una instancia actúa como el nodo maestro de Kubernetes y la otra como el nodo trabajador. Además, se utiliza Ansible para instalar Docker y Kubernetes en ambas máquinas.
- Terraform
- AWS EC2
- Ansible
- Cuenta de AWS
- Clona este repositorio.
- Crea los archivos
terraform.tfvars
en el directorio raíz de terraform. - Configura tus credenciales de AWS en
terraform/terraform.tfvars
. - Configura la ruta de tus archivos de Ansible en
terraform/main.tf
. - Navega hasta el directorio del proyecto de terraform.
- Ejecuta
terraform init
para inicializar tu entorno de Terraform. - Ejecuta
terraform plan
para ver los cambios que se realizarán en tu infraestructura. - Ejecuta
terraform apply
para crear la infraestructura en AWS.
Una vez que la infraestructura está en su lugar, puedes usar Ansible para instalar Docker y Kubernetes en las instancias EC2, en este caso, Terraform ya lo hace desde el momento que creas la infraestructura. por lo tanto, deberás realizar las siguientes configuraciones:
- Navega en el directorio del nodo maestro de Kubernetes
- Ejecuta el comando
sudo hostnamectl set-hostname K8s-Master
para configurar el nombre del host. - Inicializa el clúster de Kubernetes con el comando
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
. - Configura el entorno de Kubernetes con el comando
mkdir -p $HOME/.kube && sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && sudo chown $(id -u):$(id -g) $HOME/.kube/config
. - Instala el complemento de red de Kubernetes con el comando
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
.
- Navega en el directorio del nodo trabajador de Kubernetes.
- Ejecuta el comando
sudo hostnamectl set-hostname K8s-Worker
para configurar el nombre del host. - Únete al clúster de Kubernetes con el comando
sudo kubeadm join <master-node-ip>:<master-node-port> --token <token> --discovery-token-ca-cert-hash sha256:<hash>
, éste comando lo puedes encontrar como salida del comandosudo kubeadm init --pod-network-cidr=10.244.0.0/16
.
Las contribuciones son bienvenidas. Por favor, abre un issue o pull request para sugerencias o mejoras.
Este proyecto está bajo la licencia MIT.