Instal·lació de Kubernetes a Debian 10

Introducció

Kubernetes és un sistema per la gestió de contenidors, orientat al desplegament de microserveis i aplicacions sobre una infraestructura de clúster, amb un node mestre (master) i un o més nodes treballadors (worker o minion).

Veurem com és la instal·lació a Debian 10 d’un entorn mínim de Kubernetes per aprendre i practicar.  Com a requeriment previ, hem de tenir instal·lat Docker, tal com vam veure en un tutorial anterior.

Instal·lació de kubectl

Kubectl és l’eina de línia de comandes de Kubernetes, i permet gestionar els clústers i desplegar aplicacions. Per instal·lar-ho, com de costum, comencem actualitzant l’index de paquets:

sudo apt-get update

A continuació, instal·lem el paquets necessaris per accedir al repositori de Kubernets :

sudo apt install -y apt-transport-https ca-certificates curl

Descarreguem la clau pública de Google Cloud:

sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

Afegim el repopsitori de Kubernetes :

echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

Tornem a actualitzar l’índex amb el nou repositori:

sudo apt-get update

I instal·lem kubectl:

sudo apt-get install -y kubectl

Instal·lació de minikube

Minikube és una eina que ens permet tenir un entorn de Kubernetes en un únic node, per aprendre o per desenvolupar i provar aplicacions.  Els requeriments mínims per executar-la són:

  • 2 CPUs
  • 2 GB de memòria
  • 20 GB d’espai a disc
  • Connexió a Internet
  • Un gestor de contenidors, com Docker

Per instal·lar-ho, descarreguem el paquet:

curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb

I l’instal·lem:

sudo dpkg -i minikube_latest_amd64.deb

Inicialització del clúster minikube i desplegament d’una aplicació

Arrenquem el clúster de minikube :

minikube start

La sortida serà similar a això :

* minikube v1.23.2 on Debian 10.4
* Using the docker driver based on user configuration
* Starting control plane node minikube in cluster minikube
* Pulling base image ...
* Downloading Kubernetes v1.22.2 preload ...
    > gcr.io/k8s-minikube/kicbase: 355.39 MiB / 355.40 MiB  100.00% 3.08 MiB p/
    > preloaded-images-k8s-v13-v1...: 511.84 MiB / 511.84 MiB  100.00% 4.37 MiB
* Creating docker container (CPUs=2, Memory=2200MB) ...
* Preparing Kubernetes v1.22.2 on Docker 20.10.8 ...
  - Generating certificates and keys ...
  - Booting up control plane ...
  - Configuring RBAC rules ...
* Verifying Kubernetes components...
  - Using image gcr.io/k8s-minikube/storage-provisioner:v5
* Enabled addons: storage-provisioner, default-storageclass
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

Accedim al clúster amb kubectl :

minikube kubectl -- get po -A

Que ens mostrarà una sortida com aquesta:

    > kubectl.sha256: 64 B / 64 B [--------------------------] 100.00% ? p/s 0s
    > kubectl: 44.73 MiB / 44.73 MiB [-------------] 100.00% 10.44 MiB p/s 4.5s
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-78fcd69978-wsl6l           1/1     Running   0             107s
kube-system   etcd-minikube                      1/1     Running   0             119s
kube-system   kube-apiserver-minikube            1/1     Running   0             119s
kube-system   kube-controller-manager-minikube   1/1     Running   0             2m
kube-system   kube-proxy-55674                   1/1     Running   0             107s
kube-system   kube-scheduler-minikube            1/1     Running   0             119s
kube-system   storage-provisioner                1/1     Running   1 (76s ago)   118s

Podem crear un alies que ens facilitarà escriure les comandes a la consola:

alias kubectl="minikube kubectl --"

Podem crear un desplegament d’exemple i publicar-lo pel port 8080:

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.4
kubectl expose deployment hello-minikube --type=NodePort --port=8080

Podem comprovar l’estat amb:  

kubectl get services hello-minikube

Que ens mostrarà quelcom similar a això: 

NAME             TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hello-minikube   NodePort   10.98.108.46   <none>        8080:30601/TCP   48s

Redirigim al port 8090 amb la comanda: 

kubectl port-forward service/hello-minikube 8090:8080

I ja podem accedir a l’aplicació amb la URL  http://ipdelservidor:8090/

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *