Nota:
- Este tutorial está disponible en un entorno de laboratorio gratuito proporcionado por Oracle.
- Utiliza valores de ejemplo para las credenciales, el arrendamiento y los compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por valores específicos de su entorno en la nube.
Despliegue del entorno nativo de Oracle Cloud
Introducción
Oracle Cloud Native Environment es un conjunto totalmente integrado para el desarrollo y la gestión de aplicaciones en la nube. El módulo de Kubernetes es el módulo principal. Se utiliza para desplegar y gestionar contenedores, así como para instalar y configurar automáticamente contenedores CRI-O, runC y Kata. CRI-O gestiona el tiempo de ejecución del contenedor para un cluster de Kubernetes. El tiempo de ejecución puede ser runC o contenedores Kata.
Objetivos
En este laboratorio se muestra cómo:
- Instalación de Oracle Cloud Native Environment versión 1.5 en un cluster de 3 nodos
- Configurar certificados de CA privados x.590
- Configuración del entorno nativo de Oracle Cloud en un cluster de 3 nodos
- Verifique que la instalación se ha realizado correctamente
Requisitos
En esta sección, se muestran los sistemas host para realizar los pasos de este tutorial. Para tener éxito es necesario:
-
3 sistemas Oracle Linux para utilizar como:
- Nodo de operador (ocne-operator)
- Nodo de plano de control de Kubernetes (ocne-control)
- Nodo de trabajador de Kubernetes (ocne-worker)
-
Cada sistema debe tener un mínimo de lo siguiente instalado:
- Última versión de Oracle Linux 8 (x86_64) instalada y en ejecución de Unbreakable Enterprise Kernel versión 6 (UEK R6)
-
Este entorno está preconfigurado con lo siguiente:
- Creó una cuenta de usuario de Oracle (utilizada durante la instalación).
- Se ha otorgado acceso 'sudo' a la cuenta de Oracle
- Configurar SSH basado en claves, también conocido como SSH sin contraseña, entre las instancias
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.
En esta práctica, se incluyen varios sistemas, cada uno de los cuales requiere que se realicen diferentes pasos. Se recomienda comenzar abriendo tres ventanas de terminal y conectándose a los nodos ocne-operator, ocne-control y ocne-worker. Esto evita la necesidad de conectarse y desconectarse repetidamente.
-
Abra un terminal y conéctese mediante ssh a cada uno de los tres nodos.
ssh oracle@<ip_address_of_ol_node>
Nota Cuando un paso indique "(En todos los nodos)" en el laboratorio, realice esas acciones en ocne-operator, ocne-control y ocne-worker. El motivo de este enfoque es evitar la repetición, ya que la acción necesaria será idéntica en cada nodo.
(Opcional) Actualización de Oracle Linux
-
(En todos los nodos) Asegúrese de que Oracle Linux esté actualizado.
sudo dnf -y update
Esto puede tardar unos minutos en completarse; puede ahorrar tiempo si este paso se ejecuta en paralelo en cada nodo por separado.
-
(En todos los nodos) Reinicie y vuelva a conectar.
sudo reboot
-
(En todos los nodos) Después de reiniciar el sistema, vuelva a conectarse a los nodos mediante ssh.
ssh oracle@<ip_address_of_ol_node>
Instalar y activar el repositorio de Yum del entorno nativo de Oracle Cloud
-
(En todos los nodos) Instale el repositorio de yum.
sudo dnf -y install oracle-olcne-release-el8
-
(En todos los nodos) Active el repositorio de entorno nativo de Oracle Cloud actual.
sudo dnf config-manager --enable ol8_olcne15 ol8_addons ol8_baseos_latest ol8_appstream ol8_UEKR6
-
(En todos los nodos) Desactive todas las versiones de repositorio anteriores.
sudo dnf config-manager --disable ol8_olcne12 ol8_olcne13 ol8_olcne14 ol8_developer
Instalar y activar Chrony
-
(En todos los nodos) Si aún no está disponible en el sistema, instale y active el servicio cronológico.
Compruebe si hay cronos instalados.
sudo dnf list --installed chrony
Si no está instalado, instale crony.
sudo dnf -y install chrony sudo systemctl enable --now chronyd
Nota: El entorno de laboratorio gratuito ya tiene instalado y configurado el servicio de cronología (hora).
Desactivar intercambio
-
(En todos los nodos) Desactive el intercambio en todos los nodos.
sudo swapoff -a sudo sed -i '/swap/ s/^#*/#/' /etc/fstab
Configuración del firewall de Oracle Linux
Nota: El servicio firewalld está instalado y en ejecución por defecto en Oracle Linux.
-
(En ocne-operator) Defina las reglas de firewall para el nodo de operador.
sudo firewall-cmd --add-port=8091/tcp --permanent sudo firewall-cmd --reload
-
(En ocne-control) Establezca las reglas de firewall para los nodos del plano de control.
sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent sudo firewall-cmd --add-port=8090/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10255/tcp --permanent sudo firewall-cmd --add-port=8472/udp --permanent sudo firewall-cmd --add-port=6443/tcp --permanent sudo firewall-cmd --reload
-
(En ocne-control) Agregue lo siguiente que se utiliza para la alta disponibilidad y es necesario para pasar la validación.
sudo firewall-cmd --add-port=10251/tcp --permanent sudo firewall-cmd --add-port=10252/tcp --permanent sudo firewall-cmd --add-port=2379/tcp --permanent sudo firewall-cmd --add-port=2380/tcp --permanent sudo firewall-cmd --reload
-
(En ocne-worker) Defina las reglas de firewall para los nodos de trabajador.
sudo firewall-cmd --zone=trusted --add-interface=cni0 --permanent sudo firewall-cmd --add-port=8090/tcp --permanent sudo firewall-cmd --add-port=10250/tcp --permanent sudo firewall-cmd --add-port=10255/tcp --permanent sudo firewall-cmd --add-port=8472/udp --permanent sudo firewall-cmd --reload
Carga del módulo de filtrado de puentes
-
(En ocne-control y ocne-worker) Active y cargue el módulo.
sudo modprobe br_netfilter sudo sh -c 'echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf'
Configuración del nodo de operador
El nodo de operador realiza y gestiona el despliegue de entornos, incluido el despliegue del cluster de Kubernetes. Un nodo de operador puede ser un nodo del cluster de Kubernetes o un host independiente, como en este tutorial. Instale la CLI, el servidor de API de plataforma y las utilidades de Oracle Cloud Native Environment Platform en el nodo de operador.
-
(En ocne-operator) Instale la CLI de la plataforma, el servidor de API de la plataforma y las utilidades.
sudo dnf -y install olcnectl olcne-api-server olcne-utils
-
(En ocne-operator) Active el servicio
olcne-api-server
, pero no lo inicie.sudo systemctl enable olcne-api-server.service
Configurar los nodos de Kubernetes
Los nodos de trabajador y el plano de control de Kubernetes contienen los paquetes de utilidad y el agente de plataforma de entorno nativo de Oracle Cloud.
-
(En ocne-control y ocne-worker) Instale el paquete y las utilidades del agente de plataforma.
sudo dnf -y install olcne-agent olcne-utils
-
(En ocne-control y ocne-worker) Active
olcne-agent
(pero no inicie).sudo systemctl enable olcne-agent.service
Los pasos anteriores completan la configuración inicial y la instalación de software para cada nodo.
(Opcional) Configuración del Servidor Proxy
Si utiliza un servidor proxy, configúrelo con CRI-O en cada nodo de Kubernetes.
Nota: No es necesario en el entorno de prácticas libres.
-
(En todos los nodos) Cree el servicio CRIO.
sudo mkdir /etc/systemd/system/crio.service.d
-
(En todos los nodos) Abra el archivo de configuración de proxy con vi y defínalo en modo "insert".
sudo vi /etc/systemd/system/crio.service.d/proxy.conf
-
(En todos los nodos) Sustituya los valores de proxy adecuados para los de su entorno mediante el siguiente archivo de ejemplo.
[Service] Environment="HTTP_PROXY=proxy.example.com:80" Environment="HTTPS_PROXY=proxy.example.com:80" Environment="NO_PROXY=.example.com,192.0.2.*"
Configurar certificados de CA privada X.509
Utilice la secuencia de comandos /etc/olcne/gen-certs-helper.sh
proporcionada para generar una CA privada y certificados para los nodos. Ejecute la secuencia de comandos desde el directorio /etc/olcne
en el nodo de operador y guarde los archivos de certificado en el directorio actual.
-
(En ocne-operator, cree los certificados X.509.
cd /etc/olcne sudo ./gen-certs-helper.sh \ --cert-request-organization-unit "My Company Unit" \ --cert-request-organization "My Company" \ --cert-request-locality "My Town" \ --cert-request-state "My State" \ --cert-request-country US \ --cert-request-common-name pub.linuxvirt.oraclecvn.com \ --nodes ocne-worker.pub.linuxvirt.oraclevcn.com,ocne-control.pub.linuxvirt.oraclevcn.com,ocne-operator.pub.linuxvirt.oraclevcn.com
Proporcione la información de CA privada mediante las opciones
--cert-request*
. Algunas de estas opciones existen en el ejemplo. Ejecute el comandogen-certs-helper.sh --help
para obtener una lista completa de opciones.--cert-request-common-name
: proporcione el nombre de dominio del sistema de nombres de dominio (DNS) adecuado para su entorno.--nodes
: proporcione el nombre de dominio completo (FQDN) del operador, el plano de control y los nodos de trabajador.
Transferir los certificados de CA privados X.509
Después de generar los certificados, cópielos en cada uno de los nodos.
-
(En ocne-operator) Actualice los detalles del usuario en la secuencia de comandos de transferencia proporcionada.
sudo sed -i 's/USER=opc/USER=oracle/g' configs/certificates/olcne-tranfer-certs.sh
El tutorial requiere este paso porque el usuario por defecto del script es
opc
. Desde la instalación del producto con el usuariooracle
, actualice la variableUSER
en el script según corresponda. -
(En ocne-operator) Establezca los permisos para cada nodo.clave generada por la secuencia de comandos de creación de certificados.
sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-control.pub.linuxvirt.oraclevcn.com/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-operator.pub.linuxvirt.oraclevcn.com/node.key sudo chmod 644 /etc/olcne/configs/certificates/tmp-olcne/ocne-worker.pub.linuxvirt.oraclevcn.com/node.key
-
(En ocne-operator) Transfiera las secuencias de comandos a cada nodo.
Este paso requiere SSH sin contraseña configurado entre los nodos. La configuración de este tutorial está fuera del ámbito de este tutorial, pero está preconfigurada en el entorno de prácticas libres.
bash -ex /etc/olcne/configs/certificates/olcne-tranfer-certs.sh
-
(En todos los nodos) Verifique que los archivos se han copiado correctamente.
sudo -u olcne ls /etc/olcne/configs/certificates/production
Resultado de ejemplo:
[oracle@ocne-control ~]$ sudo -u olcne ls /etc/olcne/configs/certificates/production ca.cert node.cert node.key
Configurar certificados X.509 para el servicio Kubernetes externalIPs
El servicio externalip-validation-webhook-service
de Kubernetes necesita que se configuren certificados X.509 antes de desplegar Kubernetes.
-
(En ocne-operator) Genere los certificados.
cd /etc/olcne sudo ./gen-certs-helper.sh \ --cert-dir /etc/olcne/configs/certificates/restrict_external_ip/ \ --cert-request-organization-unit "My Company Unit" \ --cert-request-organization "My Company" \ --cert-request-locality "My Town" \ --cert-request-state "My State" \ --cert-request-country US \ --cert-request-common-name cloud.example.com \ --nodes externalip-validation-webhook-service.externalip-validation-system.svc,\ externalip-validation-webhook-service.externalip-validation-system.svc.cluster.local \ --one-cert \ --byo-ca-cert /etc/olcne/configs/certificates/production/ca.cert \ --byo-ca-key /etc/olcne/configs/certificates/production/ca.key
--byo-ca-*
: esta opción utiliza la clave y el certificado de CA creados anteriormente.
-
(En ocne-operator) Defina los permisos para el directorio que contiene la clave node.generada por la secuencia de comandos de creación de certificados.
sudo chown -R oracle:oracle /etc/olcne/configs/certificates/restrict_external_ip/
Inicie el servidor de API de plataforma
-
(En ocne-operator) Ejecute el script de inicialización de datos para configurar el servidor de API de plataforma para utilizar los certificados.
sudo /etc/olcne/bootstrap-olcne.sh \ --secret-manager-type file \ --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ --olcne-component api-server
Resultado de ejemplo:
[oracle@ocne-operator olcne]$ sudo /etc/olcne/bootstrap-olcne.sh \ > --secret-manager-type file \ > --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ > --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ > --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ > --olcne-component api-server * olcne-api-server.service - API server for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-api-server.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-api-server.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 13:35:19 GMT; 2s ago Main PID: 96132 (olcne-api-serve) Tasks: 7 (limit: 203120) Memory: 12.2M CGroup: /system.slice/olcne-api-server.service `-96132 /usr/libexec/olcne-api-server -i /etc/olcne/modules --secret-manager-type file --olcne-ca-path /etc/olcne... May 11 13:35:19 ocne-operator systemd[1]: Started API server for Oracle Linux Cloud Native Environments. May 11 13:35:19 ocne-operator olcne-api-server[96132]: time=11/05/22 13:35:19 level=info msg=Api server listening on: 8091
- También puede utilizar certificados gestionados por HashiCorp Vault. Este tutorial no incluye el uso de ese método.
-
(En ocne-operator) Confirme que el servidor de API de plataforma se está ejecutando.
sudo systemctl status olcne-api-server
Resultado de ejemplo:
[oracle@ocne-operator olcne]$ sudo systemctl status olcne-api-server * olcne-api-server.service - API server for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-api-server.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-api-server.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 10:44:30 GMT; 9min ago Main PID: 59600 (olcne-api-serve) Tasks: 7 (limit: 203120) Memory: 12.6M CGroup: /system.slice/olcne-api-server.service `-59600 /usr/libexec/olcne-api-server -i /etc/olcne/modules --secret-manager-type file --olcne-ca-path /etc/olcne/c> May 11 10:44:30 ocne-operator systemd[1]: Started API server for Oracle Linux Cloud Native Environments. May 11 10:44:30 ocne-operator olcne-api-server[59600]: time=11/05/22 10:44:30 level=info msg=Api server listening on: 8091 ...
-
(En ocne-operator) Pulse 'q' para salir del proceso y continuar con el siguiente paso.
Arranque de los agentes de plataforma
-
(En ocne-control y ocne-worker) Ejecute el script de inicialización para configurar el agente de plataforma para que utilice los certificados.
sudo /etc/olcne/bootstrap-olcne.sh \ --secret-manager-type file \ --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ --olcne-component agent
Resultado de ejemplo:
[oracle@ocne-worker ~]$ sudo /etc/olcne/bootstrap-olcne.sh \ > --secret-manager-type file \ > --olcne-node-cert-path /etc/olcne/configs/certificates/production/node.cert \ > --olcne-ca-path /etc/olcne/configs/certificates/production/ca.cert \ > --olcne-node-key-path /etc/olcne/configs/certificates/production/node.key \ > --olcne-component agent * olcne-agent.service - Agent for Oracle Linux Cloud Native Environments Loaded: loaded (/usr/lib/systemd/system/olcne-agent.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/olcne-agent.service.d `-10-auth.conf Active: active (running) since Wed 2022-05-11 11:13:58 GMT; 2s ago Main PID: 66500 (olcne-agent) Tasks: 8 (limit: 203120) Memory: 7.1M CGroup: /system.slice/olcne-agent.service `-66500 /usr/libexec/olcne-agent --secret-manager-type file --olcne-ca-path /etc/olcne/configs/certificates/produc... May 11 11:13:58 ocne-control systemd[1]: Started Agent for Oracle Linux Cloud Native Environments. May 11 11:13:58 ocne-control olcne-agent[66500]: time=11/05/22 11:13:58 level=info msg=Started server on[::]:8090
Creación de un archivo de configuración de CLI de plataforma
Los administradores pueden utilizar un archivo de configuración para simplificar la creación y la gestión de entornos y módulos. El archivo de configuración, escrito con una sintaxis YAML válida, incluye toda la información sobre los entornos y los módulos que se van a crear. El uso de un archivo de configuración guarda las entradas repetidas de las opciones de comandos de la CLI de Platform.
Durante el despliegue de prácticas, se genera automáticamente un archivo de configuración y está listo para su uso en el ejercicio. Para obtener más información sobre la creación manual de un archivo de configuración, consulte la documentación de Using a Configuration File.
-
(En ocne-operator) Visualice el contenido del archivo de configuración.
cat ~/myenvironment.yaml
Creación del entorno y el módulo de Kubernetes
-
(En ocne-operator) Cree el entorno.
cd ~ olcnectl environment create --config-file myenvironment.yaml
Resultado de ejemplo:
[oracle@ocne-operator ~]$ olcnectl environment create --config-file myenvironment.yaml Environment myenvironment created.
-
(En operador de llamadas) Cree el módulo de Kubernetes.
olcnectl module create --config-file myenvironment.yaml
Resultado de ejemplo:
[oracle@ocne-operator ~]$ olcnectl module create --config-file myenvironment.yaml Modules created successfully.
-
(En operador de llamadas) Valide el módulo de Kubernetes.
olcnectl module validate --config-file myenvironment.yaml
Resultado de ejemplo:
[oracle@ocne-operator ~]$ olcnectl module validate --config-file myenvironment.yaml Validation of module mycluster succeeded.
En este ejemplo, no hay errores de validación. Si hay errores, los comandos necesarios para corregir los nodos se proporcionan como salida de este comando.
-
(En operador de llamadas) Instale el módulo de Kubernetes.
olcnectl module install --config-file myenvironment.yaml
El despliegue de Kubernetes en los nodos puede tardar varios minutos en realizarse.
Resultado de ejemplo:
[oracle@ocne-operator ~]$ olcnectl module install --config-file myenvironment.yaml Modules installed successfully.
-
(En operador de llamadas) Valide el despliegue del módulo de Kubernetes.
olcnectl module instances --config-file myenvironment.yaml
Resultado de ejemplo:
[oracle@ocne-operator ~]$ olcnectl module instances --config-file myenvironment.yaml INSTANCE MODULE STATE mycluster kubernetes installed ocne-control.pub.linuxvirt.oraclevcn.com:8090 node installed ocne-worker.pub.linuxvirt.oraclevcn.com:8090 node installed
Configurar kubectl
-
(En ocne-control) 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
-
(En ocne-control), verifique que
kubectl
funcione.kubectl get nodes
Resultado de ejemplo:
[oracle@ocne-control ~]$ kubectl get nodes NAME STATUS ROLES AGE VERSION ocne-control Ready control-plane,master 10m v1.22.8+1.el8 ocne-worker Ready <none> 10m v1.22.8+1.el8
Para obtener más información
- Documentación del entorno nativo de Oracle Cloud
- Formación en entorno nativo de Oracle Cloud
- Suscripción a la formación de Oracle Linux
- Plan de estudios de Oracle Linux
Más recursos de aprendizaje
Explore otras prácticas en docs.oracle.com/learn o acceda a contenido de aprendizaje más gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en un explorador de formación de Oracle.
Para obtener documentación sobre los productos, visite Oracle Help Center.
Deploy Oracle Cloud Native Environment
F49692-05
May 2022
Copyright © 2022, Oracle and/or its affiliates.