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 instalación asistida alojado, y necesitará la cuenta de Juniper Networks para descargar los manifiestos de CN2 desde el sitio de descargas de Juniper Networks ( https://support.juniper.net/support/downloads/?p=contrail-networking) y acceder al depósito de contenedores en https://enterprise-hub.juniper.net.
- Configure la red de estructura y conecte sus nodos a la estructura dependiendo de si está instalando redes administradas por el usuario (Figura 1) o redes administradas por clústeres (Figura 1).
- Configure el equipo cliente del instalador asistido.
- Instale un so nuevo en el equipo cliente del instalador asistido, configurando el SO 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
- Enrollamiento
- 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
-
Instalar Helm.
chmod 700 get_helm.sh
./get_helm.sh
-
- Instale un so nuevo en el equipo cliente del instalador asistido, configurando el SO mínimamente para lo siguiente:
- Descargue los manifiestos de CN2 de Juniper Networks.
- Descargue los manifiestos de CN2 (consulte Manifiestos) en su equipo local.
- Copie los manifiestos y el paquete de herramientas descargados en el equipo cliente del instalador asistido y extraiga.
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 de la versión.
Asegúrese de copiar todos los manifiestos que planea usar, incluidos los manifiestos de los subdirectorios, si corresponde. En nuestro ejemplo, copiamos los manifiestos a un directorio de manifiestos . No copie los subdirectorios ellos mismos. El directorio de manifiestos debe ser un directorio plano.
- Complete los manifiestos con las credenciales de inicio de sesión del repositorio.
Agregue sus credenciales de inicio de sesión de repositorio a los manifiestos contrail-manifests-openshift/auth-registry . Consulte Configurar credenciales de depósito.
- Personalice los manifiestos para su entorno según sea necesario.
Si está ejecutando los nodos del clúster en máquinas virtuales, edite los archivos siguientes para hacer referencia a los nombres reales de sus interfaces. Estos manifiestos deshabilitan las cargas de suma de comprobación en la interfaz denominada en 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 de la interfaz utilizada para el tráfico del plano de control de Kubernetes. Esta es la interfaz que se adjunta 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 adjunta a la red 172.16.0.0/24 en nuestros ejemplos.
- 99-disable-offload-master-vrrp.yaml: este manifiesto deshabilita la descarga en los nodos del plano de control de la interfaz utilizada para el tráfico del plano de control y del plano de datos del usuario de Contrail. Incluí esto solo cuando se ejecuta una interfaz independiente para el control Contrail y el tráfico de datos (como cuando se utilizan redes administradas por clústeres). Esta es la interfaz que se adjunta a la red 10.16.0.0/24 en nuestro ejemplo de redes administradas por clústeres.
- 99-disable-offload-worker-vrrp.yaml : 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 del usuario. Incluí esto solo cuando se ejecuta una interfaz independiente para el control Contrail y el tráfico de datos (como cuando se utilizan redes administradas por clústeres). Esta es la interfaz que se adjunta a la red 10.16.0.0/24 en nuestro ejemplo de redes administradas por clústeres.
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 interfaz en su plano de control o nodo de trabajo, según corresponda. - Especifique la red de datos y el control Contrail si utiliza redes administradas por clústeres.
Edite el archivo siguiente para hacer referencia a la subred y la puerta de enlace que está utilizando para el plano de control de Contrail y el tráfico de plano de datos del usuario:
- 99-network-configmap.yaml: este manifiesto especifica la red para el plano de control de Contrail y el tráfico de plano de datos del usuario. Desajuste 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).
- Si está integrando CN2 con Juniper Apstra, configure sus credenciales de inicio de sesión de Juniper Apstra.
Configure sus credenciales de inicio de sesión de Apstra en el manifiesto contrail-manifests-openshift/plugins/111-apstra-secret.yaml . Asegúrese de que el nombre de usuario y la contraseña que especifique estén codificados en base64. Para obtener más información, consulte https://www.juniper.net/documentation/us/en/software/cn-cloud-native23.2/cn-cloud-native-feature-guide/index.html.
- Instale contrailstatus en el equipo cliente del instalador asistido. Contrailstatus es un complemento kubectl que puede usar para consultar microservicios de CN2 y recursos específicos de CN2.
El ejecutable contrailstatus se empaqueta dentro del paquete de herramientas descargado. Extraiga y copie el ejecutable kubectl-contrailstatus a /usr/local/bin.
- Instale un equilibrador de carga (si se ejecuta con redes administradas por el usuario). Este paso no es necesario cuando se ejecuta con redes administradas por clústeres.
En este ejemplo, ejecutamos haxproxy en el equipo cliente del instalador asistido. Puede elegir 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.
Usamos 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: Entradas de ejemplo 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 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 se ejecuta 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 ejecutar un servidor DNS/DHCP diferente para su instalación.
- Instale el servidor DNS/DHCP.
Dnsmasq está preinstalado en algunos paquetes 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: Asignación de ejemplo de DHCP Dirección IP de 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 instalación asistida, 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 nombre de clúster y contrail.lan nombre de dominio.
- Configure sus entradas DNS.
Tabla 3: Entradas DNS de ejemplo Nota dela dirección IP del nombre de host ocp1.mycluster.contrail.lan 172.16.0.11 Igual que la asignación de DHCP ocp2.mycluster.contrail.lan 172.16.0.12 Igual que la asignación de DHCP ocp3.mycluster.contrail.lan 172.16.0.13 Igual que la asignación de DHCP ocp4.mycluster.contrail.lan 172.16.0.14 Igual que la asignación de DHCP ocp5.mycluster.contrail.lan 172.16.0.15 Igual que la asignación de 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 tráfico interno de 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) de 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) de OpenShift.
- Copie el paquete descargado en el equipo de cliente del instalador asistido y desentar.
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).