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
- Accedere al cluster TKG.
- Creare lo spazio dei nomi di Guestbook.
kubectl create namespace guestbook
Verificare:
kubectl get ns
- 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.
- 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
- 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.
- 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
- 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
- Creare i file YAML di Guestbook.
Utilizzare i seguenti file YAML:
- Distribuire l'applicazione Guestbook nel relativo spazio dei nomi.
kubectl apply -f . --namespace guestbook
- 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
- 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.