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

  1. Faça login no cluster do TKG.
  2. Crie o namespace Guestbook.
    kubectl create namespace guestbook
    Verificar:
    kubectl get ns
  3. 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.
  4. 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
  5. 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.
  6. 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
  7. 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
  8. Crie os arquivos YAML do livro de visitas.
  9. Implante o aplicativo Guestbook em seu namespace.
    kubectl apply -f . --namespace guestbook
  10. 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
  11. 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.