Para se conectar às implementações do Couchbase na nuvem (AWS, Azure ou GCP) ou no Kubernetes, oferecemos suporte a vários endereços na forma de endereços alternativos. Os aplicativos externos usam esse recurso para se comunicar com o cluster, mas não diretamente com os nós. Essas configurações permitem o acesso interno a um roteador ou outra entidade em rede que fornece interfaces em nome do cluster.
Ao configurar endereços alternativos, também podemos configurar porta alternativa números. O melhor exemplo de configuração de endereço alternativo são os endereços IP públicos e privados da AWS. Cada nó tem um IP privado e um DNS, mas eles também podem atribuir um IP público e um registro DNS. Esses IPs públicos podem ser atribuídos de forma estática ou dinâmica.
Em seguida, os clientes se conectam ao host público e às portas, conforme visto na seção de endereço externo no nodeServices informações sob o pools/default/nodesServices Ponto final de descanso.
Encaminhamento de porta para a instância do Couchbase no AWS
Uma etapa importante na configuração de endereços alternativos é o encaminhamento de portas. Quando os endereços alternativos são provisionados, o mapeamento do host externo e da porta para as portas internas deve ser feito por um administrador de rede. O cliente pode então usar o endereço e a porta externos para se conectar ao serviço.
Uma vez dentro da rede (um usuário se conecta a um endereço externo, interno à implantação onde ocorre o mapeamento de portas), a porta externa será mapeada para a porta interna para acessar o serviço com base na autorização. Isso pode ser feito no AWS usando as etapas descritas aqui.
Dependendo do que estiver acessível fora do firewall (acesso em nível de porta), o cliente poderá enviar consultas a esse serviço. Depois que endereços e portas externos alternativos forem provisionados, o Couchbase ns_servidor atualiza os pontos de extremidade REST:
|
1 2 3 4 5 6 7 |
pools/default pools/nodes pools/default/buckets, pools/default/buckets/<bucket-name>, pools/default/buckets/<bucket-name>/nodes pools/default/b/<bucket-name>, pools/default/bs/<bucket-name> poolsStreaming/default pools/default/bucketsStreaming/<bucket-name> pools/default/nodesServices, pools/default/nodesServicesStreaming |
Internamente, os serviços do Couchbase não precisam ser reiniciados em novas portas e somente o cliente deve permitir conexões a um determinado host/porta com base nas informações disponíveis no nodeServices sob o atributo externo.
O nodeServices O ponto de extremidade REST mostra o mapeamento de hosts e portas:
|
1 2 3 4 5 6 7 8 9 |
"alternateAddresses": { "external": { "hostname": "ec2-3-140-253-252.us-east-2.compute.amazonaws.com", "ports": { "mgmt": 8891, "mgmtSSL": 18891, "n1ql": 9000, "n1qlSSL": 19000 … |
Etapas de configuração do endereço alternativo
1 - Configure o cluster do Couchbase e use chamadas REST ou CLI para configurar endereços alternativos:
|
1 |
$ curl -v -X PUT -u [admin]:[password] https://[ip-address]:8091/node/controller/setupAlternateAddresses/external [-d hostname=<alternate-address> ] [-d <service-name>=<alternate-port-number> ] |
OU
|
1 |
$ couchbase-cli setting-alternate-address [--cluster <url>] [--username <user>] [--password <password>] [--list] [--set] [--remove] [--hostname <host>] [--ports <ports>] |
No exemplo abaixo, o endereço externo se torna cluster.com para nó interno 172.23.104.92. Ele também define a nova porta externa do N1QL como 9000.
|
1 |
$ couchbase-cli setting-alternate-address -c 172.23.104.92 -u Administrator -p password --hostname cluster.com --set --node 172.23.104.92 --ports n1ql=9000,n1qlSSL=19000 |
2 - Modificar /etc/hosts para conter acesso a cluster.com.
3 - Para o encaminhamento de porta em uma máquina virtual, podemos usar o seguinte comando para o Serviço de consulta em execução na porta 8093.
|
1 |
$ iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 9000 -j REDIRECT --to-port 8093 |
Em seguida, liste as configurações atuais de encaminhamento para confirmar:
|
1 2 3 4 |
$ iptables -L -n -t nat Chain PREROUTING (policy ACCEPT) target prot opt source destination REDIRECT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000 redir ports 8093 |
Liste as configurações de endereço alternativo:
|
1 2 3 |
$ /opt/couchbase/bin/couchbase-cli setting-alternate-address -c 172.23.104.92 -u Administrator -p password --list Hostname Alternate Address | Ports (Primary/Alternate) | capi | capiSSL | fts | ftsGRPC | ftsGRPCSSL | ftsSSL | indexAdmin | indexHttp | indexHttps | indexScan | indexStreamCatchup | indexStreamInit | indexStreamMaint | kv | kvSSL | mgmt | mgmtSSL | n1ql | n1qlSSL | projector 172.23.104.92 - cluster.com | 8092/8092 | 18092/180928094/8094 | 9130/9130 | 19130/1913018094/180949100/9100 | 9102/9102 | 19102/191029101/9101 | 9104/9104 | 9103/9103 | 9105/9105 | 11210/1121011207/112078091/8091 | 18091/180918093/8093 | 18093/180939999/9999 |
Para usar o cbq para acessar endereços alternativos, use a ferramenta de consulta configuração de rede ou nfcg e defini-la como externa. Isso nos permite executar consultas:
|
1 2 3 4 5 6 |
$ ./cbq -u Administrator -p password -e ec2-***.us-east-2.compute.amazonaws.com:9000 -ncfg external Connected to : https://ec2-***.us-east-2.compute.amazonaws.com:9000/. Type Ctrl-D or \QUIT to exit. Path to history file for the shell: /root/.cbq_history cbq> |
Consulte a documentação do Couchbase aqui para obter mais informações sobre clusters, redes e uso de endereços alternativos.
