Configuração do acesso dentro da VPC
Esta seção descreve como acessar uma intranet de um contêiner (fora do cluster em uma VPC), incluindo acesso dentro da VPC e acesso entre VPCs.
Acesso dentro de VPC
O desempenho de acessar uma intranet a partir de um contêiner varia dependendo dos modelos de rede de contêineres de um cluster.
- Rede de túneis de contêineres
A rede de túneis de contêiner encapsula pacotes de dados de rede através de túneis baseados na rede de nó. Um contêiner pode acessar outros recursos na mesma VPC, desde que o nó possa acessar os recursos. Se o acesso falhar, verifique se o grupo de segurança do recurso de par permite o acesso do nó onde o contêiner está localizado.
- Cloud Native Network 2.0
No modelo Cloud Native Network 2.0, um contêiner recebe um endereço IP do bloco CIDR de uma VPC. O bloco CIDR do contêiner é a sub-rede da VPC onde o nó está localizado. O contêiner pode se comunicar naturalmente com outros endereços na VPC. Se o acesso falhar, verifique se o grupo de segurança de recursos peer permite o acesso do bloco CIDR do contêiner.
- Rede da VPC
O modelo de rede da VPC usa rotas da VPC para encaminhar o tráfego de contêiner. O bloco CIDR do contêiner e o nó da VPC não estão no mesmo bloco CIDR. Quando um contêiner acessa outros recursos na mesma VPC, o grupo de segurança do recurso correspondente deve permitir o acesso do bloco CIDR do contêiner.
Por exemplo, o bloco CIDR onde o nó do cluster reside é 192.168.10.0/24 e o bloco CIDR do contêiner é 172.16.0.0/16.
Há um ECS cujo endereço IP é 192.168.10.52 na VPC (fora do cluster). O grupo de segurança do ECS permite o acesso apenas do bloco CIDR do nó do cluster.
Nesse caso, se você executar ping em 192.168.10.52 do contêiner, a operação de ping falhará.
kubectl exec test01-6cbbf97b78-krj6h -it -- /bin/sh / # ping 192.168.10.25 PING 192.168.10.25 (192.168.10.25): 56 data bytes ^C --- 192.168.10.25 ping statistics --- 104 packets transmitted, 0 packets received, 100% packet loss
Configure o grupo de segurança para permitir o acesso do bloco CIDR do contêiner 172.16.0.0/16.
Neste caso, 192.168.10.52 pode ser pingado a partir do contêiner.
$ kubectl exec test01-6cbbf97b78-krj6h -it -- /bin/sh / # ping 192.168.10.25 PING 192.168.10.25 (192.168.10.25): 56 data bytes 64 bytes from 192.168.10.25: seq=0 ttl=64 time=1.412 ms 64 bytes from 192.168.10.25: seq=1 ttl=64 time=1.400 ms 64 bytes from 192.168.10.25: seq=2 ttl=64 time=1.299 ms 64 bytes from 192.168.10.25: seq=3 ttl=64 time=1.283 ms ^C --- 192.168.10.25 ping statistics --- 4 packets transmitted, 4 packets received, 0% packet loss
Acesso entre VPCs
O acesso entre VPCs é implementado ao estabelecer uma conexão de emparelhamento entre VPCs.
- No modelo de rede de túnel de contêiner, um contêiner pode acessar a VPC de par somente quando a comunicação é ativada entre a rede de nó e a VPC de par.
- O Cloud Native Network 2.0 é semelhante à rede de túnel de contêineres. Você só precisa habilitar a comunicação entre a sub-rede onde o contêiner está localizado e a VPC de mesmo nível.
- Cada rede da VPC tem um bloco CIDR de contêiner independente. Além do bloco CIDR da VPC, o bloco CIDR do contêiner também precisa ser conectado.
Suponha que existam duas VPCs.
- vpc-demo: seu bloco CIDR é 192.168.0.0/16, o cluster está em vpc-demo e o bloco CIDR do contêiner é 10.0.0.0/16.
- vpc-demo2: seu bloco CIDR é 10.1.0.0/16.
Crie uma conexão de emparelhamento chamada peering-demo (a VPC local é vpc-demo e a VPC de mesmo nível é vpc-demo2). Adicione o bloco CIDR do contêiner à rota da VPC de par.
Após essa configuração, você pode acessar o bloco CIDR de contêiner 10.0.0.0/16 em vpc-demo2. Durante o acesso, preste atenção à configuração do grupo de segurança e habilite a configuração da porta.
Acesso outros serviços de nuvem
Os serviços comuns que se comunicam com o CCE através de uma intranet incluem RDS, DCS, Kafka, RabbitMQ e ModelArts.
Além das configurações de rede descritas em Acesso dentro de VPC e Acesso entre VPCs, você também precisa verificar se esses serviços em nuvem permitem acesso externo. Por exemplo, a instância do DCS Redis pode ser acessada apenas pelos endereços IP em sua lista de permissões. Geralmente, esses serviços em nuvem podem ser acessados por endereços IP na mesma VPC. No entanto, o bloco CIDR do contêiner no modelo de rede da VPC é diferente do bloco CIDR da VPC. Portanto, você deve adicionar o bloco CIDR do contêiner à lista branca.
E se um contêiner não conseguir acessar uma intranet?
Se uma intranet não puder ser acessada de um contêiner, execute as seguintes operações:
- Exiba a regra de grupo de segurança do servidor de par para verificar se o contêiner tem permissão para acessar o servidor de par.
- O modelo de rede de túnel de contêiner precisa permitir o endereço IP do nó onde o contêiner está localizado.
- O modelo de rede da VPC precisa permitir o bloco CIDR do contêiner.
- O modelo Cloud Native Network 2.0 precisa permitir a sub-rede onde o contêiner está localizado.
- Verifique se uma lista branca está configurada para o servidor de par. Por exemplo, a instância do DCS Redis pode ser acessada apenas pelos endereços IP em sua lista de permissões. Adicione os blocos CIDR do contêiner e do nó à lista branca.
- Verifique se o mecanismo de contêiner está instalado no servidor de par e se ele entra em conflito com o bloco CIDR do contêiner no CCE. Se ocorrer um conflito de rede, o acesso falhará.