GithubHelp home page GithubHelp logo

toncsc / openshift-test-drive Goto Github PK

View Code? Open in Web Editor NEW

This project forked from system-manager-br/openshift-test-drive

0.0 0.0 0.0 325 KB

Test Drive OpenShift 4

Shell 0.41% Ruby 46.33% HTML 50.07% Dockerfile 3.20%

openshift-test-drive's Introduction

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!

openshift-test-drive's People

Contributors

system-manager-br avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.