Distribuire l'applicazione Guestbook nel cluster TKG ed esplorare Kubernetes.

La distribuzione dell'applicazione Guestbook è un modo utile per esplorare Kubernetes. L'applicazione utilizza gli oggetti Deployment e ReplicaSet per distribuire pod nello spazio dei nomi predefinito ed espone questi pod utilizzando Services. I dati di Guestbook sono persistenti in modo che, se l'applicazione diventa inattiva, i dati rimangano. In questo tutorial viene utilizzata una richiesta volume persistente (PVC) per richiedere risorse di storage persistenti senza conoscere i dettagli dello storage sottostante. Lo storage utilizzato per la PVC viene allocato al di fuori della quota di storage per Spazio dei nomi vSphere. I container sono temporanei e senza stato per impostazione predefinita. Per i carichi di lavoro con stato, un approccio comune consiste nel creare una richiesta di volume persistente (PVC). È possibile utilizzare una PVC per montare i volumi persistenti e lo storage di accesso. La richiesta esegue il provisioning dinamico di un oggetto volume persistente e di un disco virtuale corrispondente. La richiesta è associata al volume persistente. Quando si elimina la richiesta, vengono eliminati anche l'oggetto volume persistente corrispondente e il disco virtuale ottenuto in provisioning.

Prerequisiti

Esaminare i seguenti argomenti:

Procedura

  1. Accedere al cluster TKG.
  2. Creare lo spazio dei nomi di Guestbook.
    kubectl create namespace guestbook
    Verificare:
    kubectl get ns
  3. Creare il controllo degli accessi basato sui ruoli utilizzando il PSP privilegiato predefinito.
    kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated
    Nota: Se è necessaria una protezione maggiore, applicare un RoleBinding allo spazio dei nomi di Guestbook.
  4. Verificare la classe di storage o crearne una.
    Per verificare una classe di storage esistente:
    kubectl describe namespace
    Oppure, se si dispone delle autorizzazioni di amministratore vSphere:
    kubectl get storageclass
  5. Creare i file YAML delle richieste di volumi persistenti dinamici (PVC) che fanno riferimento alla classe di storage.
    Utilizzare i seguenti file YAML. Aggiornarli tutti con il nome della classe di storage.
  6. Applicare le PVC di Guestbook al cluster.
    kubectl apply -f redis-leader-pvc.yaml -n guestbook
    kubectl apply -f redis-follower-pvc.yaml -n guestbook
  7. Verificare lo stato delle PVC.
    kubectl get pvc,pv -n guestbook
    Le PVC e i volumi persistenti (PV) vengono elencati e sono disponibili per l'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
  8. Creare i file YAML di Guestbook.
  9. Distribuire l'applicazione Guestbook nel relativo spazio dei nomi.
    kubectl apply -f . --namespace guestbook
  10. Verificare la creazione delle risorse del 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. Accedere alla pagina Web di Guestbook utilizzando l'indirizzo External-IP del bilanciamento del carico service/guestbook-frontend, che in questo esempio è 10.19.15.99.
    Viene visualizzata l'interfaccia Web di Guestbook ed è possibile immettere valori nel database di Guestbook. Se si riavvia l'applicazione, i dati vengono conservati.