Déployez l'application Guestbook sur votre cluster TKG et explorez Kubernetes.

Le déploiement de l'application Guestbook est un moyen utile d'explorer Kubernetes. L'application utilise les objets Déploiement et ReplicaSet pour déployer des espaces dans l'espace de noms par défaut et expose ces espaces à l'aide de services. Les données Guestbook sont conservées de sorte que si l'application tombe en panne, les données restent disponibles. Ce didacticiel utilise une réclamation de volume persistant dynamique (PVC) pour demander des ressources de stockage persistant sans connaître les détails du stockage sous-jacent. Le stockage utilisé pour la PVC est alloué à partir du quota de stockage pour l'Espace de noms vSphere. Par défaut, les conteneurs sont éphémères et sans état. Pour les charges de travail avec état, une approche courante consiste à créer une réclamation de volume persistant (PVC). Vous pouvez utiliser une réclamation de volume persistant pour monter les volumes persistants et accéder au stockage. La demande provisionne dynamiquement un objet de volume persistant et un disque virtuel correspondant. La réclamation est liée au volume persistant. Lorsque vous supprimez la réclamation, l'objet de volume persistant correspondant et le disque de machine virtuelle provisionné sont supprimés.

Conditions préalables

Vérifiez les rubriques suivantes :

Procédure

  1. Connectez-vous au cluster TKG.
  2. Créez l'espace de noms Guestbook.
    kubectl create namespace guestbook
    Vérifiez :
    kubectl get ns
  3. Créez un contrôle d'accès basé sur les rôles à l'aide de la PSP privilégiée par défaut.
    kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated
    Note : Si vous avez besoin d'une sécurité renforcée, appliquez une liaison RoleBinding sur l'espace de noms Guestbook.
  4. Vérifiez la classe de stockage ou créez-en une.
    Pour vérifier une classe de stockage existante :
    kubectl describe namespace
    Ou, si vous disposez d'autorisations d'administrateur vSphere :
    kubectl get storageclass
  5. Créez les fichiers YAML de réclamations de volume persistant (PVC) qui utilisent la classe de stockage.
    Utilisez les fichiers YAML suivants. Mettez à jour chaque élément avec le nom de la classe de stockage.
  6. Appliquez les PVC Guestbook au cluster.
    kubectl apply -f redis-leader-pvc.yaml -n guestbook
    kubectl apply -f redis-follower-pvc.yaml -n guestbook
  7. Vérifiez l'état des PVC.
    kubectl get pvc,pv -n guestbook
    Les PVC et les volumes persistants (PV) sont répertoriées et disponibles pour utilisation.
    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
  8. Créez les fichiers Guestbook YAML.
  9. Déployez l'application Guestbook dans son espace de noms.
    kubectl apply -f . --namespace guestbook
  10. Vérifiez la création des ressources Guestbook.
    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
  11. Accédez à la page Web Guestbook à l'aide de l'adresse External-IP de l'équilibrage de charge service/guestbook-frontend, qui est 10.19.15.99 dans cet exemple.
    Vous voyez l'interface Web de Guestbook et vous pouvez entrer des valeurs dans la base de données Guestbook. Si vous redémarrez l'application, les données sont persistantes.