Implemente la aplicación del libro de visitas en el clúster de TKG 2 y explore Kubernetes.
La implementación de la aplicación del libro de visitas es un método útil para explorar Kubernetes. La aplicación utiliza los objetos Deployment y ReplicaSet para implementar pods en el espacio de nombres predeterminado, y expone estos pods mediante Services. Los datos del libro de visitas se guardan para no perderlos si la aplicación deja de funcionar. En este tutorial, se utiliza una notificación de volumen persistente (Persistent Volume Claim, PVC) dinámica para solicitar recursos de almacenamiento persistentes sin conocer los detalles del almacenamiento subyacente. El almacenamiento que se emplea para la PVC se asigna a partir de la cuota de almacenamiento del espacio de nombres de vSphere. De forma predeterminada, los contenedores son efímeros y no tienen estado. Para las cargas de trabajo con estado, un método habitual consiste en crear una notificación de volumen persistente (Persistent Volume Claim, PVC). Puede utilizar una PVC para montar los volúmenes persistentes y acceder al almacenamiento. La solicitud aprovisiona dinámicamente un objeto de volumen persistente y un disco virtual coincidente. La notificación está enlazada al volumen persistente. Cuando esta notificación se elimina, se eliminan también el objeto de volumen persistente y el disco virtual aprovisionado correspondientes.
Requisitos previos
Revise los siguientes temas:
Procedimiento
- Inicie sesión en el clúster de TKG.
- Cree el espacio de nombres del libro de visitas.
kubectl create namespace guestbook
Compruebe lo siguiente:
kubectl get ns
- Cree un control de acceso basado en funciones mediante la instancia de PSP con privilegios predeterminada.
kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated
Nota: Si se requiere más seguridad, aplique un objeto RoleBinding en el espacio de nombres del libro de visitas.
- Compruebe la clase de almacenamiento o cree una.
Para comprobar una clase de almacenamiento existente:
kubectl describe namespace
O bien, si tiene permisos de administrador de vSphere:
kubectl get storageclass
- Cree los archivos YAML de las notificaciones de volumen persistente dinámicas que hacen referencia a la clase de almacenamiento.
Utilice los siguientes archivos YAML. Actualice cada uno con el nombre de la clase de almacenamiento.
- Aplique las PVC del libro de visitas al clúster.
kubectl apply -f redis-leader-pvc.yaml -n guestbook
kubectl apply -f redis-follower-pvc.yaml -n guestbook
- Compruebe el estado de las PVC.
kubectl get pvc,pv -n guestbook
Las PVC y los volúmenes persistentes (persistent volumes, PV) se enumeran y están disponibles para su uso.
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/redis-follower-pvc Bound pvc-37b72f35-3de2-4f84-be7d-50d5dd968f62 2Gi RWO tkgs-storage-class 66s
persistentvolumeclaim/redis-leader-pvc Bound pvc-2ef51f31-dd4b-4fe2-bf4c-f0149cb4f3da 2Gi RWO tkgs-storage-class 66s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS
persistentvolume/pvc-2ef51f31-dd4b-4fe2-bf4c 2Gi RWO Delete Bound guestbook/redis-leader-pvc tkgs-storage-class
persistentvolume/pvc-37b72f35-3de2-4f84-be7d 2Gi RWO Delete Bound guestbook/redis-follower-pvc tkgs-storage-class
- Cree los archivos YAML del libro de visitas.
Usar los siguientes archivos YAML:
- Implemente la aplicación del libro de visitas en su espacio de nombres.
kubectl apply -f . --namespace guestbook
- Compruebe la creación de los recursos del libro de visitas.
kubectl get all -n guestbook
NAME READY STATUS RESTARTS AGE
pod/guestbook-frontend-deployment-56fc5b6b47-cd58r 1/1 Running 0 65s
pod/guestbook-frontend-deployment-56fc5b6b47-fh6dp 1/1 Running 0 65s
pod/guestbook-frontend-deployment-56fc5b6b47-hgd2b 1/1 Running 0 65s
pod/redis-follower-deployment-6fc9cf5759-99fgw 1/1 Running 0 65s
pod/redis-follower-deployment-6fc9cf5759-rhxf7 1/1 Running 0 65s
pod/redis-leader-deployment-7d89bbdbcf-flt4q 1/1 Running 0 65s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/guestbook-frontend LoadBalancer 10.10.89.59 10.19.15.99 80:31513/TCP 65s
service/redis-follower ClusterIP 10.111.163.189 <none> 6379/TCP 65s
service/redis-leader ClusterIP 10.111.70.189 <none> 6379/TCP 65s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/guestbook-frontend-deployment 3/3 3 3 65s
deployment.apps/redis-follower-deployment 1/2 2 1 65s
deployment.apps/redis-leader-deployment 1/1 1 1 65s
NAME DESIRED CURRENT READY AGE
replicaset.apps/guestbook-frontend-deployment-56fc5b6b47 3 3 3 65s
replicaset.apps/redis-follower-deployment-6fc9cf5759 2 2 1 65s
replicaset.apps/redis-leader-deployment-7d89bbdbcf 1 1 1 65s
- Acceda a la página web del libro de visitas mediante la dirección
External-IP
del equilibrador de carga de service/guestbook-frontend
que, en este ejemplo, es 10.19.15.99
.
Puede ver la interfaz web del libro de visitas y puede introducir valores en la base de datos de dicho libro. Si reinicia la aplicación, los datos se conservan.