Adición de rutas estáticas a nodos trabajadores
Cree rutas estáticas en los nodos trabajadores habilitando el complemento de rutas estáticas para clústeres de IBM Cloud® Kubernetes Service.
Acerca de las rutas estáticas
Cuando configure la red del clúster para que se comunique con otras redes a través de la red privada, es posible que tenga que añadir rutas estáticas personalizadas en los nodos trabajadores. Las rutas estáticas permiten a los nodos trabajadores redireccionar correctamente paquetes de respuesta procedentes del clúster a una dirección IP del centro de datos local a través de una VPN o un dispositivo de pasarela.
Por ejemplo, puede utilizar una VPN para conectar el clúster a un centro de datos local en la red privada. Además, la conexión de VPN privada conserva la dirección IP de origen en las solicitudes entre el clúster y el centro de datos.
Cuando un servicio local envía una solicitud a una app del clúster, el nodo trabajador en el que está el pod de la app descarta la respuesta debido al filtrado de vía de acceso inversa (RPF). RPF es una característica de kernel de Linux que descarta cualquier respuesta a direcciones IP que no están en la lista de las tablas de direccionamiento del nodo trabajador. La respuesta se descarta porque el nodo trabajador no puede direccionar la dirección IP local que se ha conservado en la solicitud.
En este caso, puedes crear una ruta estática para que, cuando la dirección IP de origen de una solicitud proceda de una de tus subredes locales, la respuesta se envíe a la dirección IP de la pasarela VPN. Al añadir esta ruta estática a las tablas de direccionamiento de los nodos trabajadores, se asegura de lo siguiente:
- Los paquetes de respuesta no se descartan debido a RPF, porque existe una regla de direccionamiento que apunta a la dirección IP local.
- Los paquetes de respuesta se direccionan correctamente primero a través de la dirección IP de la pasarela de VPN y luego se redireccionan a la dirección IP local.
Se puede utilizar el complemento de clúster de ruta estática para aplicar y gestionar solo rutas estáticas. El usuario es el responsable de la configuración y la gestión de su VPN, su dispositivo de pasarela o su conexión de IBM Cloud® Direct Link.
Habilitación del complemento de ruta estática
Para empezar a trabajar con rutas estáticas en IBM Cloud Kubernetes Service, habilite el complemento de ruta estática.
Antes de empezar
- Asegúrese de que tiene el rol de acceso a la plataforma de IAM de Administrador para el clúster en IBM Cloud Kubernetes Service.
- Inicie una sesión en la cuenta. If applicable, target the appropriate resource group. Establezca el contexto para el clúster.
Habilitación del complemento de ruta estática desde la consola
Para usar la consola de IBM Cloud, siga estos pasos.
- En tu panel de control del clúster, haz clic en el nombre del clúster en el que deseas instalar el complemento de rutas estáticas.
- En la tarjeta Ruta estática, pulse Instalar.
- Vuelva a pulsar Instalar.
- En la tarjeta Ruta estática, verifique que se muestra el complemento.
Habilitación del complemento de ruta estática con la CLI
Para utilizar la CLI, siga estos pasos.
-
Actualiza el complemento «
container-service» a la versión más reciente.ibmcloud update && ibmcloud plugin update container-service -
Habilite el complemento
static-route.ibmcloud ks cluster addon enable static-route --cluster CLUSTER_NAME_OR_ID -
Verifique que el complemento de ruta estática tenga el estado
Addon Ready.ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_IDSalida de ejemplo
Name Version Health State Health Status static-route 1.0.0 normal Addon Ready
Creación de rutas estáticas
Después de habilitar el complemento de ruta estática, puede crear y aplicar recursos para rutas personalizadas.
-
Cree un archivo YAML para un recurso de ruta estática.
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: name: <route_name> spec: subnet: "<subnet_CIDR>" gateway: "<gateway_IP>" selectors: - key: "<label_key>" values: - "<label_value>" operator: InEjemplo
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: name: mystaticroute spec: subnet: "192.168.0.0/24" gateway: "10.0.0.1" selectors: - key: "kubernetes.io/arch" values: - "amd64" operator: Insubnet- Especifique el CIDR de la subred externa desde la que se envían las solicitudes a los nodos de trabajador, como por ejemplo una subred en una red local. La subred externa no puede estar en los rangos reservados siguientes. El rango de
interconexión de dispositivos,
198.18.0.0/15, está permitido.10.0.0.0/8172.16.0.0/16172.18.0.0/16172.19.0.0/16172.20.0.0/16
gateway- Si la dirección IP de pasarela existe en la misma subred que los nodos de trabajador, especifique la dirección IP de pasarela. Si la dirección IP de pasarela existe en otra subred de la red privada de IBM Cloud, no incluya este campo.
En este caso, los nodos trabajadores envían respuestas al direccionador de fondo de la red privada y el direccionador envía la respuesta a la pasarela de la otra subred. Cuando se crea la ruta estática, la dirección IP del direccionador
de fondo del rango
10.0.0.0/8se asigna automáticamente como pasarela predeterminada. selectors- Para crear la ruta estática solo en determinados nodos trabajadores en función de las etiquetas de los nodos trabajadores, incluya la
keyy losvaluespara la etiqueta.
-
Cree las rutas estáticas aplicando el archivo YAML al clúster.
kubectl apply -f <route_name>.yaml -
Verifique que se ha creado la ruta estática. En la salida, compruebe el
node_statusde cada nodo trabajador donde se haya creado las ruta estática.kubectl get staticroute <route_name> -o yamlSalida de ejemplo
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"static-route.ibm.com/v1","kind":"StaticRoute","metadata":{"annotations":{},"name":"mystaticroute"},"spec":{"selectors":[{"key":"kubernetes.io/arch","operator":"In","values":["amd64"]}],"subnet":"10.94.227.46/24"}} creationTimestamp: "2020-05-20T16:43:12Z" finalizers: - finalizer.static-route.ibm.com generation: 1 name: mystaticroute resourceVersion: "3753886" selfLink: /apis/static-route.ibm.com/v1/staticroutes/mystaticroute uid: f284359f-9d13-4e27-9d3a-8fb38cbc7a5c spec: selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24 status: nodeStatus: - error: "" hostname: 10.94.227.19 state: gateway: 10.94.227.1 selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24 - error: "" hostname: 10.94.227.22 state: gateway: 10.94.227.1 selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24