Implementación de redes de contenedor para un host de Docker de Windows independiente
El complemento Azure CNI habilita las redes por contenedor/pod para clústeres de Kubernetes y hosts de Docker independientes. En este artículo, aprenderá a instalar y configurar el complemento CNI para un host de Docker de Windows independiente.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
Crear una red virtual y un host de Azure Bastion
El procedimiento siguiente crea una red virtual con una subred de recursos, una subred de Azure Bastion y un host de Bastion:
En el portal, busque y seleccione Redes virtuales.
En la página Redes virtuales, seleccione y Crear.
En la pestaña Datos básicos de Crear red virtual, escriba o seleccione la siguiente información:
Configuración Valor Detalles del proyecto Suscripción Selecciona tu suscripción. Resource group Seleccione Crear nuevo.
Escriba test-rg para el nombre.
Seleccione Aceptar.Detalles de instancia Nombre Escriba vnet-1. Region Seleccione Este de EE. UU. 2. Seleccione Siguiente para ir a la pestaña Seguridad.
En la sección Azure Bastion, seleccione Habilitar Azure Bastion.
Bastion usa el explorador para conectarse a las máquinas virtuales de la red virtual a través del shell seguro (SSH) o el protocolo de escritorio remoto (RDP) mediante sus direcciones IP privadas. Las máquinas virtuales no necesitan direcciones IP públicas, software cliente ni configuración especial. Para más información, consulte ¿Qué es Azure Bastion?.
Nota:
Los precios por hora comienzan desde el momento en que se implementa Bastion, independientemente del uso de datos salientes. Para más información, consulte Precios y SKU. Si va a implementar Bastion como parte de un tutorial o prueba, se recomienda eliminar este recurso una vez que haya terminado de usarlo.
En Azure Bastion, escriba o seleccione la información siguiente:
Configuración Valor Nombre de host de Azure Bastion Escriba bastión. Dirección IP pública de Azure Bastion Seleccione Crear una dirección IP pública.
Escriba public-ip-bastion en Nombre.
Seleccione Aceptar.Seleccione Siguiente para continuar a la pestaña Direcciones IP.
En el cuadro espacio de direcciones de Subredes, seleccione la subred predeterminada.
En Agregar subred, escriba o seleccione la información siguiente:
Configuración Valor Propósito de la subred Deje el valor predeterminado Predeterminado. Nombre Escriba subnet-1. IPv4 Intervalo de direcciones IPv4 Deje el valor predeterminado de 10.0.0.0/16. Dirección inicial Deje el valor predeterminado de 10.0.0.0. Size Deje el valor predeterminado de /24 (256 direcciones). Seleccione Guardar.
En la parte inferior de la ventana, seleccione Revisar y crear. Cuando se supera la validación, seleccione Crear.
El host de Bastion y la red pueden tardar unos minutos en implementarse. Continúe con los pasos siguientes cuando se completen la implementación o la creación de la red virtual.
Creación de una máquina virtual de prueba
El procedimiento siguiente crea una máquina virtual (VM) de prueba denominada vm-1 en la red virtual.
En el portal, busque y seleccione Máquinas virtuales.
En Máquinas virtuales, seleccione + Crear y, después, Máquina virtual de Azure.
En la pestaña Datos básicos de Crear una máquina virtual, escriba o seleccione la siguiente información:
Configuración Valor Detalles del proyecto Suscripción Selecciona tu suscripción. Resource group Seleccione test-rg. Detalles de instancia Nombre de la máquina virtual Escriba vm-1. Region Seleccione Este de EE. UU. 2. Opciones de disponibilidad Seleccione No se requiere redundancia de la infraestructura. Tipo de seguridad Deje el valor predeterminado Estándar. Imagen Selecciona Windows Server 2022 Datacenter - x64 Gen2. Arquitectura VM Deje el valor predeterminado, x64. Size Seleccione un tamaño. Cuenta de administrador Tipo de autenticación Seleccione Contraseña. Nombre de usuario escriba usuarioazure. Contraseña Escriba una contraseña. Confirmar contraseña Reescriba la contraseña. Reglas de puerto de entrada Puertos de entrada públicos Seleccione Ninguno. Seleccione la pestaña Redes en la parte superior de la página.
En la pestaña Redes, escriba o seleccione la siguiente información:
Parámetro Valor Interfaz de red Virtual network Seleccione vnet-1. Subnet Seleccione subnet-1 (10.0.0.0/24). Dirección IP pública Selecciona Ninguno. Grupo de seguridad de red de NIC Seleccione Advanced (Avanzadas). Configuración del grupo de seguridad de red Seleccione Crear nuevo.
Escriba nsg-1 como nombre.
Deje el resto de los valores predeterminados y seleccione Aceptar.Deje el resto de las opciones en sus valores predeterminados y luego seleccione Revisar + crear.
Revise la configuración y seleccione Crear.
Nota
Las máquinas virtuales de una red virtual con un host bastión no necesitarán direcciones IP públicas. Bastion proporcionará la dirección IP pública y las máquinas virtuales usarán direcciones IP privadas para comunicarse dentro de la red. Es posible quitar las direcciones IP públicas de cualquier máquina virtual en redes virtuales hospedadas por Bastion. Para obtener más información, consulte Desasociación de una dirección IP pública de una máquina virtual de Azure.
Nota:
Azure proporciona una dirección IP de acceso de salida predeterminada para las máquinas virtuales que no tienen asignada una dirección IP pública o están en el grupo back-end de un equilibrador de carga de Azure básico interno. El mecanismo de dirección IP de acceso de salida predeterminado proporciona una dirección IP de salida que no se puede configurar.
La dirección IP de acceso de salida predeterminada está deshabilitada cuando se produce uno de los siguientes eventos:
- Se asigna una dirección IP pública a la máquina virtual.
- La máquina virtual se coloca en el grupo back-end de un equilibrador de carga estándar, con o sin reglas de salida.
- Se asigna un recurso de Azure NAT Gateway a la subred de la máquina virtual.
Las máquinas virtuales creadas mediante conjuntos de escalado de máquinas virtuales en modo de orquestación flexible no tienen acceso de salida predeterminado.
Para más información sobre las conexiones de salida en Azure, vea Acceso de salida predeterminado en Azure y Uso de traducción de direcciones de red (SNAT) de origen para conexiones de salida.
Incorporación de configuración de IP
El complemento Azure CNI asigna direcciones IP a contenedores en función de un grupo de direcciones IP que crea en la interfaz de red virtual de la máquina virtual. Para cada contenedor del host, debe existir una configuración de IP en la interfaz de red virtual. Si el número de contenedores del servidor supera las configuraciones IP de la interfaz de red virtual, el contenedor se iniciará pero no tendrá una dirección IP.
En esta sección, agregará una configuración de IP a la interfaz de red virtual de la máquina virtual que creó anteriormente.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Máquina virtual. En los resultados de la búsqueda, selecciona Máquinas virtuales.
Seleccione vm-1.
En Configuración, seleccione Redes.
Seleccione el nombre de la interfaz de red junto a Interfaz de red:. La interfaz de red se denomina vm-1 con un número aleatorio.
En la hoja Configuración de la interfaz de red, seleccione Configuraciones IP.
En Configuraciones IP, seleccione ipconfig1 en Nombre.
En la configuración ipconfig1, cambie la asignación de la dirección IP privada de Dinámica a Estática.
Seleccione Guardar.
Vaya a Configuraciones de IP.
Seleccione +Agregar.
Para Agregar configuración de IP, escriba o seleccione esta información:
Configuración Value Nombre Escriba ipconfig-2. Configuración de dirección IP privada Asignación Seleccione Estática. Dirección IP Escriba 10.0.0.5. Seleccione Aceptar.
Compruebe que se agregó ipconfig2 como una configuración de IP secundaria.
Repita los pasos del 1 al 13 para agregar tantas configuraciones como contenedores desee implementar en el host del contenedor.
Configuración de direcciones IP en Windows
Para asignar varias direcciones IP a una máquina virtual Windows, las direcciones IP deben agregarse a la interfaz de red en Windows. En esta sección, iniciará sesión en la máquina virtual y establecerá las configuraciones de IP que creó en la sección anterior.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Máquina virtual. En los resultados de la búsqueda, selecciona Máquinas virtuales.
Seleccione vm-1.
En la Información general de vm-1, seleccione Connect y, luego, Bastion.
Escriba el nombre de usuario y la contraseña que creó al implementar la máquina virtual en los pasos anteriores.
Seleccione Conectar.
Abra la configuración de las conexiones de red en la máquina virtual. Seleccione Iniciar ->Ejecutar y escriba
ncpa.cpl
.Seleccione Aceptar.
Seleccione la interfaz de red de la máquina virtual y, a continuación, Propiedades:
En Propiedades de Ethernet, seleccione Protocolo de Internet Versión 4 (TCP/IPv4) y, a continuación, Propiedades.
En la pestaña General, escriba o seleccione la siguiente información:
Configuración Valor Seleccione Usar la siguiente dirección IP: Dirección IP: Escriba 10.0.0.4. Máscara de subred: Escriba 255.255.255.0. Puerta de enlace predeterminada Escriba 10.0.0.1. Seleccione Usar las siguientes direcciones de servidor DNS: Servidor DNS preferido: Escriba 168.63.129.16 Esta dirección IP es la dirección IP asignada por DHCP para el DNS de Azure predeterminado Seleccione Avanzado….
En Direcciones IP, seleccione Agregar....
Escriba o seleccione la siguiente información:
Configuración Valor Dirección TCP/IP Dirección IP: Escriba 10.0.0.5. Máscara de subred: Escriba 255.255.255.0. Seleccione Agregar.
Para agregar más direcciones IP que se correspondan con las configuraciones de IP adicionales creadas anteriormente, seleccione Agregar.
Seleccione Aceptar.
Seleccione Aceptar.
Seleccione Aceptar.
La conexión de Bastion se quita durante unos segundos a medida que se aplica la configuración de red. Espere unos segundos e intente volver a conectarse. Continúe cuando la reconexión se realice correctamente.
Instalación de Docker
El motor de contenedor de Docker se debe instalar y configurar en la máquina virtual que creó anteriormente.
Inicie sesión en la máquina virtual que creó anteriormente con el host de Azure Bastion que implementó con la red virtual.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Máquina virtual. En los resultados de la búsqueda, selecciona Máquinas virtuales.
Seleccione vm-1.
En la Información general de vm-1, seleccione Connect y, luego, Bastion.
Escriba el nombre de usuario y la contraseña que creó al implementar la máquina virtual en los pasos anteriores.
Seleccione Conectar.
Abra Windows PowerShell en vm-1.
En el ejemplo siguiente se instala Docker CE/Moby:
Invoke-WebRequest -UseBasicParsing "https://raw.githubusercontent.com/microsoft/Windows-Containers/Main/helpful_tools/Install-DockerCE/install-docker-ce.ps1" -o install-docker-ce.ps1 .\install-docker-ce.ps1
La máquina virtual se reiniciará para instalar la compatibilidad con contenedores en Windows. Vuelva a conectarse a la máquina virtual y la instalación de Docker continuará.
Para obtener más información sobre los contenedores de Windows, consulte Introducción: Preparación de Windows para contenedores.
Una vez que instale Docker en la máquina virtual, siga con los pasos de este artículo.
Instalación del complemento CNI y jq
El complemento Azure CNI se mantiene como un proyecto de GitHub y está disponible para su descarga desde la página de GitHub del proyecto. En este artículo, descargará el repositorio del complemento CNI en la máquina virtual y, a continuación, instalará y configurará el complemento.
Para más información sobre el complemento Azure CNI, consulte Microsoft Azure Container Networking.
En el cuadro de búsqueda que aparece en la parte superior del portal, escriba Máquina virtual. En los resultados de la búsqueda, selecciona Máquinas virtuales.
Seleccione vm-1.
En la Información general de vm-1, seleccione Connect y, luego, Bastion.
Escriba el nombre de usuario y la contraseña que creó al implementar la máquina virtual en los pasos anteriores.
Seleccione Conectar.
Use el ejemplo siguiente para descargar y extraer el complemento CNI en una carpeta temporal de la máquina virtual:
Invoke-WebRequest -Uri https://github.com/Azure/azure-container-networking/archive/refs/heads/master.zip -OutFile azure-container-networking.zip Expand-Archive azure-container-networking.zip -DestinationPath azure-container-networking
Para instalar el complemento CNI, cambie al directorio scripts de la carpeta del complemento CNI que ha descargado en el paso anterior. El comando de script de instalación requiere un número de versión para el complemento CNI. En el momento de redactar este artículo, la versión más reciente es
v1.4.39
. Si desea obtener el número de versión más reciente del complemento o versiones anteriores, consulte Versiones.cd .\azure-container-networking\azure-container-networking-master\scripts\ .\Install-CniPlugin.ps1 v1.4.39
El complemento CNI incluye un archivo de configuración de red integrado para el complemento. Use el ejemplo siguiente para copiar el archivo en el directorio de configuración de red:
Copy-Item -Path "c:\k\azurecni\bin\10-azure.conflist" -Destination "c:\k\azurecni\netconf"
Instalación de jq
El script que crea los contenedores con el complemento Azure CNI requiere la aplicación jq. Para obtener más información y la ubicación de descarga, consulte Descarga de jq.
Abra un explorador web en la máquina virtual y descargue la aplicación jq.
La descarga es un archivo ejecutable autocontenido para la aplicación. Copie el archivo ejecutable
jq-win64.exe
en el directorioC:\Windows
.
Creación de un contenedor de prueba
Para iniciar un contenedor con el complemento CNI, debe usar un script especial que viene con el complemento para crear e iniciar el contenedor. En el ejemplo siguiente, se crea un contenedor de Windows Server con el script del complemento CNI:
cd .\azure-container-networking\azure-container-networking-master\scripts\ .\docker-exec.ps1 vnetdocker1 default mcr.microsoft.com/windows/servercore/iis add
La imagen del contenedor puede tardar unos minutos en descargarse por primera vez. Cuando el contenedor se inicia e inicializa la red, la conexión de Bastion se desconecta. Espere unos segundos y para que se restablezca la conexión.
Para comprobar que el contenedor recibió la dirección IP que configuró anteriormente, conéctese al contenedor y vea la dirección IP:
docker exec -it vnetdocker1 powershell
Use el comando
ipconfig
en el ejemplo siguiente para comprobar que la dirección IP se asignó al contenedor:ipconfig
Salga del contenedor y cierre la conexión de Bastion a vm-1.
Cuando termine de usar los recursos que creó, puede eliminar el grupo de recursos y todos sus recursos.
En Azure Portal, busque y seleccione Grupos de recursos.
En la página Grupos de recursos, seleccione el grupo de recursos test-rg.
En la página test-rg, elija Eliminar grupo de recursos.
Escriba test-rg en Introducir nombre del grupo de recursos para confirmar la eliminación y, luego, seleccione Eliminar.
Pasos siguientes
En este artículo, aprendió a instalar el complemento Azure CNI y a crear un contenedor de prueba.
Para más información sobre las redes de contenedores de Azure y el servicio Azure Kubernetes, consulte: