Neste tópico, descrevemos as etapas necessárias para configurar o componente de banco de dados do Cassandra para uma instalação de produção da Apigee híbrida.
Garanta alta disponibilidade
Os clusters do Cassandra precisam de três zonas de disponibilidade para manter a disponibilidade em um ambiente de produção. Se uma zona ficar inativa, as restantes continuarão respondendo a solicitações até a zona remanescente ficar on-line novamente. Se duas ou mais zonas ficarem inativas, o Cassandra não responderá a solicitações até que pelo menos duas zonas fiquem on-line. A Apigee recomenda colocar as zonas on-line novamente em três horas para minimizar o risco de perda de atualizações de dados.
Aplicar as configurações de armazenamento do Cassandra
Para aplicar alterações às configurações de armazenamento do Cassandra no arquivo de substituições, execute os seguintes comandos:
$APIGEECTL_HOME/apigeectl init -f overrides/OVERRIDES_FILE
$APIGEECTL_HOME/apigeectl apply -f overrides/OVERRIDES_FILE
Definir as configurações de armazenamento do Cassandra
Para uma instalação de produção da Apigee híbrida, o Google recomenda que você adicione as seguintes configurações de armazenamento e heap ao arquivo de modificações e aplique-as ao cluster:
cassandra: ... replicaCount: 3 storage: storageclass: your-preferred-ssd-storage #If not using default storage for your cluster capacity: 500Gi resources: requests: cpu: 7 memory: 15Gi maxHeapSize: 8192M heapNewSize: 1200M
replicaCount
O valor de replicaCount
precisa ser um múltiplo de 3
. Para determinar o valor
replicaCount
desejado, considere o seguinte:
- Estime as demandas de tráfego dos proxies.
- Carregue o teste e faça previsões razoáveis de uso da CPU.
- É possível especificar valores
replicaCount
diferentes em regiões diferentes. - Você pode expandir o
replicaCount
no futuro no arquivo de modificações.
Para verificar a configuração atual do replicaCount
, execute o seguinte comando no cluster:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.replicas}'
storageclass
Para produção, o armazenamento do Cassandra precisa ser um StorageClass SSD. Defina o valor de
storageclass
se você não estiver usando o StorageClass padrão do Kubernetes para o
cluster. Você pode verificar o StorageClass padrão com o comando a seguir.
kubectl get storageclass
A resposta será semelhante a esta:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE premium-rwo pd.csi.storage.gke.io Delete WaitForFirstConsumer true 6d23h standard kubernetes.io/gce-pd Delete Immediate true 6d23h standard-rwo (default) pd.csi.storage.gke.io Delete WaitForFirstConsumer true 6d23h
Siga as instruções em Configuração do StorageClass se você quiser alterar o StorageClass padrão do Kubernetes.
Para verificar a configuração atual do storageclass
, execute o seguinte comando no cluster:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath='{.metadata.annotations.volume\.beta\.kubernetes\.io/storage-class}'
capacity
Para instalações de produção, o Google recomenda uma capacidade de armazenamento de pelo menos 500 Gi (gibibytes). É possível alterar a capacidade de armazenamento de acordo com as necessidades de armazenamento do cluster. Consulte as instruções em Expandir volumes permanentes do Cassandra para alterar a capacidade de armazenamento.
Para verificar a configuração de capacidade atual, execute o seguinte comando no cluster:
kubectl get pvc -n NAMESPACE cassandra-data-apigee-cassandra-default-0 -o=jsonpath='{.spec.resources.requests.storage}'
cpu
e memory
Para instalações de produção, o Google recomenda pelo menos 7 CPUs e um mínimo de 15 Gi (gibibytes) por
pod. Ao especificar cassandra.resources.requests.cpu
e
cassandra.resources.requests.memory
, considere o volume de tráfego e as demandas de CPU e
memória dos proxies.
Para verificar a configuração atual da CPU, execute o seguinte comando no cluster:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.cpu}'
Para verificar a configuração de memória atual, execute o seguinte comando no cluster:
kubectl get pods -n NAMESPACE apigee-cassandra-default-0 -o=jsonpath='{.spec.containers[].resources.requests.memory}'
maxHeapSize
e heapNewSize
Essas propriedades determinam o heap máximo de memória alocado para os processos do cassandra e a quantidade pela qual a memória é aumentada, respectivamente, em megabytes (os tamanhos de heap são especificados em megabytes, não em mebibytes). Para ambientes de produção, o Google recomenda os seguintes valores:
maxHeapSize: 8192M
heapNewSize: 1200M
Consulte a documentação do seu provedor da plataforma Kubernetes para ver os valores de tamanho de heap ideais.
Para verificar a configuração atual do maxHeapSize
, execute o seguinte comando no cluster:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="MAX_HEAP_SIZE")]}'
Para verificar a configuração atual do heapNewSize
, execute o seguinte comando no cluster:
kubectl get sts -n NAMESPACE apigee-cassandra-default -o=jsonpath='{.spec.template.spec.containers[].env[?(@.name=="HEAP_NEWSIZE")]}'
Para mais informações sobre essas configurações de propriedades, consulte a Referência da propriedades de configuração.
Usar o armazenamento SSD para implantações de produção
Para o banco de dados do Cassandra, o ambiente de execução híbrido aceita apenas o uso de volumes permanentes criados dinamicamente para armazenar dados. As unidades de disco de estado sólido (SSD) locais não são compatíveis.
Se você não tiver o SSD configurado para o Cassandra atualmente, precisará configurar uma definição do StorageClass que seja apoiada por uma unidade de estado sólido (SSD) e torná-la o padrão. Consulte as etapas detalhadas em Configuração de StorageClass.
Siga as instruções em Configuração do StorageClass se você quiser alterar o StorageClass padrão do Kubernetes.