Nota:

Ejecución de Oracle Cloud Native Environment compacta

Introducción

La versión 1.5 de Oracle Cloud Native Environment introdujo el despliegue compacto, lo que permite que las cargas de trabajo de Kubernetes que no son del sistema se ejecuten en nodos de plano de control. Al definir --compact en true, el servidor de API de plataforma no detecta los nodos del plano de control. Este valor permite programar y ejecutar cargas de trabajo de Kubernetes que no sean del sistema en nodos de plano de control.

Importante: esta opción se debe definir en false (valor por defecto) para entornos de producción.

Durante este tutorial, creará, validará e instalará un despliegue compacto de Oracle Cloud Native Environment.

Objetivos

Requisitos

Un único sistema Oracle Linux 8 o posterior aprovisionado con lo siguiente:

Exención de responsabilidad de Oracle Support

Oracle no proporciona soporte técnico para la secuencia de pasos de las siguientes instrucciones porque estos pasos hacen referencia a una topología de despliegue NO diseñada para su uso en producción. En este tutorial se proporcionan instrucciones opcionales como una comodidad solo para ayudar a los desarrolladores a probar los servicios localmente durante el desarrollo.

El método soportado de Oracle para el desarrollo y la gestión de aplicaciones en la nube es Oracle Cloud Native Environment. Para obtener más información, consulte https://docs.oracle.com/en/operating-systems/olcne/.

Configuración del entorno de prácticas

Nota: Al utilizar el entorno de prácticas gratuitas, consulte Aspectos básicos de las prácticas de Oracle Linux para obtener información sobre la conexión y otras instrucciones de uso.

Información: el entorno de laboratorio gratuito despliega Oracle Cloud Native Environment en el nodo proporcionado, listo para crear entornos. Este despliegue tarda aproximadamente entre 8 y 10 minutos en completarse después del inicio. Por lo tanto, es posible que desee alejarse mientras se ejecuta y, a continuación, volver a completar el laboratorio.

  1. Si aún no está conectado, abra un terminal y conéctese mediante ssh al sistema ocne-node01.

    ssh oracle@<ip_address_of_ol_node>
    

    Nota: (Opcional) El entorno de prácticas libres despliega automáticamente una solución alternativa de política de SELinux que aborda el siguiente problema informado en los logs de auditoría. Este error puede impedir los despliegues de Oracle Cloud Native Environment adecuados en algunas situaciones. Puede examinar el log del sistema mediante sudo journalctl -xe y las flechas del teclado para navegar por los logs y determinar si esto ocurre en el entorno. No es necesario ejecutar esto en el entorno de laboratorio gratuito proporcionado.

    Jun 16 19:03:51 ocne-node01 setroubleshoot[125840]: SELinux is preventing iptables from ioctl access on the directory /sys/fs/>
    

    Solución alternativa:

    echo '(allow iptables_t cgroup_t (dir (ioctl)))' | sudo tee /root/local_iptables.cil
    sudo semodule -i /root/local_iptables.cil
    

Creación de un archivo de configuración de CLI de plataforma

El uso de un archivo de configuración basado en YAML simplifica la creación y la gestión de entornos y módulos. El archivo de configuración incluye detalles sobre los entornos y módulos que desea crear y, por lo tanto, guarda la introducción repetida de las opciones del comando de la CLI de Platform.

Al utilizar un archivo de configuración, transfiera la opción --config-file a cualquier comando de la CLI de Platform, ya que es una opción de comando global. La opción --config-file desactiva otras opciones de línea de comandos, excepto la opción --force. El comando olcnectl ignora otras opciones de línea de comandos y solo utiliza los valores del archivo de configuración.

El entorno de prácticas libres genera un archivo de configuración para utilizarlo en este ejercicio. Para obtener información sobre la creación manual de un archivo de configuración, consulte Uso de un archivo de configuración en la documentación de Oracle.

  1. Visualice el contenido del archivo de configuración.

    cat ~/myenvironment.yaml
    
    • La opción environment-name define el entorno en el que se despliegan los módulos.
    • La opción module: despliega el módulo kubernetes con un cluster name: de mycluster.
    • La opción compact: define el despliegue para que se produzca en el nodo del plano de control.

    Nota: La opción worker-nodes: no existe en este archivo de configuración. La eliminación de esta opción del archivo de configuración es necesaria cuando se utiliza compact:, ya que los módulos esperan desplegar solo en un único nodo de plano de control.

Creación del entorno y el módulo de Kubernetes

  1. Cree el entorno.

    cd ~
    olcnectl environment create --config-file myenvironment.yaml
    

    Resultado de ejemplo:

    [oracle@ocne-node01 ~]$ olcnectl environment create --config-file myenvironment.yaml
    Environment myenvironment created.
    
  2. Cree el módulo de Kubernetes.

    olcnectl module create --config-file myenvironment.yaml
    

    Resultado de ejemplo:

    [oracle@ocne-node01 ~]$ olcnectl module create --config-file myenvironment.yaml
    Modules created successfully.
    
  3. Valide el módulo de Kubernetes.

    olcnectl module validate --config-file myenvironment.yaml
    

    Resultado de ejemplo:

    [oracle@ocne-node01 ~]$ olcnectl module validate --config-file myenvironment.yaml
    Validation of module mycluster succeeded.
    

    En este ejemplo no hay errores de validación. Si existen errores, la salida del comando proporciona la sintaxis necesaria para corregir y transferir la comprobación de validación.

  4. Instalar el módulo de Kubernetes.

    olcnectl module install --config-file myenvironment.yaml
    

    El despliegue de Kubernetes en los nodos puede tardar varios minutos en completarse.

    Resultado de ejemplo:

    [oracle@ocne-node01 ~]$ olcnectl module install --config-file myenvironment.yaml
    Modules installed successfully.
    

    Nota: Si la instalación del módulo falla, puede informar error: el módulo "mycluster" nunca alcanzó un estado correcto. Último estado: externalip-webhook no está en buen estado. Es probable que este error se deba a una configuración incorrecta en el entorno o los certificados y hace que el pod tenga un estado de mantenimiento incorrecto.

    La explicación de taints en cualquier detalle está fuera del ámbito de este tutorial. Sin embargo, en el nivel más simple, el taint de un nodo determina dónde un nodo específico atrae o repite pods al nodo en cuestión. Dado que este despliegue solo tiene un nodo, debe tener un estado con fuente para permitir correctamente que cualquier Pod se despliegue en él. Para obtener más información sobre contenciones, consulte la sección sobre tolerancia en la documentación ascendente de Kubernetes.

  5. Valide el despliegue del módulo de Kubernetes.

    olcnectl module instances --config-file myenvironment.yaml
    

    Resultado de ejemplo:

    [oracle@ocne-node01 ~]$ olcnectl module instances --config-file myenvironment.yaml
    INSTANCE       	MODULE    	STATE    
    10.0.0.140:8090	node      	installed
    mycluster      	kubernetes	installed
    

Configuración de la herramienta de línea de comandos de Kubernetes y validación del entorno de Kubernetes

  1. Configure el comando kubectl.

    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    export KUBECONFIG=$HOME/.kube/config
    echo 'export KUBECONFIG=$HOME/.kube/config' >> $HOME/.bashrc
    
  2. Verifique que kubectl funciona.

    kubectl get nodes
    

    Resultado de ejemplo:

    [oracle@ocne-node01 ~]$ kubectl get nodes
    NAME          STATUS   ROLES    AGE     VERSION
    ocne-node01   Ready    <none>   5m30s   v1.22.8+1.el8
    
  3. Obtenga una lista de los pods.

    kubectl get pods -A
    

    Resultado de ejemplo:

    [oracle@ocne-node01 ~]$ kubectl get pods -A
    NAMESPACE                      NAME                                             READY   STATUS    RESTARTS   AGE
    externalip-validation-system   externalip-validation-webhook-7988bff847-bkvxd   1/1     Running   0          5m47s
    kube-system                    coredns-7cbc77dbc7-4rghr                         1/1     Running   0          5m47s
    kube-system                    coredns-7cbc77dbc7-lp7x6                         1/1     Running   0          5m47s
    kube-system                    etcd-ocne-node01                                 1/1     Running   0          6m7s
    kube-system                    kube-apiserver-ocne-node01                       1/1     Running   0          6m7s
    kube-system                    kube-controller-manager-ocne-node01              1/1     Running   0          6m7s
    kube-system                    kube-flannel-ds-5spkp                            1/1     Running   0          5m47s
    kube-system                    kube-proxy-cq27f                                 1/1     Running   0          5m47s
    kube-system                    kube-scheduler-ocne-node01                       1/1     Running   0          6m7s
    kubernetes-dashboard           kubernetes-dashboard-5d5d4947b5-n2vcd            1/1     Running   0          5m47s
    

La salida confirma que todo está activo y en ejecución correctamente y listo para desplegar las aplicaciones desarrolladas localmente en Oracle Cloud Native Environment para las pruebas.

Resumen

Obtener una versión compacta de Oracle Cloud Native Environment instalada es solo el inicio y es una herramienta útil para facilitar las pruebas y el desarrollo locales. Para obtener más ejemplos, consulte Ejecución de Kubernetes en Oracle Linux.

Para obtener más información

Más recursos de aprendizaje

Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer y conviértase en Oracle Learning Explorer.

Para obtener documentación sobre el producto, visite Oracle Help Center.