Pode ativar qualquer instância de máquina virtual (VM) para ser acessível a partir da rede externa ou de outra organização, o que se denomina entrada de VM. Uma carga de trabalho de VM num projeto de organização pode alcançar a rede externa ou a VM atual exposta a serviços noutras organizações, conhecida como saída de VM.
Pode usar o VirtualMachineExternalAccess
(VMEA) para controlar o acesso de entrada e saída da VM em conjunto. Pode encontrar os endereços IP de entrada e saída que ativou para uma instância de VM na API VMM isolada do Google Distributed Cloud (GDC) ou através da consola do GDC.
Antes de começar
Para usar os comandos da gdcloud
interface de linhas de comando (CLI), certifique-se de que transferiu, instalou e configurou a CLI gdcloud
.
Todos os comandos para a nuvem distribuída usam a CLI gdcloud
ou kubectl
e requerem um ambiente de sistema operativo (SO).
Obtenha o caminho do ficheiro kubeconfig
Para executar comandos no servidor da API Management, certifique-se de que tem os seguintes recursos:
Inicie sessão e gere o ficheiro kubeconfig para o servidor da API Management, se não tiver um.
Use o caminho para o ficheiro kubeconfig do servidor da API de gestão para substituir
MANAGEMENT_API_SERVER
nestas instruções.
Peça autorizações e acesso
Para realizar as tarefas indicadas nesta página, tem de ter a função de administrador da máquina virtual do projeto. Siga os passos para
validar
que tem a função de administrador de máquinas virtuais do projeto (project-vm-admin
) no espaço de nomes
do projeto onde a VM reside.
Para operações de VM que usam a consola do GDC ou a CLI gdcloud,
peça ao administrador de IAM do projeto para lhe atribuir a função de administrador de máquinas virtuais do projeto e a função de visualizador do projeto (project-viewer
).
Configure o acesso externo da VM
VirtualMachineExternalAccess
(VMEA) controla a entrada e a saída de VMs.
O VMEA não pode controlar a entrada e a saída da VM separadamente. A entrada e a saída
de uma VM têm de ser ativadas ou desativadas em simultâneo.
Pode configurar e controlar o VMEA a partir da IU ou da API VMM do Distributed Cloud. Uma MV só pode ter um único VMEA. Se uma VM não tiver um VMEA, o tráfego de entrada e saída é desativado por predefinição.
Ative o acesso externo
Para ativar uma VM com acesso externo para transferência de dados de entrada e transferência de dados de saída, pode configurar o VMEA a partir da consola do GDC ou da API Virtual Machine Manager.
Por predefinição, o tráfego de rede entre projetos é permitido e pode aceder diretamente à sua VM no projeto. Uma política de rede bloqueia todo o tráfego de entrada para a VM a partir de fora do projeto. Tem de criar manualmente uma nova política de rede para permitir que o seu endereço IP de origem aceda à VM através da transferência de dados de entrada. Esta política de rede pode ser uma política de rede de tráfego entre projetos ou uma política de rede de tráfego entre organizações. A localização depende do local a partir do qual quer aceder à VM.
Pode ativar e desativar o acesso externo de uma VM especificando true
ou false
no campo enabled
da especificação VMEA. Para a entrada de VMs, pode configurar a transferência de dados nas portas especificando o nome, o protocolo e o número da porta para cada porta que quer adicionar no campo ports
da especificação VMEA.
Para ativar o acesso externo de uma VM através da criação de um novo VMEA, conclua o seguinte:
Consola
- Durante o processo de criação da VM através da consola, navegue para a página Detalhes da rede a partir da página Criar instância de VM.
- Localize Rede no menu de navegação vertical da página.
- Selecione Permitir acesso externo para ativar o acesso externo na VM.
API
Execute o seguinte comando:
kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineExternalAccess
metadata:
name: VM_NAME
spec:
enabled: true
ports:
- name: PORT_NAME
protocol: PROTOCOL
port: PORT_NUMBER
EOF
Substitua as seguintes variáveis:
- MANAGEMENT_API_SERVER: o ficheiro kubeconfig para o servidor da API Management.
- VM_NAME: o nome da sua VM.
- PORT_NAME: o nome da porta.
- PROTOCOL: o protocolo que quer que o serviço de entrada use. O nome do protocolo tem de estar em maiúsculas e ser um protocolo suportado pelo Kubernetes, como
TCP
,UDP
ouSCTP
. - PORT_NUMBER: o número da porta.
Para ativar o acesso externo de uma VM editando uma VMEA existente através da API VMM, execute o seguinte:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Desative o acesso externo
Se uma VM não tiver um VMEA correspondente, a entrada e a saída estão desativadas. Se uma VM tiver um VMEA correspondente, pode desativar o VMEA
definindo o campo enabled
como false
ou eliminando diretamente o VMEA. Pode realizar estas operações através da API VMM do Distributed Cloud.
Para desativar o acesso externo, conclua os seguintes passos:
API
Desative o acesso externo eliminando uma VMEA:
kubectl --kubeconfig MANAGEMENT_API_SERVER delete virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Substitua o seguinte:
- MANAGEMENT_API_SERVER: o ficheiro kubeconfig para o servidor da API Management.
- VM_NAME: o nome da VM.
- PROJECT: o projeto do Distributed Cloud onde reside a VM.
Desative o acesso externo editando uma VMEA:
kubectl --kubeconfig MANAGEMENT_API_SERVER edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT
Atualize o campo enabled
para false
.
Entrada
Veja endereços IP de entrada
Se uma VM estiver ativada com o Ingress, é apresentado um endereço IP de entrada na consola do GDC após a criação. Também pode encontrar este endereço IP de entrada na página Detalhes da VM na consola do GDC.
Para obter o endereço IP, use a API Distributed Cloud VMM. Conclua o seguinte:
API
Obter o endereço IP:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.ingressIP}'
Para uma VM com um sistema operativo (SO) diferente, use o comando ssh
para
introduzir a VM com o endereço IP de entrada com a porta que ativou com
TCP.
Edite a entrada
Depois de ativar a VMEA para uma VM, pode personalizar a entrada editando a VMEA. Pode editar diretamente a especificação da entrada da VM a partir da consola do GDC. Também pode usar a CLI kubectl
para editar a entrada da VM a partir da especificação do VMEA.
Para editar o VMEA de modo a personalizar a entrada, conclua o seguinte:
Por exemplo, use os seguintes comandos para adicionar a porta PORT_NUMBER numa entrada de VM existente através do protocolo TCP:
Consola
Edite diretamente as portas no serviço de entrada da VM a partir da consola do GDC:
- No menu de navegação vertical, clique em Instâncias.
- Na página, desloque a página até Detalhes da rede.
Clique no ícone de edição em Portas de entrada para editar a porta de entrada.
API
kubectl --kubeconfig MANAGEMENT_API_SERVER patch virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT --type "json" -p '[{"op":"add","path":"/spec/ports/-","value": {"name":"PORT_NAME","port":PORT_NUMBER, "Protocol":"TCP"}}]'
Substitua o seguinte:
- MANAGEMENT_API_SERVER: o ficheiro kubeconfig para o servidor da API Management.
- VM_NAME: o nome da VM.
- PROJECT: o projeto do Distributed Cloud onde reside a VM.
- PORT_NAME: o nome da porta a adicionar.
- PORT_NUMBER: o número da porta.
Ative a entrada com um protocolo não TCP
O Distributed Cloud permite-lhe ativar a entrada da VM com diferentes protocolos. Por predefinição, um serviço de entrada de VM usa o protocolo TCP. Pode adicionar a sua própria entrada de protocolo não TCP para a VM. A nuvem distribuída suporta os seguintes protocolos:
- Protocolo de controlo de transmissão (TCP).
- Protocolo UDP (User Datagram Protocol).
- Protocolo de transmissão de controlo de stream (SCTP).
Pode ativar a transferência de dados com um protocolo não TCP especificando nomes de protocolos diferentes quando criar um VMEA.
Saída
Uma carga de trabalho de VM num projeto de organização pode alcançar a rede externa ou ser exposta a serviços noutras organizações. Se ativar a transferência de dados para fora da VM, é gerado um endereço IP de saída. A VM estabelece ligação aos serviços externos com este endereço IP.
Para fazer esta transferência de dados de endereços IP para fora da rede externa, pode ter de aplicar políticas de rede do projeto. Para mais informações, consulte a Política de rede de tráfego de saída entre organizações.
Veja o endereço IP de saída
Se uma VM estiver ativada com saída, é apresentado um endereço IP de saída na consola do GDC após a criação. Também pode encontrar este endereço IP de saída na página Detalhes da VM.
Para ver o endereço IP de saída, conclua o seguinte:
API
Obter o endereço IP:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME -n PROJECT -ojsonpath='{.status.egressIP}'
Substitua o seguinte:
- MANAGEMENT_API_SERVER: o ficheiro kubeconfig para o servidor da API Management.
- VM_NAME: o nome da VM.
- PROJECT: o projeto do Distributed Cloud onde reside a VM.
A saída da VM baseia-se num projeto. As VMs no mesmo projeto contêm o mesmo endereço IP de saída.
Controle a saída
Nas versões anteriores do Distributed Cloud, tinha de reiniciar a VM para refletir as alterações de saída numa VM em execução. Na versão 1.11, pode ativar e desativar a saída da VM sem reiniciar a VM. Esta alteração entra em vigor imediatamente após atualizar o VMEA.