Configurando seu primeiro cluster clássico na CLI

Infraestrutura clássica

Neste tutorial, você implantará um Red Hat OpenShift on IBM Cloud cluster na infraestrutura Classic usando a CLI.

Público

Este tutorial foi elaborado para administradores de cluster que desejam aprender a criar um cluster do Red Hat OpenShift on IBM Cloud pela primeira vez usando a CLI.

Objetivos

Neste tutorial, você realizará as seguintes tarefas.

  • Crie um cluster em Washington, D.C. com 2 nós do trabalhador que tenham 4 núcleos e 16 GB de memória
  • Abra o console da web do Red Hat OpenShift.
  • Implementar um app de amostra.
  • Exponha o app em uma Rota para que os usuários externos possam acessar o serviço

O que você vai conseguir

Neste tutorial, você criará os recursos a seguir usando a CLI. Há etapas opcionais para excluir esses recursos se você não quiser mantê-los depois de concluir o tutorial

  • Um cluster clássico com dois nós do trabalhador
  • Um app Hello World simples implementado no cluster
  • Uma rota para expor seu app

Arquitetura de cluster
Arquitetura de cluster

Pré-requisitos

  1. Verifique as suas permissões. Se você for o titular da conta, já possui as permissões necessárias para criar um cluster e pode prosseguir para a próxima etapa. Se você não for o proprietário da conta, peça ao proprietário da conta para configurar uma chave de API e designar as permissões necessárias no IBM Cloud IAM.

  2. Instale as IBM Cloud ferramentas da CLI.

Crie um cluster Red Hat OpenShift on IBM Cloud

  1. Efetue login em sua conta e grupo de recursos. Se você tiver uma conta federada, inclua a opção --sso.

    ibmcloud login [-g RESOURCE GROUP] [--sso]
    
  2. Execute o comando a seguir para criar um cluster do tipo “ 4.21 ” em Washington, DC, com 2 nós de trabalho que possuem 4 núcleos e 16 GB de memória.

    ibmcloud oc cluster create classic --name my-tutorial-cluster --location wdc04 --version 4.21_openshift --flavor b3c.4x16  --workers 2 --public-service-endpoint
    
  3. A criação do cluster pode levar algum tempo para ser concluída. Após o estado do cluster mostrar Normal, os componentes da rede de clusters e do ingresso levam cerca de 10 minutos a mais para implementar e atualizar o domínio do cluster que você usa para o console da web do Red Hat OpenShift e outras rotas.

  4. Liste os detalhes do cluster. Revise o Estado do cluster, verifique o Subdomínio do Ingress e anote a URL principal.

    ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID
    
  5. Baixe e adicione o arquivo de configuração kubeconfig ao seu cluster.

    ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID
    
  6. Em seu navegador, navegue para o endereço de sua URL principal e anexe /console. Por exemplo, https://c0.containers.cloud.ibm.com:23652/console.

  7. Verifique se os comandos oc são executados corretamente com seu cluster verificando a versão.

    oc version
    

    Exemplo de saída

    Client Version: v4.21.0
    Kubernetes Version: v1.35.7.2
    

    Se você não puder executar operações que requerem permissões de Administrador, como listar todos os nós do trabalhador ou pods em um cluster, faça download dos certificados TLS e arquivos de permissão para o administrador do cluster executando o comando ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin.

Navegar no console do Red Hat OpenShift

  1. No console, selecione seu cluster do Red Hat OpenShift e, em seguida, clique em “ OpenShift ” (Consola da Web ).
  2. Para trabalhar com seu cluster na CLI, clique no seu perfil IAM#user.name@email.com > Copiar comando de login. Exiba e copie o comando do token oc login em sua linha de comando para autenticação usando a CLI

Implementar um app em seu cluster

  1. Crie um projeto para seu app Hello World.

    oc new-project hello-world
    
  2. Construa o app de amostra por meio do código-fonte usando o comando oc new-app

    oc new-app --name hello-world https://github.com/IBM/container-service-getting-started-wt --context-dir="Lab 1"
    

    Uma mensagem de aviso pode ser exibida na saída, mas isso não afeta este exemplo

  3. Liste os serviços hello-world e anote o nome do serviço. Seu app atende o tráfego nesses endereços IP de cluster interno, a menos que você crie uma rota para o serviço para que o controlador de ingresso possa encaminhar solicitações de tráfego externo para o app.

    oc get svc -n hello-world
    

    Exemplo de saída

    NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    hello-world   ClusterIP   172.21.xxx.xxx   <none>       8080/TCP   31m
    
  4. Liste os pods e certifique-se de que o status dos pods hello-world seja Em execução e os pods build e deploy sejam Concluídos

    oc get pods -n hello-world
    

    Exemplo de saída

    NAME                  READY     STATUS             RESTARTS   AGE
    hello-world-1-9cv7d   1/1       Running            0          30m
    hello-world-1-build   0/1       Completed          0          31m
    hello-world-1-deploy  0/1       Completed          0          31m
    
  5. Configure uma rota para que seja possível acessar publicamente o serviço Hello World.

    oc create route edge --service=hello-world -n hello-world
    
  6. Obtenha o endereço do nome do host da rota por meio da saída Host/Porta.

    oc get route -n hello-world
    

    Exemplo de saída

    NAME          HOST/PORT                         PATH                                        SERVICES      PORT       TERMINATION   WILDCARD
    hello-world   hello-world-hello.world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud    hello-world   8080-tcp   edge/Allow    None
    
  7. Acesse seu app. Certifique-se de anexar https:// ao nome do host da rota. Pode levar um minuto antes que o serviço exposto esteja visível

    curl https://hello-world-hello-world.CLUSTER-NAME-RANDOM-ID.REGION.containers.appdomain.cloud
    

    Exemplo de saída

    Hello world from hello-world-9cv7d! Your app is up and running in a cluster!
    

Organizar os recursos do tutorial

  1. Listar os recursos no projeto do hello-world
    oc get all -l app=hello-world -o name -n hello-world
    
    Exemplo de saída
    pod/hello-world-1-dh2ff
    replicationcontroller/hello-world-1
    service/hello-world
    deploymentconfig.apps.openshift.io/hello-world
    buildconfig.build.openshift.io/hello-world
    build.build.openshift.io/hello-world-1
    imagestream.image.openshift.io/hello-world
    imagestream.image.openshift.io/node
    route.route.openshift.io/hello-world
    
  2. Exclua os recursos
    oc delete all -l app=hello-world -n hello-world
    

O que vem a seguir?

Instale dois complementos de cluster populares do Red Hat OpenShift on IBM Cloud: IBM Cloud Logs e IBM Cloud Monitoring.