Este tópico explica como usar as políticas de rede do Kubernetes para proteger os pods do Cassandra e do Redis num cluster híbrido do Apigee .
Vista geral
Quando quiser controlar o fluxo de tráfego ao nível do endereço IP ou da porta (camada OSI 3 ou 4), pode usar políticas de rede do Kubernetes para aplicações no seu cluster. As políticas de rede são uma construção centrada na aplicação que pode usar para especificar como um pod tem autorização para comunicar com outros pods no seu cluster.
No Apigee hybrid, pode usar políticas de rede do Kubernetes para isolar pods do Cassandra, de modo que apenas os pods destinados a comunicar com o Cassandra tenham autorização para o fazer, como os pods do Runtime, do Synchronizer e do Mart. Outros pods no cluster, como os pods Ingres e Watcher, que não precisam de comunicar com o Cassandra, são impedidos de o fazer.
Se não tiver restrições sobre os pods que podem interagir no seu cluster, não precisa de usar políticas de rede do Kubernetes.
Pré-requisitos
-
Ative as políticas de rede no seu cluster.
- GKE: Consulte o artigo Ativar a aplicação da política de rede.
- EKS: consulte o artigo Instalar o suplemento do motor de políticas de rede Calico.
- AKS: consulte o artigo Proteja o tráfego entre pods através de políticas de rede no Azure Kubernetes Service (AKS) .
- Outras plataformas: procure instruções para ativar as políticas de rede no seu cluster junto do fornecedor da plataforma específica.
- Um cluster híbrido do Apigee em execução, versão 1.8 ou mais recente.
Procedimento
Transfira 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 ficheiros de configuração das políticas de rede do Kubernetes para o Cassandra e o Redis encontram-se 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 sua organização do Apigee.
- Etiquete o espaço de nomes com o seguinte comando:
kubectl label namespace APIGEE_NAMESPACE app=apigee
- 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_NAMESPACE
As seguintes políticas de rede devem ser criadas no espaço de nomes APIGEE_NAMESPACE:
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