Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cc:temp [2022/11/11 23:01]
florin.mihalache [Cluster Kubernetes în AWS]
cc:temp [2022/11/11 23:12] (current)
florin.mihalache [Deployments & virtual machines în AWS]
Line 2: Line 2:
  
 ===== Deployments & virtual machines în AWS ===== ===== Deployments & virtual machines în AWS =====
-În cadrul acestui laborator veți învăța ​+În cadrul acestui laborator veți învăța ​cum să creați mașini virtuale în cadru AWS (Amazon Web Services), care reprezintă o platformă care furnizează servicii de tip cloud computing, baze de date, stocare de fișiere, device farms, etc.
  
 Pentru acest laborator presupunem că avem deja Terraform instalat de la laboratorul precedent. Dacă nu aveți Terraform instalat, puteți urma pașii din laboratorul anterior. Pentru acest laborator presupunem că avem deja Terraform instalat de la laboratorul precedent. Dacă nu aveți Terraform instalat, puteți urma pașii din laboratorul anterior.
Line 219: Line 219:
 } }
 </​code>​ </​code>​
 +
 +Mai avem doar de creat un fișier ''​main.tf''​ cu următoarea configurație:​
 +<​code>​
 +provider "​kubernetes"​ {
 + ​host ​                  = module.eks.cluster_endpoint
 + ​cluster_ca_certificate = base64decode(module.eks.cluster_certificate_authority_data)
 +}
 + 
 +provider "​aws"​ {
 + ​region = var.region
 +}
 + 
 +data "​aws_availability_zones"​ "​available"​ {}
 + 
 +locals {
 + ​cluster_name = "​cc-eks-${random_string.suffix.result}"​
 +}
 + 
 +resource "​random_string"​ "​suffix"​ {
 + ​length ​ = 8
 + ​special = false
 +}
 +</​code>​
 +
 +Pentru a afișa câteva informații legate de infrastructura noastră avem nevoie de câteva outputs. Așa cum am învățat data trecută, facem un fișier separat în care definim acest outputs:
 +<​code>​
 +output "​cluster_id"​ {
 + ​description = "EKS cluster ID"
 + ​value ​      = module.eks.cluster_id
 +}
 + 
 +output "​cluster_endpoint"​ {
 + ​description = "​Endpoint for EKS control plane"
 + ​value ​      = module.eks.cluster_endpoint
 +}
 + 
 +output "​cluster_security_group_id"​ {
 + ​description = "​Security group ids attached to the cluster control plane"
 + ​value ​      = module.eks.cluster_security_group_id
 +}
 + 
 +output "​region"​ {
 + ​description = "AWS region"​
 + ​value ​      = var.region
 +}
 + 
 +output "​cluster_name"​ {
 + ​description = "​Kubernetes Cluster Name"
 + ​value ​      = local.cluster_name
 +}
 +</​code> ​
 +
 +Rulăm comenzile obișnuite pentru a crea infrastructura. Observați ca sunt foarte multe resurse care urmează să se construiască.
 +
 +In cazul in care ați realizat ca lipsește ceva (nu am definit niciunde ce versiuni ale provider-ilor vrem să folosim), best practices recomandă să avem un fișier numit ''​terraform.tf''​ care să conțină această configurație:​
 +<​code>​
 +terraform {
 + ​required_providers {
 +   aws = {
 +     ​source ​ = "​hashicorp/​aws"​
 +     ​version = "~> 4.15.0"​
 +   }
 + 
 +   ​random = {
 +     ​source ​ = "​hashicorp/​random"​
 +     ​version = "~> 3.1.0"
 +   }
 + 
 +   tls = {
 +     ​source ​ = "​hashicorp/​tls"​
 +     ​version = "~> 3.4.0"
 +   }
 + 
 +   ​cloudinit = {
 +     ​source ​ = "​hashicorp/​cloudinit"​
 +     ​version = "~> 2.2.0"
 +   }
 + 
 +   ​kubernetes = {
 +     ​source ​ = "​hashicorp/​kubernetes"​
 +     ​version = "~> 2.12.1"​
 +   }
 + }
 +}
 +</​code>​
 +
 +Asteptați ca planul să se termine de rulat sș verificați infrastructura creată în AWS (o să dureze în jur de 15-20 minute). Apoi, pentru a ne conecta la cluster-ul nostru proaspăt creat de Kubernetes, folosim următoarea comandă:
 +<code bash>
 +aws eks --region $(terraform output -raw region) update-kubeconfig \
 +    --name $(terraform output -raw cluster_name)
 +</​code>​
 +
 +Verificați conexiunea cu următoarea comandă: ''​kubectl cluster-info''​
 +
 +În acest moment avem un cluster configurat în AWS EKS și suntem conectați la el. Orice comandă de kubectl rulată o să fie executată pe cluster-ul nostru.
 +
 +
cc/temp.1668200471.txt.gz · Last modified: 2022/11/11 23:01 by florin.mihalache
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0