SysAdmin Nazareno

Despliegue de un cluster de kubernetes

PracticaImg

  • Elige un método de instalación para crear un cluster de k8s con tres nodos (un controlador y dos workers), puedes usar kubeadm, k3s o cualquier otra opción equivalente que encuentres
  • Describe en la tarea los pasos principales de la instalación y configuración del cluster
  • Configura kubectl adecuadamente para gestionar el cluster desde tu máquina, no desde el nodo controlador
  • Realiza un despliegue de la aplicación del ejemplo 8 del curso: https://github.com/iesgn/kubernetes-storm/tree/master/unidad3/ejemplos-3.2/ejemplo8
  • Comprueba que es posible escalar a varias réplicas el despliegue del componente letschat y funciona correctamente el componente ingress

El escenario que generaremos para la practica serà el siguiente Vagrantfile, en el se contempla el controlador y los dos workers.

Una vez levantado el escenario con vagrant up nos conectaremos al controlador:

fran@debian:~/vagrant/kubernete$ vagrant ssh controller

Ejecutaremos el siguiente comando el cual realizará una instalación automática de k3s:

vagrant@controller:~$ curl -sfL https://get.k3s.io | sh -
[INFO]  Finding release for channel stable
[INFO]  Using v1.21.1+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.21.1+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.21.1+k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s

Una vez instalado podremos obtener información de los nodos:

vagrant@controller:~$ sudo kubectl get nodes
NAME         STATUS   ROLES                  AGE   VERSION
controller   Ready    control-plane,master   15s   v1.21.1+k3s1

Parámetros necesarios para los workers

Necesitaremos la INTERNAL-IP que podremos obtener de la salida del siguiente comando:

vagrant@controller:~$ sudo kubectl get nodes -o wide
NAME         STATUS   ROLES                  AGE   VERSION        INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                       KERNEL-VERSION    CONTAINER-RUNTIME
controller   Ready    control-plane,master   32s   v1.21.1+k3s1   192.168.1.11   <none>        Debian GNU/Linux 10 (buster)   4.19.0-16-amd64   containerd://1.4.4-k3s2

Para vincular los nuevos nodos con el controlador necesitaremos además de la ip de controller su token de verificación:

vagrant@controller:~$ sudo cat /var/lib/rancher/k3s/server/node-token
K10e01ce6e4004c6be864616c9289679d18c275036799c05b8d273761d1c369b625::server:3a535319fd4bef7eb1d90af1832b6d86

Instalación de k3s en los workers

La siguiente acción que realizaremos se hará de igual manera en ambos workers y consistira en añadire tanto la ip y el token obtenidos anteriormente a variables de entorno:

vagrant@worker1:~$ k3s_url="https://192.168.1.11:6443"
vagrant@worker1:~$ k3s_token="K10e01ce6e4004c6be864616c9289679d18c275036799c05b8d273761d1c369b625::server:3a535319fd4bef7eb1d90af1832b6d86"

Ejecutaremos ahora la instalación de k3s haciendo uso de las nuevas variables para vincularlo con el controlador:

vagrant@worker1:~$ curl -sfL https://get.k3s.io | K3S_URL=${k3s_url} K3S_TOKEN=${k3s_token} sh
[INFO]  Finding release for channel stable
[INFO]  Using v1.21.1+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.21.1+k3s1/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.21.1+k3s1/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-agent-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s-agent.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s-agent.service
[INFO]  systemd: Enabling k3s-agent unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s-agent.service → /etc/systemd/system/k3s-agent.service.
[INFO]  systemd: Starting k3s-agent

Una vez realizada la instalación en ambas maquinas podremos comprobar que estan operativas chequeando los nodos disponibles desde el controlador.

vagrant@controller:~$ sudo kubectl get nodes
NAME         STATUS   ROLES                  AGE     VERSION
worker1      Ready    <none>                 96s     v1.21.1+k3s1
controller   Ready    control-plane,master   6m24s   v1.21.1+k3s1
worker2      Ready    <none>                 22s     v1.21.1+k3s1

Gestionar el cluster desde fuera del escenario.

Deberemos de instalar kubectl en nuestra maquina anfitriona:

fran@debian:~/vagrant/kubernete$ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   154  100   154    0     0    939      0 --:--:-- --:--:-- --:--:--   939
100 45.3M  100 45.3M    0     0  19.8M      0  0:00:02  0:00:02 --:--:-- 25.4M
fran@debian:~/vagrant/kubernete$ sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
[sudo] password for fran: 
fran@debian:~/vagrant/kubernete$ 

Nos iremos a nuestro controlador y copiaremos el archivo /etc/rancher/k3s/k3s.yaml:

vagrant@controller:~$ sudo cat /etc/rancher/k3s/k3s.yaml
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUyTWpNMU56Y3pOREl3SGhjTk1qRXdOakV6TURrME1qSXlXaGNOTXpFd05qRXhNRGswTWpJeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUyTWpNMU56Y3pOREl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFTVjd0dks2WEdwSTN5dWlzMmxqcGUxZ1oySFF0TE9JUUVISGRrYUNOYU4KUHd5UHVxNGwyeXVGbXZJbDBwdzhJWnVTV09CeFB6a3QzeFdsNXRGdjZMRk1vMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVXREMjloZUI0K3E3R2x2SGRvaEttCjBRbE9VdlV3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUliVTQ0UFdqZkt3VEcvVytkY3RuN0N3Mm1hdG53ZlEKV05OK2VtV3I2eUV4QWlFQXN0WWlTTTNmMm1FMlkrdFRrVllNTmt4eFZ2U3ZtMEFtMVV1THU2djZKY289Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    server: https://127.0.0.1:6443
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrRENDQVRlZ0F3SUJBZ0lJZnRvakZuYnNCOW93Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOakl6TlRjM016UXlNQjRYRFRJeE1EWXhNekE1TkRJeU1sb1hEVEl5TURZeApNekE1TkRJeU1sb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJBczNFMXY1UEY1TmlCd0UKVTFtOGQ5emI0Ui9LeTBCUUxEVldIYUdLdXJ2ZXNXL0EyaXp5dEtQUWU5c0NCZFdIaUNaVEVZR2pEY0V5TFVFYgpsWnFmRzMyalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCUWNRUmJuQWNBNDJDY1VuckxkUEptMkFaeWdlekFLQmdncWhrak9QUVFEQWdOSEFEQkUKQWlCdWloQ1NsTWhOZXB1dGNhOGNlOEcrajJTRmdISFN4Z2hDN1JsaTJFUGRkZ0lnSENaTHY0SytyT0dZaHIrSgpZbkNSZzFUYzN4aG5qSmJUdmRKN3BhNG5ueG89Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUyTWpNMU56Y3pOREl3SGhjTk1qRXdOakV6TURrME1qSXlXaGNOTXpFd05qRXhNRGswTWpJeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUyTWpNMU56Y3pOREl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFTSkZZTXFMRnl4TzlnMWtBTU1xb3VNeWsrQnRrWFNYT0lYNyt2TWhvWjcKOVU1czFMaFJjWVV3M2tZaUhla2x0Sld3Tmc2eUFKellKSnVodXhEL2twYWFvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVUhFRVc1d0hBT05nbkZKNnkzVHlaCnRnR2NvSHN3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU1rajBtbDQza0s1VlVMQXl4NjkwTEJkOXd1STRTN0cKRFVwNGM4Uzc3K0RZQWlFQTVPNnlSNjBtbVAvNytzLzFFaGkxa3JDdlQ2Wk9WQmxuQXBGZ3lORElPZlU9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU1KSXk4VkZjUHJ3Y2JiblNyRmNhN2JnT2JtaURqSjA1OUkzM2psdjBHV0hvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFQ3pjVFcvazhYazJJSEFSVFdieDMzTnZoSDhyTFFGQXNOVllkb1lxNnU5NnhiOERhTFBLMApvOUI3MndJRjFZZUlKbE1SZ2FNTndUSXRRUnVWbXA4YmZRPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=

Crearemos un nuevo fichero de configuración y cambiaremos su ip por la de nuestro controlador para que quede así:

fran@debian:~/vagrant/kubernete$ nano ~/.kube/config
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdGMyVnkKZG1WeUxXTmhRREUyTWpNMU56Y3pOREl3SGhjTk1qRXdOakV6TURrME1qSXlXaGNOTXpFd05qRXhNRGswTWpJeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRjMlZ5ZG1WeUxXTmhRREUyTWpNMU56Y3pOREl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFTVjd0dks2WEdwSTN5dWlzMmxqcGUxZ1oySFF0TE9JUUVISGRrYUNOYU4KUHd5UHVxNGwyeXVGbXZJbDBwdzhJWnVTV09CeFB6a3QzeFdsNXRGdjZMRk1vMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVXREMjloZUI0K3E3R2x2SGRvaEttCjBRbE9VdlV3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQUliVTQ0UFdqZkt3VEcvVytkY3RuN0N3Mm1hdG53ZlEKV05OK2VtV3I2eUV4QWlFQXN0WWlTTTNmMm1FMlkrdFRrVllNTmt4eFZ2U3ZtMEFtMVV1THU2djZKY289Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    server: https://192.168.1.11:6443
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJrRENDQVRlZ0F3SUJBZ0lJZnRvakZuYnNCOW93Q2dZSUtvWkl6ajBFQXdJd0l6RWhNQjhHQTFVRUF3d1kKYXpOekxXTnNhV1Z1ZEMxallVQXhOakl6TlRjM016UXlNQjRYRFRJeE1EWXhNekE1TkRJeU1sb1hEVEl5TURZeApNekE1TkRJeU1sb3dNREVYTUJVR0ExVUVDaE1PYzNsemRHVnRPbTFoYzNSbGNuTXhGVEFUQmdOVkJBTVRESE41CmMzUmxiVHBoWkcxcGJqQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJBczNFMXY1UEY1TmlCd0UKVTFtOGQ5emI0Ui9LeTBCUUxEVldIYUdLdXJ2ZXNXL0EyaXp5dEtQUWU5c0NCZFdIaUNaVEVZR2pEY0V5TFVFYgpsWnFmRzMyalNEQkdNQTRHQTFVZER3RUIvd1FFQXdJRm9EQVRCZ05WSFNVRUREQUtCZ2dyQmdFRkJRY0RBakFmCkJnTlZIU01FR0RBV2dCUWNRUmJuQWNBNDJDY1VuckxkUEptMkFaeWdlekFLQmdncWhrak9QUVFEQWdOSEFEQkUKQWlCdWloQ1NsTWhOZXB1dGNhOGNlOEcrajJTRmdISFN4Z2hDN1JsaTJFUGRkZ0lnSENaTHY0SytyT0dZaHIrSgpZbkNSZzFUYzN4aG5qSmJUdmRKN3BhNG5ueG89Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJlRENDQVIyZ0F3SUJBZ0lCQURBS0JnZ3Foa2pPUFFRREFqQWpNU0V3SHdZRFZRUUREQmhyTTNNdFkyeHAKWlc1MExXTmhRREUyTWpNMU56Y3pOREl3SGhjTk1qRXdOakV6TURrME1qSXlXaGNOTXpFd05qRXhNRGswTWpJeQpXakFqTVNFd0h3WURWUVFEREJock0zTXRZMnhwWlc1MExXTmhRREUyTWpNMU56Y3pOREl3V1RBVEJnY3Foa2pPClBRSUJCZ2dxaGtqT1BRTUJCd05DQUFTSkZZTXFMRnl4TzlnMWtBTU1xb3VNeWsrQnRrWFNYT0lYNyt2TWhvWjcKOVU1czFMaFJjWVV3M2tZaUhla2x0Sld3Tmc2eUFKellKSnVodXhEL2twYWFvMEl3UURBT0JnTlZIUThCQWY4RQpCQU1DQXFRd0R3WURWUjBUQVFIL0JBVXdBd0VCL3pBZEJnTlZIUTRFRmdRVUhFRVc1d0hBT05nbkZKNnkzVHlaCnRnR2NvSHN3Q2dZSUtvWkl6ajBFQXdJRFNRQXdSZ0loQU1rajBtbDQza0s1VlVMQXl4NjkwTEJkOXd1STRTN0cKRFVwNGM4Uzc3K0RZQWlFQTVPNnlSNjBtbVAvNytzLzFFaGkxa3JDdlQ2Wk9WQmxuQXBGZ3lORElPZlU9Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
    client-key-data: LS0tLS1CRUdJTiBFQyBQUklWQVRFIEtFWS0tLS0tCk1IY0NBUUVFSU1KSXk4VkZjUHJ3Y2JiblNyRmNhN2JnT2JtaURqSjA1OUkzM2psdjBHV0hvQW9HQ0NxR1NNNDkKQXdFSG9VUURRZ0FFQ3pjVFcvazhYazJJSEFSVFdieDMzTnZoSDhyTFFGQXNOVllkb1lxNnU5NnhiOERhTFBLMApvOUI3MndJRjFZZUlKbE1SZ2FNTndUSXRRUnVWbXA4YmZRPT0KLS0tLS1FTkQgRUMgUFJJVkFURSBLRVktLS0tLQo=

Cargaremos el fichero con las credenciales:

fran@debian:~/vagrant/kubernete$ export KUBECONFIG=~/.kube/config

Y ya podremos comprobar que tenemos nuestros nodos estan operativos desde nuestra maquina anfitriona:

fran@debian:~/vagrant/kubernete$ kubectl get nodes
NAME         STATUS   ROLES                  AGE     VERSION
worker1      Ready    <none>                 9m21s   v1.21.1+k3s1
controller   Ready    control-plane,master   14m     v1.21.1+k3s1
worker2      Ready    <none>                 8m7s    v1.21.1+k3s1

Despliegue Letschat

Ahora realizaremos un despliegue de la aplicación Letschat, clonaremos el repositorio del centro, el cual aparte del ejemplo que vamos a utilizar posee varios mas sobre la utilizaicon de kubectl:

fran@debian:~/vagrant/kubernete$ git clone https://github.com/iesgn/kubernetes-storm.git

Nos desplazaremos al ejemplo8 citado en la tarea y ejecutaremos el siguiente comando:

fran@debian:~/vagrant/kubernete$ ls
kubectl  kubernetes-storm  Vagrantfile
fran@debian:~/vagrant/kubernete$ cd kubernetes-storm/unidad3/ejemplos-3.2/ejemplo8/
fran@debian:~/vagrant/kubernete/kubernetes-storm/unidad3/ejemplos-3.2/ejemplo8$ kubectl apply -f .
Warning: networking.k8s.io/v1beta1 Ingress is deprecated in v1.19+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
ingress.networking.k8s.io/ingress-letschat created
deployment.apps/letschat created
service/letschat created
deployment.apps/mongo created
service/mongo created

El fichero desplegará varios servicios, pasado unos segundos podremos observar que ya estará todo listo:

fran@debian:~/vagrant/kubernete/kubernetes-storm/unidad3/ejemplos-3.2/ejemplo8$ kubectl get all,ingress
NAME                            READY   STATUS    RESTARTS   AGE
pod/mongo-5c694c878b-d5vjk      1/1     Running   0          6m13s
pod/letschat-7c66bd64f5-vcffj   1/1     Running   5          6m13s

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/kubernetes   ClusterIP   10.43.0.1       <none>        443/TCP          22m
service/letschat     NodePort    10.43.137.91    <none>        8080:31382/TCP   6m13s
service/mongo        ClusterIP   10.43.159.207   <none>        27017/TCP        6m13s

NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mongo      1/1     1            1           6m13s
deployment.apps/letschat   1/1     1            1           6m13s

NAME                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/mongo-5c694c878b      1         1         1       6m13s
replicaset.apps/letschat-7c66bd64f5   1         1         1       6m13s

NAME                                         CLASS    HOSTS              ADDRESS                                   PORTS   AGE
ingress.networking.k8s.io/ingress-letschat   <none>   www.letschat.com   192.168.1.11,192.168.1.117,192.168.1.41   80      6m13s

Servicios desplegados:

  • mongo-deployment, mongo-srv: Despliegue y conexión con una base de datos mongo.
  • letschat-deployment, letschat-srv: Despligue y servicio de la aplicación letschat y su conexión con una base de datos.
  • ingress: Para poder acceder a la apliación mediante un nombre.

Escalado

Para que podamos comprobar el funcionamiento de escalado bastara con ejecutar el siguiente comando:

fran@debian:~/vagrant/kubernete/kubernetes-storm/unidad3/ejemplos-3.2/ejemplo8$ kubectl scale deployment letschat --replicas=10
deployment.apps/letschat scaled

Pasados unos segundos las replicas estaran ya escaladas.

Nota: Deberás de tener en cuenta la capicidad de tu ordenador a la hora de escalar las replicas, ya que el proceso podria suponer demasiado estres en la maquina dando lugar a una relentizacióń o incluso caida de alguna de las máquinas del escenario:

fran@debian:~/vagrant/kubernete/kubernetes-storm/unidad3/ejemplos-3.2/ejemplo8$ kubectl get all
NAME                            READY   STATUS    RESTARTS   AGE
pod/mongo-5c694c878b-d5vjk      1/1     Running   1          10m
pod/letschat-7c66bd64f5-jgj8p   1/1     Running   1          3m4s
pod/letschat-7c66bd64f5-g2hc4   1/1     Running   0          3m4s
pod/letschat-7c66bd64f5-9fxz7   1/1     Running   0          3m4s
pod/letschat-7c66bd64f5-vkz7t   1/1     Running   0          3m4s
pod/letschat-7c66bd64f5-4lcvx   1/1     Running   0          3m4s
pod/letschat-7c66bd64f5-dzlwb   1/1     Running   0          3m4s
pod/letschat-7c66bd64f5-vcffj   1/1     Running   6          10m
pod/letschat-7c66bd64f5-zm8tv   1/1     Running   1          3m4s
pod/letschat-7c66bd64f5-b2pn9   1/1     Running   1          3m4s
pod/letschat-7c66bd64f5-pncx7   1/1     Running   1          3m4s

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
service/kubernetes   ClusterIP   10.43.0.1       <none>        443/TCP          26m
service/letschat     NodePort    10.43.137.91    <none>        8080:31382/TCP   10m
service/mongo        ClusterIP   10.43.159.207   <none>        27017/TCP        10m

NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mongo      1/1     1            1           10m
deployment.apps/letschat   10/10   10           10          10m

NAME                                  DESIRED   CURRENT   READY   AGE
replicaset.apps/mongo-5c694c878b      1         1         1       10m
replicaset.apps/letschat-7c66bd64f5   10        10        10      10m
fran@debian:~/vagrant/kubernete/kubernetes-storm/unidad3/ejemplos-3.2/ej

kubectl get deploy,rs,po -o wide

Componente ingress

Para comprobar que el componente ingress este operativo (recordemos que sirve para poder acceder a la aplicación mediante un nombre) intentaremos acceder nuestra pagina de letschat generada anteriormente, para ello añadiremos la ip a nuestro fichero de hosts y accederemos via web:

fran@debian:~/vagrant/kubernete/kubernetes-storm/unidad3/ejemplos-3.2/ejemplo8$ sudo nano /etc/hosts

192.168.1.11  www.letschat.com

PracticaImg


Fran Madueño

Escrito por Fran Madueño Estudiante de administración de sistemas operativos
(Dos Hermanas, Sevilla).