Implante o aplicativo Guestbook no cluster do TKG 2 e explore o Kubernetes.
A implantação do aplicativo de livro de visitas é uma maneira útil de explorar o Kubernetes. O aplicativo usa os objetos Deployment e ReplicaSet para implantar pods no namespace padrão e expõe esses pods usando Services. Os dados do livro de visitas são persistidos para que, se o aplicativo ficar inativo, os dados permaneçam. Este tutorial usa uma declaração de volume persistente dinâmico (PVC) para solicitar recursos de armazenamento persistente sem conhecer os detalhes do armazenamento subjacente. O armazenamento usado para o PVC é alocado da cota de armazenamento para o vSphere Namespace. Por padrão, os contêineres são efêmeros e sem estado. Para cargas de trabalho com estado, uma abordagem comum é criar uma declaração de volume persistente (PVC). Você pode usar um PVC para montar os volumes persistentes e acessar o armazenamento. A solicitação provisiona dinamicamente um objeto de volume persistente e um disco virtual correspondente. A declaração está vinculada ao volume persistente. Quando você exclui a declaração, o objeto de volume persistente correspondente e o disco virtual provisionado também são excluídos.
Pré-requisitos
Revise os seguintes tópicos:
Procedimento
- Faça login no cluster do TKG.
- Crie o namespace Guestbook.
kubectl create namespace guestbook
Verificar:
kubectl get ns
- Crie controle de acesso baseado em função usando o PSP privilegiado padrão.
kubectl create clusterrolebinding default-tkg-admin-privileged-binding --clusterrole=psp:vmware-system-privileged --group=system:authenticated
Observação: Se você precisar de mais segurança, aplique uma RoleBinding no namespace do livro de visitas.
- Verifique a classe de armazenamento ou crie uma.
Para verificar uma classe de armazenamento existente:
kubectl describe namespace
Ou, se você tiver vSphere permissões de administrador:
kubectl get storageclass
- Crie os arquivos YAML de declarações de volume persistentes dinâmicos (PVCs) que fazem referência à classe de armazenamento.
Use os seguintes arquivos YAML. Atualize cada um com o nome da classe de armazenamento.
- Aplique os PVCs do livro de visitas ao cluster.
kubectl apply -f redis-leader-pvc.yaml -n guestbook
kubectl apply -f redis-follower-pvc.yaml -n guestbook
- Verifique o status dos PVCs.
kubectl get pvc,pv -n guestbook
Os PVCs e os volumes persistentes (PVs) são listados e estão disponíveis para 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
- Crie os arquivos YAML do livro de visitas.
Use os seguintes arquivos YAML:
- Implante o aplicativo Guestbook em seu namespace.
kubectl apply -f . --namespace guestbook
- Verifique a criação dos recursos do livro 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
- Acesse a página da Web Guestbook usando o endereço
External-IP
do balanceador de carga service/guestbook-frontend
, que neste exemplo é 10.19.15.99
.
Você vê a interface da Web do Livro de Convidados e pode inserir valores no banco de dados do Livro de Convidados. Se você reiniciar o aplicativo, os dados serão persistidos.