Ricerca nel sito web

Come configurare un cluster Kubernetes su AWS utilizzando Kops


Kops è abituato a far apparire il cluster Kubernetes nel modo più semplice possibile. È uno strumento a riga di comando utilizzato per creare cluster Kubernetes. Kops supporta ufficialmente AWS dove GCP, DigitalOcean e OpenStack sono in versione beta. Kops può anche generare file Terraform per la configurazione del cluster richiesta. Non solo è possibile creare facilmente un cluster utilizzando Kops, ma anche modificare, eliminare e aggiornare la versione di Kubernetes nel cluster.

In questo articolo vedremo i passaggi per creare un cluster Kubernetes con 1 master e 1 nodo di lavoro su AWS. Prima di procedere, si presuppone che tu abbia già familiarità con Kubernetes

Prerequisiti

  1. Account AWS (crealo se non ne hai uno).
  2. Istanza Ubuntu 18.04 EC2 (fai clic qui per informazioni su come creare un'istanza EC2 su AWS ).
  3. Bucket S3 (fai clic qui per imparare a creare un bucket S3 su AWS).
  4. Nome di dominio (cercare \Come acquistare un nome di dominio su AWS?\ per comprendere i passaggi per creare un dominio su AWS).
  5. Ruolo IAM con autorizzazioni sufficienti/admin(Fai clic qui per imparare a creare un ruolo IAM su AWS).

Che cosa faremo?

  1. Accedi ad AWS.
  2. Controlla il bucket S3, ruolo IAM.
  3. Collega il ruolo IAM all'istanza.
  4. Installa Kubectl e Kops sull'istanza EC2.
  5. Convalida le regole del recordset e una zona ospitata.
  6. Crea un cluster Kubernetes utilizzando Kops.
  7. Elimina il cluster.

Accedi ad AWS

Fai clic qui per andare alla pagina di accesso in cui puoi inserire le tue credenziali per accedere all'account.

Dopo aver effettuato correttamente l'accesso al tuo account AWS, vedrai la console di gestione AWS principale come segue.

Controlla il bucket S3, ruolo IAM

Per creare un cluster utilizzando Kops, abbiamo bisogno di un bucket S3 in cui Kops memorizzerà tutta la configurazione del cluster.

Controlla il bucket che vuoi utilizzare per archiviare le configurazioni di Kops.

Verifica se il ruolo IAM che intendi utilizzare dispone di autorizzazioni sufficienti/admin. Kops non ha bisogno di autorizzazioni di amministratore, se non sei molto a conoscenza di AWS IAM e delle autorizzazioni e non vuoi cadere in problemi di accesso puoi utilizzare l'autorizzazione di amministratore.

Collega il ruolo IAM all'istanza

Una volta ottenuto il ruolo, collegalo all'istanza EC2 che utilizzerai per eseguire i comandi kops. Vai a EC2 --> seleziona l'istanza EC2 --> fai clic su Azioni --> Sicurezza --> Modifica ruolo IAM.

Seleziona il ruolo IAM e salva le modifiche.

Installa Kubectl e Kops sull'istanza EC2

Fino a questo punto, hai un bucket S3 e un'istanza EC2 con il ruolo richiesto ad esso collegato. Ora accedi all'istanza EC2 che utilizzerai per creare un cluster utilizzando Kops.

Il passaggio successivo consiste nell'installare Kubectl sull'istanza EC2.

Esegui i seguenti comandi per installare kubectl su Ubuntu Server

curl -LO "https://dl.k8s.io/release/$(curl -L -s 

curl -LO "https://dl.k8s.io/$(curl -L -s 

echo "$(<kubectl.sha256) kubectl" | sha256sum --check

sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

mkdir -p ~/.local/bin/kubectl

mv ./kubectl ~/.local/bin/kubectl

Controlla la versione di kubectl usando il seguente comando.

kubectl version --client

Ora sei pronto per installare Kops sulla stessa istanza EC2.

Controlla se kops esiste, in caso contrario installalo usando i seguenti comandi su Ubuntu Server.

kops

curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64

chmod +x kops-linux-amd64

sudo mv kops-linux-amd64 /usr/local/bin/kops

Ora dovresti avere kops sul server.

kops

Convalida le regole del recordset e una zona ospitata.

Kops ha bisogno dei record DNS richiesti per creare un cluster.

Qui ho una seconda zona ospitata in route53.

Inoltre, ho copiato i server NS del mio SOTTODOMINIO  nel dominio PARENT in Route53.

Vai a Route53 --> Zone ospitate --> Vai alla zona ospitata predefinita principale-- > Controlla il recordset e verificane i valori.

Crea un cluster Kubernetes utilizzando Kops

Ora siamo tutti pronti per creare un cluster. Prima di creare un cluster, vediamo cosa otteniamo quando proviamo a elencare i cluster.

kops get clusters

Il comando precedente avrà esito negativo in quanto richiede un bucket S3 come parametro.

kops get clusters --state s3://kops.devopslee.com

Poiché non esistono cluster esistenti, il comando non elencherà nulla.

Se non vuoi dare il nome del bucket s3 come parametro al comando, puoi esportare il suo valore nel terminale nella variabile \KOPS_STATE_STORE\.

export KOPS_STATE_STORE=s3://kops.devopslee.com

Questa volta non è necessario specificare il bucket S3 nel comando

kops get clusters

Ora, proviamo a creare un cluster con-

  1. 1 nodo master con l'istanza di tipo t2.medium
  2. 1 nodo di lavoro con l'istanza di tipo t2.micro
  3. Zona di disponibilità come us-east-1a,us-east-1b,us-east-1c

kops create cluster --name kops.devopslee.com --state s3://kops.devopslee.com --cloud aws --master-size t2.medium --master-count 1 --master-zones us-east-1a --node-size t2.micro --node-count 1 --zones us-east-1a,us-east-1b,us-east-1c

Il comando precedente darà errori poiché non abbiamo specificato alcuna chiave ssh.

Controlla se hai una coppia di chiavi nella tua istanza.

ls -l ~/.ssh/

Se non disponi di alcuna coppia di chiavi, puoi crearla utilizzando il seguente comando.

ssh-keygen

Questa volta, se esegui di nuovo il comando create, fallirà perché S3 è stato aggiornato dal comando precedente con la configurazione del cluster anche se non è riuscito a causa dell'assenza della chiave ssh.

kops create cluster --name kops.devopslee.com --state s3://kops.devopslee.com --cloud aws --master-size t2.medium --master-count 1 --master-zones us-east-1a --node-size t2.micro --node-count 1 --zones us-east-1a,us-east-1b,us-east-1c  --ssh-public-key ~/.ssh/id_rsa.pub

Quindi, cancelliamo la configurazione del cluster e ricreamo il cluster con la chiave ssh.

kops delete cluster --name kops.devopslee.com --state s3://kops.devopslee.com --yes

Questa volta stiamo passando la chiave pubblica ssh durante la creazione del cluster.

kops create cluster --name kops.devopslee.com --state s3://kops.devopslee.com --cloud aws --master-size t2.medium --master-count 1 --master-zones us-east-1a --node-size t2.micro --node-count 1 --zones us-east-1a,us-east-1b,us-east-1c  --ssh-public-key ~/.ssh/id_rsa.pub

Innanzitutto, verrà creata la configurazione del cluster.

Ora abbiamo la configurazione del cluster. Se vogliamo apportare delle modifiche alla configurazione possiamo farlo, altrimenti possiamo procedere con la creazione del cluster. Puoi andare al bucket S3 e vedere una configurazione del cluster al suo interno.

Questa volta vedrai che il cluster è disponibile.

kops get cluster

Ma le risorse non sono ancora state create.

Per creare immediatamente le risorse, dobbiamo aggiornare il cluster con --yes come opzione del comando.

kops update cluster --name kops.devopslee.com --yes

La creazione del cluster richiederà del tempo. Puoi convalidare lo stato del cluster utilizzando il seguente comando \validate\.

kops validate cluster --wait 10m

Una volta create tutte le risorse del cluster, il cluster sarà pronto per l'uso.

Una volta che le istanze EC2 sono pronte, kops aggiorna la zona ospitata con i record A contenenti gli IP del master.

Ora sei pronto per utilizzare il cluster. Per controllare i pod esistenti nello spazio dei nomi predefinito, esegui il seguente comando.

kubectl  get pods

Puoi persino controllare i pod da tutti gli spazi dei nomi

kubectl  get pods -A

Controlla i nodi nel cluster.

kubectl  get nodes

Per recuperare maggiori dettagli sui nodi, usa -o wide nel comando.

kubectl  get nodes -o wide

Elimina il cluster

Se non hai più bisogno del cluster, puoi eliminarlo facilmente usando Kops.

kops get cluster

Devi solo eseguire un singolo comando.

kops delete cluster --name kops.devopslee.com --state s3://kops.devopslee.com --yes

Kops eliminerà tutte le risorse che ha creato per il cluster per renderlo completamente funzionante

Conclusione

In questo articolo abbiamo visto tutti i passaggi per creare un cluster Kubernetes utilizzando Kops. Abbiamo visto che Kops ha bisogno di un dominio per creare un cluster completamente funzionante. Abbiamo visto quanto sia facile creare ed eliminare un cluster utilizzando Kops.