Skip to content

nowstton/openshift-test-drive

 
 

Repository files navigation

Test Drive - Red Hat OpenShift Container Platform 4

SMT SAT GAQ12023V1

Instruções:

Pré-requisitos

Crie um fork do repositório a seguir com sua conta GitHub: (https://github.com/system-manager-br/openshift-test-drive)

  1. Acesse https://github.com com a sua conta pessoal, ou crie um conta:

image

  1. Acesse https://github.com/system-manager-br/openshift-test-drive e crie um "fork":

image

Obs.: Anote a URL gerada após o fork.

Aguarde o envio da URL e conta de acesso ao OpenShift.

1 - Acessando o ambiente

  1. Acesso via Web Console - Insira suas credenciais:

image

2 - Explorando o ambiente com o instrutor:

(O instrutor irá apresentar os itens abaixo)

  • Console
  • Perfil admin
  • Perfil dev

3 - Explorando o ambiente via CLI:

image

Execute os comandos utilizando o client "oc" ou "kubectl":

  $ oc project
  $ oc projects
  $ oc get pods
  $ oc get nodes

4- Deploy de aplicação com OpenShift Pipelines:

O Red Hat OpenShift Pipelines é uma solução de integração e entrega contínua (CI/CD) nativa da nuvem para criar pipelines usando Tekton. Tekton é uma estrutura flexível de CI/CD de código aberto nativa do Kubernetes, que permite automatizar implantações.

  1. Altere para o perfil de desenvolvedor

image

  1. Selecione o menu +Add;

image

  1. Valide que o projeto (namespace), que possui o mesmo nome da sua conta de acesso, está selecionado ao lado direito do perfil de desenvolvedor;

image

  1. Clicar em "Git Repository - Import from Git";

image

  1. Preencha os dados solicitados:
    • No campo Git Repo URL: insira a url gerada ao realizar o fork na etapa de pré-requisitos;

image

  • Nos campos Appplication name e Name, altere os valores para: app<número do seu projeto)> (ex: usuário redhat40 -> app40)
  • Marcar o checkbox Add pipeline;
  • Desmarcar o checkbox Create a route to the Application;
  • Cilcar em Resource limits;

image

  • Preencha com os seguintes valores para os limites de recursos computacionais:
    • CPU
      • Request = 20 milicores;
      • Limit = 50 milicores;
    • Memory
      • Request = 70 Mi;
      • Limit = 150 Mi;
  • Clique no botão "Create"; Aguarde o processo de construção (build) e escalação da aplicação (0 para 1). Acompanhe os logs da execução em: Pipelines > app<número do seu projeto> > PipelineRuns > app<número do seu projeto>-xyz > Logs**;
    • Clique em Topology ;
    • Clique em cima do circulo azul da sua aplicação app<número do seu projeto>;
    • Explore as opções apresentadas (Details, Resources, Observe);

image

5 - Crie uma rota HTTP para a aplicação:

  1. Clique em Project no canto esquerdo do console;
  2. Clique em Route > Create Route, e preencha conforme abaixo:

image

  • Name: http-app<número do seu projeto>
  • Hostname: app<número do seu projeto>.(dominio-wildcard-do-cluster-openshift)

Exemplo: image

  • Service: app<número do seu projeto>
  • Target port: 8080 -> 8080 (TCP)
  • Clicar em Create;
  • Acesse a rota em seu navegador;
  • Anote a rota em um bloco de notas;

6 - Crie uma rota HTTPS para a aplicação:

  1. Clique em Project no canto esquerdo do console;
  2. Clique em Route > Create Route, e preencha conforme abaixo:
    • Name: https-app<número do seu projeto>
    • Hostname: secure-app<número do seu projeto>.(dominio-wildcard-do-cluster-openshift)
    • Service: app<número do seu projeto>
    • Target port: 8080 -> 8080 (TCP)
    • Marque o checkbox Secure Route;
    • TLS termination: Edge
    • Insecure traffic: Redirect
    • Clicar em Create;
    • Acesse a rota em seu navegador;
    • Tente acessar a rota recém criada como HTTP e veja o comportamento do "Redirect";
    • Anote a rota em um bloco de notas;
    • Envie ambas as rotas (HTTP e HTTPS) no chat.

7 - Adicionar GitHub Webhook no Pipeline:

  1. Clique em Topology no menu lateral, e abra a URL do POD chamado "Triggers", conforme abaixo:

image

  1. Copie a URL;
  2. Acesse seu repositório (repoistório clonado anteriormente), e clique nas seguintes opções: Settings -> Webhooks -> Add webhook:

image

  1. No formulario que aparecerá insira a URL do Trigger no campo "Payload URL", e em "Content type" selecione a opção "aplication/json", depois clique no botão "Add webhook";

image

8 - Teste de Trigger com o GitHub Webhook:

Acesse seu GitHub e abra o repositório clonado para executar as tarefas abaixo.

  1. Alterar o arquivo "/views/main.erb" na linha 26. No lugar de "Cliente", insira seu nome. (não remova nada antes ou depois da linha 26)

image

  1. Após essa alteração clique no botão "commit changes";

  2. No console do OCP, voce pode acompahar a Pipeline iniciando um novo build e deploy da nova versão da Aplicação;

image

12 - Acessando os logs da aplicação

  1. Acessar no menu lateral a opção "Topology", clique no icone do POD da aplicação e na sessão "Resources" clique "View logs":

image

  1. Faça algumas requisições na URL (atualize a página) e veja os logs.

9 - Escale a aplicação para 02 réplicas:

  1. Clique em Topology;
  2. Clique em cima do circulo azul da sua aplicação app<número do seu projeto>;
  3. Clique em Details > botão de "Increase"

image

  1. Acione o "Descrease" para 01 réplica.

image

10 - Autoscale da aplicação:

  1. Acessar no menu lateral a opção "Topology", clique no icone do POD da aplicação e na sessão "Actions" clique na opcão "Add HorizontalPodAutoscaler":

image

  1. Será aberto um formulario para preenchimento dos parâmetros. Insira os valores, conforme o exemplo abaixo, e clique no botão "Save".

image

11 - Teste de carga usando Apache Benchmark:

  1. No menu lateral clique em "+Add" e em "All services":

image

  1. Procure por por "httpd" e clique na primeira opção, depois em "Instantiate Template":

image

  1. Mude o nome para "apache-benchmark" e clique em "create":

image

  1. Acesse o seu projeto (namespace) via Web Terminal, e entre no terminal do Apache Benchmark. Em seguida execute o comando para disparar a carga na URL da aplicação e observe novas instâncias sendo criadas para atender a carga.

image

Obrigado pela participação!

About

Test Drive OpenShift 4

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 50.1%
  • Ruby 46.3%
  • Dockerfile 3.2%
  • Shell 0.4%