¿Por qué falla la conectividad VPN strongSwan después de añadir o suprimir nodos trabajadores?
Infraestructura clásica
Ha establecido previamente una conexión VPN activa utilizando el servicio VPN IPSec de strongSwan. Sin embargo, después de haber añadido o suprimido un nodo trabajador en el clúster, aparecen uno o varios de los siguientes síntomas:
- No tiene un estado de VPN de
ESTABLISHED
- No puede acceder a nuevos nodos de trabajador desde la red local
- No puede acceder a la red remota desde los pods que se ejecutan en nodos de trabajador nuevos
Si ha añadido un nodo trabajador a una agrupación de nodos trabajadores:
- El nodo trabajador se ha suministrado en una nueva subred privada que no se expone a través de la conexión VPN existente mediante los valores
localSubnetNAT
olocal.subnet
existentes. - No se pueden añadir rutas de VPN al nodo de trabajador porque el nodo de trabajador tiene marcas o etiquetas que no están incluidas en los valores de
tolerations
onodeSelector
existentes. - El pod de VPN se ejecuta en el nodo trabajador nuevo, pero la dirección IP pública de dicho nodo trabajador no está permitida por el cortafuegos local.
Si ha suprimido un nodo trabajador:
- Ese nodo trabajador era el único nodo en el que se estaba ejecutando un pod de VPN, debido a las restricciones en algunas marcas o etiquetas en los valores existentes de
tolerations
onodeSelector
.
Actualice los valores de diagrama de Helm para reflejar los cambios del nodo trabajador.
-
Suprima el diagrama de Helm existente.
helm uninstall <release_name> -n <project>
-
Abra el archivo de configuración para el servicio VPN de strongSwan.
helm show values iks-charts/strongswan > config.yaml
-
Compruebe los valores siguientes y cambie los valores para reflejar los nodos trabajadores añadidos o suprimidos necesarios.
Si ha añadido un nodo trabajador:
localSubnetNAT
: El trabajador añadido puede estar desplegado en una subred privada nueva diferente a las demás subredes existentes en las que se encuentran otros nodos trabajadores. Si utiliza NAT de subred para volver a correlacionar las direcciones IP locales privadas del clúster y el trabajador se añade a una nueva subred, añada el CIDR de la nueva subred a este valor.nodeSelector
- Si anteriormente ha limitado el despliegue pods de VPN a los trabajadores con una etiqueta específica, asegúrese de que el nodo trabajador añadido también tiene dicha etiqueta.
tolerations
- Si ha aplicado una marca en el nodo trabajador añadido, cambie este valor para permitir que el pod de VPN se ejecute en todos los trabajadores con cualquier marca o con marcas específicas.
local.subnet
- El trabajador añadido puede estar desplegado en una subred privada nueva diferente a las subredes existentes en las que se encuentran otros trabajadores. Si las apps están expuestas por los servicios NodePort o LoadBalancer en la red privada
y las apps están en el trabajador añadido, añada el CIDR de la nueva subred a este valor. Si añade valores a
local.subnet
, compruebe los valores de VPN para la subred local, para ver si también deben actualizarse.
Si ha suprimido un nodo trabajador:
localSubnetNAT
- Si utiliza NAT de subred para volver a correlacionar direcciones IP locales privadas específicas, elimine las direcciones IP de esta configuración que pertenezcan al trabajador antiguo. Si utiliza NAT de subred para volver a correlacionar
subredes enteras y no quedan trabajadores en una subred, elimine dicho CIDR de subred de este valor.
nodeSelector
: Si con anterioridad limitó el despliegue de pod de VPN a un trabajador individual y dicho trabajador fue suprimido, cambie este valor para permitir que el pod de VPN se ejecute en otros trabajadores. tolerations
- Si no ha aplicado ninguna marca en el trabajador que ha suprimido, y los únicos trabajadores que quedan están marcados, cambie este valor para permitir que todos los pods de VPN se ejecuten en trabajadores con cualquier marca o con marcas específicas.
-
Instale el nuevo diagrama de Helm con los valores actualizados.
helm install <release_name> iks-charts/strongswan -f config.yaml
-
Compruebe el estado de despliegue del diagrama. Cuando el diagrama está listo, el campo STATUS, situado cerca de la parte superior de la salida, tiene el valor
DEPLOYED
.helm status <release_name>
-
A veces, es posible que tenga que cambiar los valores locales y los valores de cortafuegos para que coincidan con los cambios realizados en el archivo de configuración de VPN.
-
Inicie la VPN.
- Si el clúster inicia la conexión VPN (
ipsec.auto
se establece enstart
), inicie la VPN en la pasarela local y luego inicie la VPN en el clúster. - Si la pasarela local inicia la conexión VPN (
ipsec.auto
se establece enauto
), inicie la VPN en el clúster y luego inicie la VPN en la pasarela local.
- Si el clúster inicia la conexión VPN (
-
Establezca la variable de entorno
STRONGSWAN_POD
.export STRONGSWAN_POD=$(oc get pod -l app=strongswan,release=<release_name> -o jsonpath='{ .items[0].metadata.name }')
-
Compruebe el estado de la VPN.
oc exec $STRONGSWAN_POD -- ipsec status
- Si la conexión VPN tiene el estado
ESTABLISHED
, la conexión VPN se ha realizado correctamente. No se requiere ninguna otra acción. - Si sigue teniendo problemas de conexión, consulte ¿Por qué no puedo establecer la conectividad de VPN con el diagrama de Helm de StrongSwan? para resolver problemas de la conexión VPN.
- Si la conexión VPN tiene el estado