Neste tópico, explicamos como usar as políticas de rede do Kubernetes para proteger os pods do Cassandra e do Redis em um cluster da Apigee híbrida .
Visão geral
Quando quiser controlar o fluxo de tráfego no nível do endereço IP ou da porta (camada 3 ou 4 de OSI), use as políticas de rede do Kubernetes para aplicativos no cluster. As políticas de rede são uma construção centrada em aplicativos que podem ser usadas para especificar como um pod pode se comunicar com outros pods no cluster.
Na Apigee híbrida, é possível usar políticas de rede do Kubernetes para isolar pods do Cassandra para que somente os pods que se destinam a se comunicar com o Cassandra sejam permitidos, como os pods de ambiente de execução, Synchronizer e Mart. Outros pods no cluster, como os pods Ingres e Watcher, que não precisam se comunicar com o Cassandra, estão bloqueados para fazer isso.
Se você não tiver restrições sobre quais pods podem interagir no cluster, não será necessário usar políticas de rede do Kubernetes.
Pré-requisitos
-
Ative as políticas de rede no cluster.
- GKE: consulte Como ativar a aplicação da política de rede.
- EKS: consulte Como instalar o complemento de mecanismo de política de rede do Calico.
- AKS: consulte Tráfego seguro entre pods usando políticas de rede no Azure Kubernetes Service (AKS) .
- Outras plataformas: procure instruções para ativar políticas de rede no cluster fornecidas pelo fornecedor específico da plataforma.
- Um cluster híbrido da Apigee, atualmente em execução, versão 1.8 ou mais recente.
Procedimento
Faça o download e extraia o pacote de lançamento apigeectl
.
Linux
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.11.2/apigeectl_linux_64.tar.gz
Mac OS
curl -LO \ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.11.2/apigeectl_mac_64.tar.gz
Windows
curl -LO ^ https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.11.2/apigeectl_windows_64.zip
Os arquivos de configuração das políticas de rede do Kubernetes para o Cassandra e o Redis estão na
seguinte estrutura de diretórios no diretório apigeectl
:
└── apigeectl └── examples └── network-policies └── securing-cassandra-redis-pods ├── README.md ├── base │ └── cluster-scoped-communication │ ├── cassandra │ │ ├── kustomization.yaml │ │ ├── networkpolicy-cassandra-allow-controller.yaml │ │ ├── networkpolicy-cassandra-allow-intranode.yaml │ │ ├── networkpolicy-cassandra-allow-mart.yaml │ │ ├── networkpolicy-cassandra-allow-runtime.yaml │ │ ├── networkpolicy-cassandra-alow-sync.yaml │ │ ├── networkpolicy-cassandra-create-user.yaml │ │ ├── networkpolicy-cassandra-monitoring.yaml │ │ └── networkpolicy-cassandra-remove-dc.yaml │ └── redis │ ├── kustomization.yaml │ ├── networkpolicy-redis-envoy.yaml │ └── networkpolicy-redis.yaml └── overlays └── ORG_NAME └── kustomization.yaml
Em que ORG_NAME
é o nome da organização da Apigee.
- Rotule os namespaces com o seguinte comando:
kubectl label namespace apigee app=apigee
kubectl label namespace apigee-system app=apigee-system
- Aplique as políticas de rede com o seguinte comando:
kubectl apply -k ${APIGEECTL_HOME}/examples/network-policies/securing-cassandra-redis-pods/overlays/ORG_NAME
- Valide se as políticas de rede foram aplicadas com o seguinte comando:
kubectl get netpol -n apigee
As seguintes políticas de rede precisam ser criadas no namespace
apigee
:NAME POD-SELECTOR AGE cassandra-from-mart app=apigee-cassandra 4d5h cassandra-from-runtime app=apigee-cassandra 4d5h cassandra-from-sync app=apigee-cassandra 4d5h cassandra-to-cassandra app=apigee-cassandra 4d5h controller-to-cassandra app=apigee-cassandra 4d5h redis-from-redisenvoy app=apigee-redis 3d18h redisenvoy-from-runtime app=apigee-redis-envoy 3d18h