workshop

Developers vs Managers: dal conflitto alla collaborazione

workshop

Come sai siamo Amazon Consulting Partner, e seppur AWS ha annunciato Fargate e l’integrazione su ECS di Kubernetes,
volevamo anche uno strumento per il deployment dei nostri cluster che ci desse comunque un minimo di gestione e di libertà.

Kubernetes Operations è uno dei tanti progetti che si è messo in luce per la creazione e l’automatizzazione di cluster con focus iniziale proprio su AWS.

Siamo rimasti piacevolmente sorpresi dalla sua facilità e dall’adattabilità al mondo AWS, dai bilanciatori ELB fino ai volumi EBS.

Con un “semplice comando”

kops create cluster --cloud=aws --master-zones=eu-west-1a,eu-west-1b,eu-west-1c --zones=eu-west-1a,eu-west-1b,eu-west-1c --node-count=3 --topology private --networking weave --node-size=t2.medium --master-size=t2.medium --vpc=vpc-xxxx --bastion="true" --cloud-labels "Owner=alemazz" --ssh-public-key ~/.ssh/k8s.pub --target=terraform --state s3://xxx-ideato-it-state-store --yes --out terraform/kops --name xxxx.ideato.it

Siamo in grado di creare un cluster privato in HA, su multiple AZ dietro SSH Bastion con stato persistente e salvato su S3.

La ciliegina sulla torta, è il supporto a Terraform che tramite gli switch

--target=terraform --out terraform/kops

permette di generare un template terraform, con cui usare i classici comandi

terraform plan

per il dry-run e

terraform apply

per applicare le modiche.

Avendo abbracciato da tempo i principi di Infrastructure as Code, abbiamo deciso di usare Terraform perché ci mette in grado di fare versioning, mantenere e consegnare al cliente il codice infrastrutturale del suo cluster ed ora, grazie a Kubernetes Operations, tutto questo è ancora più semplice da gestire.