Stellen Sie die Guestbook-Anwendung in Ihrem TKG-Cluster bereit und erkunden Sie Kubernetes.

Das Bereitstellen der Guestbook-Anwendung ist eine nützliche Methode zum Erkunden von Kubernetes. Die Anwendung verwendet Bereitstellungs- und ReplicaSet-Objekte, um Pods im Standard-Namespace bereitzustellen und diese Pods mithilfe von Diensten verfügbar zu machen. Guestbook-Daten sind dauerhaft, sodass die Daten beim Ausfall der Anwendung beibehalten werden. Dieses Lernprogramm verwendet die dynamische Beanspruchung eines dauerhaften Volumes (Persistent Volume Claim, PVC), um dauerhafte Speicherressourcen anzufordern, ohne die Details des zugrunde liegenden Speichers zu kennen. Der Speicher, der für das PVC verwendet wird, wird aus dem Speicherkontingent für den vSphere-Namespace zugewiesen. Container sind standardmäßig flüchtig und statusfrei. Ein gängiger Ansatz bei statusbehafteten Arbeitslasten besteht darin, eine Beanspruchung eines dauerhaften Volumes (Persistent Volume Claim, PVC) zu erstellen. Mit einem PVC können Sie die dauerhaften Volumes mounten und auf den Speicher zugreifen. Die Anforderung stellt dynamisch ein dauerhaftes Volume-Objekt und eine übereinstimmende virtuelle Festplatte bereit. Die Beanspruchung ist an das dauerhafte Volume gebunden. Wenn Sie die Beanspruchung löschen, werden das entsprechende dauerhafte Volume-Objekt und die bereitgestellte virtuelle Festplatte ebenfalls gelöscht.

Voraussetzungen

Informationen hierzu finden Sie unter den folgenden Themen:

Prozedur

  1. Melden Sie sich beim TKG-Cluster an.
  2. Erstellen Sie den Guestbook-Namespace.
    kubectl create namespace guestbook
    Überprüfen Sie:
    kubectl get ns
  3. Erstellen Sie rollenbasierte Zugriffssteuerung mithilfe des standardmäßig privilegierten PSP.
    kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated
    Hinweis: Wenn Sie umfassendere Sicherheit benötigen, wenden Sie ein RoleBinding auf den Guestbook-Namespace an.
  4. Überprüfen Sie die Speicherklasse oder erstellen Sie eine.
    So überprüfen Sie eine vorhandene Speicherklasse:
    kubectl describe namespace
    Oder, wenn Sie über vSphere-Administratorberechtigungen verfügen:
    kubectl get storageclass
  5. Erstellen Sie die YAML-Dateien für die Beanspruchung eines dauerhaften Volumes (Persistent Volume Claims, PVCs), die die Speicherklasse verwenden.
    Verwenden Sie die folgenden YAML-Dateien. Aktualisieren Sie jede mit dem Namen der Speicherklasse.
  6. Wenden Sie die Guestbook-PVCs auf den Cluster an.
    kubectl apply -f redis-leader-pvc.yaml -n guestbook
    kubectl apply -f redis-follower-pvc.yaml -n guestbook
  7. Überprüfen Sie den Status der PVCs.
    kubectl get pvc,pv -n guestbook
    Die PVCs und dauerhaften Volumes (persistent volumes, PVs) sind aufgelistet und zur Verwendung verfügbar.
    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. Erstellen Sie die Guestbook-YAML-Dateien.
  9. Stellen Sie die Guestbook-Anwendung in ihrem Namespace bereit.
    kubectl apply -f . --namespace guestbook
  10. Überprüfen Sie die Erstellung der Guestbook-Ressourcen.
    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. Rufen Sie die Guestbook-Webseite mit der External-IP-Adresse des service/guestbook-frontend-Lastausgleichsdiensts auf, in diesem Beispiel die 10.19.15.99.
    Sie sehen die Guestbook-Webschnittstelle und können Werte in die Guestbook-Datenbank eingeben. Wenn Sie die Anwendung neu starten, werden die Daten beibehalten.