Incluindo rotas estáticas em nós do trabalhador
Crie rotas estáticas em seus nós do trabalhador, ativando o complemento de rotas estáticas para clusters IBM Cloud® Kubernetes Service.
Sobre as rotas estáticas
Ao configurar sua rede de clusters para se comunicar com outras redes sobre a rede privada, pode ser necessário incluir rotas estáticas customizadas em seus nós do trabalhador. As rotas estáticas permitem que nós do trabalhador roteiem novamente pacotes de resposta com sucesso do seu cluster para um endereço IP em data center no local por meio de uma VPN ou de um dispositivo de gateway.
Por exemplo, você pode usar uma VPN para conectar seu cluster a um centro de dados no local sobre a rede privada. Além disso, sua conexão VPN privada preserva o endereço IP de origem em solicitações entre o cluster e o data center.
Quando um serviço no local envia uma solicitação para um app em seu cluster, o nó do trabalhador no qual seu pod do app está elimina a resposta devido à RPF filtragem de caminho reverso). A RPF é um recurso do kernel do Linux que elimina quaisquer respostas para endereços IP que não estão listados nas tabelas de roteamento do nó do trabalhador. A resposta é eliminada porque o endereço IP no local que foi preservado na solicitação não é roteável pelo nó do trabalhador.
Nesse caso, você pode criar uma rota estática para que, quando o endereço IP de origem de uma solicitação for de uma de suas sub-redes locais, a resposta seja enviada para o endereço IP do gateway de VPN. Ao incluir essa rota estática nas tabelas de roteamento dos nós do trabalhador, você assegura o seguinte:
- Os pacotes de resposta não são eliminados devido à RPF, porque uma regra de roteamento que aponta para o endereço IP no local existe.
- Os pacotes de resposta são roteados com sucesso primeiro por meio do endereço IP de gateway de VPN e, em seguida, redirecionados para o seu endereço IP no local.
O complemento do cluster de rota estática pode ser usado para aplicar e gerenciar rotas estáticas apenas. Você é responsável por configurar e gerenciar sua própria VPN, seu dispositivo de gateway ou a conexão do IBM Cloud® Direct Link.
Ativando o complemento de rota estática
Para começar a usar as rotas estáticas no IBM Cloud Kubernetes Service, ative o complemento de rota estática.
Antes de Iniciar
- Certifique-se de ter a função de acesso à plataforma Administrador do IAM para o cluster no IBM Cloud Kubernetes Service.
- Efetue login na sua conta. If applicable, target the appropriate resource group. Configure o contexto para o seu cluster.
Ativando o complemento de rota estática no console
Para usar o console do IBM Cloud, siga estas etapas.
- Em seu painel de cluster, clique no nome do cluster em que você deseja instalar o complemento de rota estática.
- Na placa Rota estática, clique em Instalar.
- Clique em Instalar novamente.
- Na placa Rota estática, verifique se o complemento está listado.
Ativando o complemento de rota estática com a CLI
Para usar a CLI, siga estas etapas.
-
Atualize o plug-in “
container-service” para a versão mais recente.ibmcloud update && ibmcloud plugin update container-service -
Ative o complemento
static-route.ibmcloud ks cluster addon enable static-route --cluster CLUSTER_NAME_OR_ID -
Verifique se o add-on de rota estática tem um status de
Addon Ready.ibmcloud ks cluster addon ls --cluster CLUSTER_NAME_OR_IDSaída de exemplo
Name Version Health State Health Status static-route 1.0.0 normal Addon Ready
Criando rotas estáticas
Após você ativar o complemento de rota estática, será possível criar e aplicar recursos para rotas customizadas.
-
Crie um arquivo YAML para um recurso de rota 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: InExemplo
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 o CIDR da sub-rede externa da qual são enviadas as solicitações para os nós do trabalhador, como uma sub-rede em uma rede no local. A sub-rede externa não pode estar nos seguintes intervalos reservados. O intervalo de interconexão
do dispositivo,
198.18.0.0/15, é permitido.10.0.0.0/8172.16.0.0/16172.18.0.0/16172.19.0.0/16172.20.0.0/16
gateway- Se o endereço IP de gateway existir na mesma sub-rede que os nós do trabalhador, especifique o endereço IP do gateway. Se o endereço IP de gateway existir em outra sub-rede na rede privada da IBM Cloud, não inclua este campo. Nesse caso,
os nós do trabalhador enviam respostas para o roteador de back-end da rede privada, e o roteador envia a resposta para o gateway na outra sub-rede. Quando a rota estática é criada, o endereço IP do roteador de back-end no intervalo
10.0.0.0/8é designado automaticamente como um gateway padrão. selectors- Para criar a rota estática apenas em determinados nós do trabalhador com base em rótulos do nó do trabalhador, inclua a
keyevaluespara o rótulo.
-
Crie as rotas estáticas, aplicando o arquivo YAML em seu cluster.
kubectl apply -f <route_name>.yaml -
Verifique se a rota estática foi criada. Na saída, verifique o
node_statuspara cada nó do trabalhador no qual você cria a rota estática.kubectl get staticroute <route_name> -o yamlSaída de exemplo
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