Configuración del primer clúster clásico en la CLI

Infraestructura clásica

En este tutorial, se implementa un Red Hat OpenShift on IBM Cloud clúster en la infraestructura clásica mediante la CLI.

Audiencia

Este tutorial está dirigido a administradores de clústeres que deseen aprender a crear por primera vez un clúster de Red Hat OpenShift on IBM Cloud mediante la CLI.

Objetivos

En este tutorial, realizarás las siguientes tareas.

  • Cree un clúster en Washington, DC con 2 nodos trabajadores que tengan 4 núcleos y 16 GB de memoria.
  • Abra la consola web de Red Hat OpenShift.
  • Despliegue una app de ejemplo.
  • Exponga la app en una ruta para que los usuarios externos puedan acceder al servicio.

Qué obtendrá

En esta guía de aprendizaje, creará los recursos siguientes utilizando la CLI. Hay pasos opcionales para suprimir estos recursos si no desea conservarlos después de completar la guía de aprendizaje.

  • Un clúster clásico con 2 nodos trabajadores
  • Una app Hello World simple desplegada en el clúster
  • Una ruta para exponer la app

Arquitectura de " caption-side="bottom"} de{: caption="

Requisitos previos

  1. Compruebe los permisos. Si eres el titular de la cuenta, ya dispones de los permisos necesarios para crear un clúster y puedes pasar al siguiente paso. Si no es el propietario de la cuenta, solicite al propietario de la cuenta que configure una clave de API y le asigne los permisos necesarios en IBM Cloud IAM.

  2. Instale las herramientas de CLI de IBM Cloud.

Creación de un clúster de Red Hat OpenShift on IBM Cloud

  1. Inicie sesión en su cuenta y grupo de recursos. Si tiene una cuenta federada, incluya la opción --sso.

    ibmcloud login [-g RESOURCE GROUP] [--sso]
    
  2. Ejecuta el siguiente comando para crear un clúster de versión 4.21 en Washington, D.C., con 2 nodos de trabajo que tengan 4 núcleos y 16 GB de memoria.

    ibmcloud oc cluster create classic --name my-tutorial-cluster --location wdc04 --version 4.21_openshift --flavor b3c.4x16  --workers 2 --public-service-endpoint
    
  3. El proceso de creación del clúster puede tardar un rato en completarse. Después de que el estado del clúster muestre Normal, la red del clúster y los componentes de Ingress tardan unos 10 minutos más en desplegarse y actualizar el dominio de clúster que utiliza para la consola web de Red Hat OpenShift y otras rutas.

  4. Obtenga una lista de los detalles del clúster. Revise el Estado del clúster, compruebe el Subdominio de Ingress y anote el URL maestro.

    ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID
    
  5. Descarga e incorpora el archivo de configuración kubeconfig de tu clúster.

    ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID
    
  6. En el navegador, vaya a la dirección de su URL maestro y añada /console. Por ejemplo, https://c0.containers.cloud.ibm.com:23652/console.

  7. Compruebe que los mandatos oc se ejecutan correctamente con el clúster comprobando la versión.

    oc version
    

    Salida de ejemplo

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

    Si no puede realizar operaciones que requieran permisos de administrador como, por ejemplo, listar todos los nodos de trabajador o los pods de un clúster, descargue los certificados TLS y los archivos de permisos para el administrador del clúster ejecutando el mandato ibmcloud oc cluster config --cluster CLUSTER_NAME_OR_ID --admin.

Navegación en la consola de Red Hat OpenShift

  1. Desde la consola, selecciona tu clúster de Red Hat OpenShift y, a continuación, haz clic en OpenShift (Consola web ).
  2. Para trabajar con tu clúster en la CLI, haz clic en tu perfil IAM#user.name@email.com > Copiar comando de inicio de sesión. Visualice y copie el comando de token oc login en la línea de comandos para autenticar usando la CLI.

Despliegue de una app en el clúster

  1. Cree un proyecto para la app Hello World.

    oc new-project hello-world
    
  2. Cree la app de ejemplo a partir del código fuente utilizando el mandato oc new-app.

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

    Es posible que se visualice un mensaje de aviso en la salida, pero no afecta a este ejemplo.

  3. Obtenga una lista de los servicios hello-world y anote el nombre del servicio. La aplicación escucha el tráfico en estas direcciones IP de clúster internas, a menos que cree una ruta para el servicio, para que el controlador de Ingress pueda reenviar solicitudes de tráfico externas a la aplicación.

    oc get svc -n hello-world
    

    Salida de ejemplo

    NAME          TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)    AGE
    hello-world   ClusterIP   172.21.xxx.xxx   <none>       8080/TCP   31m
    
  4. Liste los pods y asegúrese de que el estado de los pods hello-world sea Running y de que los pods build y deploy sean Completed

    oc get pods -n hello-world
    

    Salida de ejemplo

    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 una ruta de modo que pueda acceder públicamente al servicio hello world.

    oc create route edge --service=hello-world -n hello-world
    
  6. Obtenga la dirección de nombre de host de la ruta desde la salida de Host/Port.

    oc get route -n hello-world
    

    Salida de ejemplo

    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. Acceda a la aplicación. Asegúrese de añadir https:// al nombre de host de la ruta. Puede tardar un minuto antes de que el servicio expuesto sea visible.

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

    Salida de ejemplo

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

Revisar los recursos de los tutoriales

  1. Liste los recursos en el proyecto hello-world.
    oc get all -l app=hello-world -o name -n hello-world
    
    Salida de ejemplo
    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. Suprima los recursos.
    oc delete all -l app=hello-world -n hello-world
    

¿Qué hacer a continuación?

Instale dos complementos populares para clústeres de Red Hat OpenShift on IBM Cloud: IBM Cloud Logs y IBM Cloud Monitoring.