Antes de instalar
- Configure una cuenta con Red Hat y configure una cuenta con Juniper Networks.
Necesitará la cuenta de Red Hat para usar el servicio de instalador asistido alojado y la cuenta de Juniper Networks para descargar los manifiestos, paquetes de contenedores y herramientas de Contrail.
- Configure la red de estructura y conecte sus nodos a la estructura dependiendo de si realiza la instalación con redes administradas por el usuario (Figura 1) o con redes administradas por clúster (Figura 1).
- Configure el equipo cliente del instalador asistido.
- Instale un sistema operativo nuevo en el equipo cliente del instalador asistido, configurando el sistema operativo mínimamente para lo siguiente:
- dirección IP estática y máscara (por ejemplo, 172.16.0.10/24) y puerta de enlace
- acceso a uno o más servidores DNS
- Conectividad SSH, incluido el acceso SSH raíz
- NTP
- rizo
- JQ
- Instale Helm 3.0 o posterior (opcional). Helm es necesario si desea instalar Contrail Analytics.
Los siguientes pasos se copian de https://helm.sh/docs/intro/install/ para su comodidad:
-
Descargue el script get_helm.sh:
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
-
Instale Helm.
chmod 700 get_helm.sh
./get_helm.sh
-
- Instale un sistema operativo nuevo en el equipo cliente del instalador asistido, configurando el sistema operativo mínimamente para lo siguiente:
- Descargue el paquete de manifiestos y herramientas de Contrail Networking de Juniper Networks.
- Descargue el paquete de manifiestos y herramientas de Contrail Networking (consulte Manifiestos y herramientas) en el equipo local.
- Copie el paquete de manifiestos y herramientas descargado en el equipo cliente del instalador asistido y extráigalo.
user@ai-client~/tmp$ tar -xzvf contrail-manifests-openshift-<version>.tgz
- Identifique los manifiestos que desea usar y cópielos en un directorio independiente. Para obtener una explicación de los manifiestos, consulte Manifiestos y herramientas para su lanzamiento.
Asegúrese de copiar todos los manifiestos que planea usar, incluidos los manifiestos de los subdirectorios, si corresponde. En nuestro ejemplo, copiamos los manifiestos en un directorio de manifiestos . No copie los subdirectorios en sí. El directorio de manifiestos debe ser un directorio plano.
- Rellene los manifiestos con las credenciales de inicio de sesión del repositorio.
Si está ejecutando la versión 22.1, este paso no se aplica a usted. Los manifiestos de la versión 22.1 se rellenan previamente con credenciales de trabajo.
Si está ejecutando la versión 22.2 o superior, deberá agregar sus credenciales de inicio de sesión del repositorio a los manifiestos de contrail-manifests-openshift/auth-registry . Consulte Configurar credenciales del repositorio.
- Personalice los manifiestos para su entorno según sea necesario.
Si ejecuta los nodos del clúster en máquinas virtuales, edite los siguientes archivos para hacer referencia a los nombres reales de las interfaces. Estos manifiestos deshabilitan las descargas de suma de comprobación en la interfaz con nombre de la máquina virtual. (Por lo general, la descarga de suma de comprobación solo se admite en NIC reales en servidores sin sistema operativo).
- 99-disable-offload-master.yaml: este manifiesto deshabilita la descarga en los nodos del plano de control en la interfaz utilizada para el tráfico del plano de control de Kubernetes. Esta es la interfaz que se conecta a la red 172.16.0.0/24 en nuestros ejemplos.
- 99-disable-offload-worker.yaml: este manifiesto deshabilita la descarga en los nodos de trabajo en la interfaz utilizada para el tráfico del plano de control de Kubernetes. Esta es la interfaz que se conecta a la red 172.16.0.0/24 en nuestros ejemplos.
- 99-disable-offload-master-vrrp.yaml (versión 22.2 o superior) o 99-disable-offload-master-ens4.yaml (versión 22.1): este manifiesto deshabilita la descarga en los nodos del plano de control de la interfaz utilizada para el plano de control de Contrail y el tráfico del plano de datos de usuario. Inclúyalo solo cuando ejecute una interfaz independiente para el control de Contrail y el tráfico de datos (por ejemplo, cuando se utilizan redes administradas por clústeres). Esta es la interfaz que se conecta a la red 10.16.0.0/24 en nuestro ejemplo de redes administradas por clúster.
- 99-disable-offload-worker-vrrp.yaml (versión 22.2 o superior) o 99-disable-offload-worker-ens4.yaml (versión 22.1): este manifiesto deshabilita la descarga en los nodos de trabajo en la interfaz utilizada para el plano de control de Contrail y el tráfico del plano de datos de usuario. Inclúyalo solo cuando ejecute una interfaz independiente para el control de Contrail y el tráfico de datos (por ejemplo, cuando se utilizan redes administradas por clústeres). Esta es la interfaz que se conecta a la red 10.16.0.0/24 en nuestro ejemplo de redes administradas por clúster.
Busque la línea
ExecStart=/sbin/ethtool -K ens3 tx off
oExecStart=/sbin/ethtool -K ens4 tx off
en estos manifiestos y cambie el nombre de la interfaz para que coincida con el nombre de la interfaz en el plano de control o nodo de trabajo, según corresponda. - Especifique la red de control y datos de Contrail si usa redes administradas por clúster.
Edite el archivo siguiente para hacer referencia a la subred y la puerta de enlace que está usando para el plano de control de Contrail y el tráfico del plano de datos de usuario:
- 99-network-configmap.yaml: este manifiesto especifica la red para el plano de control de Contrail y el tráfico del plano de datos de usuario. Descomente la especificación ConfigMap de contrail-network-config en el manifiesto y especifique la subred y la puerta de enlace adecuadas (por ejemplo, 10.16.0.0/24 y 10.16.0.254).
- Instale contrailstatus en el equipo cliente del instalador asistido. Contrailstatus es un complemento kubectl que puede usar para consultar microservicios de Contrail y recursos específicos de Contrail.
Contrailstatus se empaqueta dentro del paquete de herramientas descargado. Cambie los permisos en el ejecutable kubectl-contrailstatus y cópielo en /usr/local/bin.
chmod +x tools/kubectl-contrailstatus cp tools/kubectl-contrailstatus /usr/local/bin
- Instale un equilibrador de carga (si está ejecutando redes administradas por el usuario). Este paso no es necesario cuando se ejecuta con redes administradas por clúster.
En este ejemplo, ejecutamos haxproxy en la máquina cliente del instalador asistido. Puede optar por ejecutar un equilibrador de carga diferente para su instalación.
- Instale el equilibrador de carga.
Por ejemplo:
sudo dnf install haproxy
- Configure el equilibrador de carga.
Utilizamos una única dirección IP (172.16.0.10) que distribuye la API y el tráfico de entrada a los nodos del clúster.
Tabla 1: Ejemplos de entradas del equilibrador de carga Tipo de tráfico Front-end Back End API
172.16.0.10:6443
172.16.0.11:6443
172.16.0.12:6443
172.16.0.13:6443
api-int 172.16.0.10:22623
172.16.0.11:22623
172.16.0.12:22623
172.16.0.13:22623
https (en inglés) 172.16.0.10:443
172.16.0.14:443
172.16.0.15:443
HTTP 172.16.0.10:80
172.16.0.14:80
172.16.0.15:80
frontend api bind 172.16.0.10:6443 default_backend controlplaneapi frontend apiinternal bind 172.16.0.10:22623 default_backend controlplaneapiinternal frontend secure bind 172.16.0.10:443 default_backend secure frontend insecure bind 172.16.0.10:80 default_backend insecure backend controlplaneapi balance roundrobin server cp0 172.16.0.11:6443 check server cp1 172.16.0.12:6443 check server cp2 172.16.0.13:6443 check backend controlplaneapiinternal balance roundrobin server cp0 172.16.0.11:22623 check server cp1 172.16.0.12:22623 check server cp2 172.16.0.13:22623 check backend secure balance roundrobin server worker0 172.16.0.14:443 check server worker1 172.16.0.15:443 check backend insecure balance roundrobin server worker0 172.16.0.14:80 check server worker1 172.16.0.15:80 check
- Inicie el equilibrador de carga.
Por ejemplo:
systemctl start haproxy
Nota:Si está ejecutando con selinux, es posible que deba permitir explícitamente que haproxy escuche en los puertos (
setsebool -P haproxy_connect_any 1)
.
- Instale el equilibrador de carga.
- Instale un servidor DNS/DHCP en su red para servir a los nodos de Kubernetes.
En este ejemplo, ejecutamos dnsmasq en el equipo cliente del instalador asistido. Puede optar por ejecutar un servidor DNS/DHCP diferente para su instalación.
- Instale el servidor DNS/DHCP.
Dnsmasq está preinstalado en algunos paquetes de RHEL OS. Si no está preinstalado, puede instalarlo de la siguiente manera:
sudo dnf install dnsmasq
- Configure el nombre de dominio y las entradas DHCP.
Tabla 2: Ejemplos de asignaciones DHCP Dirección IP del nombre de dominio completo ocp1.mycluster.contrail.lan 172.16.0.11 ocp2.mycluster.contrail.lan 172.16.0.12 ocp3.mycluster.contrail.lan 172.16.0.13 ocp4.mycluster.contrail.lan 172.16.0.14 ocp5.mycluster.contrail.lan 172.16.0.15 Nota:Cuando se utiliza el servicio de instalador asistido, el nombre de dominio completo se construye de la siguiente manera:
<hostname>.<cluster name>.<domain name>
En este ejemplo, usamos ocpn como nombre de host, mycluster como nombre de clúster y contrail.lan como nombre de dominio.
- Configure las entradas DNS.
Tabla 3: Ejemplos de entradas DNS Dirección IP del nombre de host Nota ocp1.mycluster.contrail.lan 172.16.0.11 Igual que la asignación DHCP ocp2.mycluster.contrail.lan 172.16.0.12 Igual que la asignación DHCP ocp3.mycluster.contrail.lan 172.16.0.13 Igual que la asignación DHCP ocp4.mycluster.contrail.lan 172.16.0.14 Igual que la asignación DHCP ocp5.mycluster.contrail.lan 172.16.0.15 Igual que la asignación DHCP api.mycluster.contrail.lan 172.16.0.10 Equilibrador de carga para tráfico de API externo. Obligatorio solo para redes administradas por el usuario. api-int.mycluster.contrail.lan 172.16.0.10 Equilibrador de carga para el tráfico interno de la API. Obligatorio solo para redes administradas por el usuario. apps.mycluster.contrail.lan 172.16.0.10 Equilibrador de carga para el tráfico de entrada. Obligatorio solo para redes administradas por el usuario. *.apps.mycluster.contrail.lan 172.16.0.10 Equilibrador de carga para el tráfico de entrada. Obligatorio solo para redes administradas por el usuario. dhcp-host=52:54:00:00:11:11,ocp1.mycluster.contrail.lan,172.16.0.11 dhcp-host=52:54:00:00:11:22,ocp2.mycluster.contrail.lan,172.16.0.12 dhcp-host=52:54:00:00:11:33,ocp3.mycluster.contrail.lan,172.16.0.13 dhcp-host=52:54:00:00:11:44,ocp4.mycluster.contrail.lan,172.16.0.14 dhcp-host=52:54:00:00:11:55,ocp5.mycluster.contrail.lan,172.16.0.15 host-record=api.mycluster.contrail.lan,172.16.0.10 address=/.apps.mycluster.contrail.lan/172.16.0.10 address=/api-int.mycluster.contrail.lan/172.16.0.10
- Inicie el servidor DNS/DHCP.
Por ejemplo:
systemctl start dnsmasq
- Instale el servidor DNS/DHCP.
- Descargue la herramienta de interfaz de línea de comandos (oc) OpenShift de Red Hat. Este paquete incluye kubectl.
- En el navegador de su computadora local, vaya a https://console.redhat.com/openshift/downloads#tool-oc y descargue la herramienta de interfaz de línea de comandos (oc) OpenShift.
- Copie el paquete descargado en el equipo cliente del instalador asistido y descomítelo.
user@ai-client:~/$ tar -xzvf openshift-client-linux.tar.gz README.md oc kubectl
- Copie los ejecutables oc y kubectl en un directorio de su ruta (por ejemplo, /usr/local/bin).