Attiva indirizzi IP

Puoi abilitare qualsiasi istanza di macchina virtuale (VM) in modo che sia raggiungibile dalla rete esterna o da un'altra organizzazione, operazione nota come ingresso VM. Un carico di lavoro VM in un progetto dell'organizzazione può raggiungere la rete esterna o la VM attuale esposta ai servizi in altre organizzazioni, noto come uscita VM.

Puoi utilizzare VirtualMachineExternalAccess (VMEA) per controllare insieme l'ingresso e l'uscita delle VM. Puoi trovare gli indirizzi IP in entrata e in uscita che hai abilitato per un'istanza VM nell'API VMM di Google Distributed Cloud (GDC) con air gap o tramite la console GDC.

Prima di iniziare

Per utilizzare i comandi dell'interfaccia a riga di comando (CLI) gdcloud, assicurati di aver scaricato, installato e configurato la CLI gdcloud. Tutti i comandi per Distributed Cloud utilizzano la CLI gdcloud o kubectl e richiedono un ambiente del sistema operativo (OS).

Recupera il percorso del file kubeconfig

Per eseguire comandi sul server dell'API Management, assicurati di disporre delle seguenti risorse:

  1. Accedi e genera il file kubeconfig per il server API Management se non ne hai uno.

  2. Utilizza il percorso del file kubeconfig del server API Management per sostituire MANAGEMENT_API_SERVER in queste istruzioni.

Richiedere autorizzazioni e accesso

Per eseguire le attività elencate in questa pagina, devi disporre del ruolo Amministratore macchina virtuale progetto. Segui i passaggi per verificare di disporre del ruolo Amministratore VirtualMachine progetto (project-vm-admin) nello spazio dei nomi del progetto in cui si trova la VM.

Per le operazioni sulle VM che utilizzano la console GDC o la CLI gdcloud, chiedi all'amministratore IAM del progetto di assegnarti sia il ruolo Project VirtualMachine Admin sia il ruolo Project Viewer (project-viewer).

Configura l'accesso esterno alla VM

VirtualMachineExternalAccess (VMEA) controlla l'ingresso e l'uscita delle VM. VMEA non può controllare separatamente l'ingresso e l'uscita delle VM. L'ingresso e l'uscita di una VM devono essere abilitati o disabilitati contemporaneamente.

Puoi configurare e controllare VMEA dall'interfaccia utente o dall'API Distributed Cloud VMM. Una VM può avere un solo VMEA. Se una VM non ha un VMEA, sia l'ingresso che l'uscita sono disattivati per impostazione predefinita.

Attiva l'accesso esterno

Per abilitare una VM con accesso esterno per il trasferimento dei dati in entrata e in uscita, puoi configurare VMEA dalla console GDC o dall'API Distributed Cloud Virtual Machine Manager.

Per impostazione predefinita, il traffico di rete intra-progetto è consentito e puoi accedere direttamente alla tua VM all'interno del progetto. Una policy di rete blocca tutto il traffico in entrata alla VM dall'esterno del progetto. Devi creare manualmente una nuova policy di rete per consentire al tuo indirizzo IP di origine di accedere alla VM tramite il trasferimento dei dati in entrata. Questa policy di rete può essere una policy di rete per il traffico tra progetti o una policy di rete per il traffico tra organizzazioni. La posizione dipende da dove vuoi accedere alla VM.

Puoi attivare e disattivare l'accesso esterno di una VM specificando true o false nel campo enabled della specifica VMEA. Per l'ingresso VM, puoi configurare il trasferimento dei dati nelle porte specificando il nome, il protocollo e il numero di porta per ogni porta che vuoi aggiungere nel campo ports della specifica VMEA.

Per attivare l'accesso esterno di una VM creando un nuovo VMEA, completa i seguenti passaggi:

Console

  1. Durante la procedura di creazione della VM utilizzando la console, vai alla pagina Dettagli di rete dalla pagina Crea istanza VM.
  2. Individua Rete nel menu di navigazione verticale della pagina.
  3. Seleziona Consenti accesso esterno per attivare l'accesso esterno sulla VM.

Abilita l'accesso esterno durante la creazione della VM

API

Esegui questo 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

Sostituisci le seguenti variabili:

  • MANAGEMENT_API_SERVER: il file kubeconfig del server dell'API Management.
  • VM_NAME: il nome della VM.
  • PORT_NAME: il nome della porta.
  • PROTOCOL: il protocollo che vuoi che utilizzi il servizio di ingresso. Il nome del protocollo deve essere scritto in maiuscolo e deve essere un protocollo supportato da Kubernetes, ad esempio TCP, UDP o SCTP.
  • PORT_NUMBER: il numero di porta.

Per attivare l'accesso esterno di una VM modificando un VMEA esistente tramite l'API VMM, esegui questo comando:

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n PROJECT \
  edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME

Disattivare l'accesso esterno

Se una VM non ha un VMEA corrispondente, sia l'ingresso che l'uscita sono disattivati. Se una VM ha un VMEA corrispondente, puoi disattivarlo impostando il campo enabled su false o eliminando direttamente il VMEA. Puoi eseguire queste operazioni tramite l'API Distributed Cloud VMM.

Per disattivare l'accesso esterno, completa i seguenti passaggi:

API

Disattiva l'accesso esterno eliminando un VMEA:

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n PROJECT \
  delete virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME

Sostituisci quanto segue:

  • MANAGEMENT_API_SERVER: il file kubeconfig del server dell'API Management.
  • VM_NAME: il nome della VM.
  • PROJECT: il progetto Distributed Cloud in cui si trova la VM.

Disattiva l'accesso esterno modificando un VMEA:

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n PROJECT \
  edit virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME

Aggiorna il campo enabled su false.

In entrata

Visualizza gli indirizzi IP in entrata

Se una VM è abilitata con Ingress, dopo la creazione viene visualizzato un indirizzo IP Ingress nella console GDC. Puoi trovare questo indirizzo IP di ingresso nella pagina Dettagli VM della console GDC.

Per recuperare l'indirizzo IP, utilizza l'API Distributed Cloud VMM. Completa i seguenti passaggi:

API

Recupera l'indirizzo IP:

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n PROJECT \
  get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME \
  -ojsonpath='{.status.ingressIP}'

Per una VM con un sistema operativo diverso, utilizza il comando ssh per accedere alla VM con l'indirizzo IP in entrata con la porta che hai attivato con TCP.

Modifica Ingress

Dopo aver abilitato VMEA per una VM, puoi personalizzare l'ingresso modificando VMEA. Puoi modificare direttamente la specifica dell'ingresso VM dalla console GDC. Puoi anche utilizzare l'interfaccia a riga di comando kubectl per modificare l'ingresso VM dalla specifica di VMEA.

Per modificare il VMEA per personalizzare l'ingresso:

Ad esempio, utilizza i seguenti comandi per aggiungere la porta PORT_NUMBER a un ingresso VM esistente utilizzando il protocollo TCP:

Console

Modifica direttamente le porte del servizio di ingresso VM dalla console GDC:

  1. Nel menu di navigazione verticale, fai clic su Istanze.
  2. Nella pagina, scorri fino a Dettagli rete.
  3. Fai clic sull'icona di modifica in Porte di ingresso per modificare la porta di ingresso.

    UI della console che mostra l&#39;elenco dei dettagli di rete con l&#39;icona di modifica sulle porte Ingress

API

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n PROJECT \
  patch virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME \
  --type "json" -p '[{"op":"add","path":"/spec/ports/-","value": {"name":"PORT_NAME","port":PORT_NUMBER, "Protocol":"TCP"}}]'

Sostituisci quanto segue:

  • MANAGEMENT_API_SERVER: il file kubeconfig del server dell'API Management.
  • VM_NAME: il nome della VM.
  • PROJECT: il progetto Distributed Cloud in cui si trova la VM.
  • PORT_NAME: il nome della porta da aggiungere.
  • PORT_NUMBER: il numero di porta.

Abilita Ingress con protocollo non TCP

Distributed Cloud ti consente di abilitare l'ingresso VM con protocolli diversi. Per impostazione predefinita, un servizio di ingresso VM utilizza il protocollo TCP. Puoi aggiungere il tuo ingresso del protocollo non TCP per la tua VM. Distributed Cloud supporta i seguenti protocolli:

  • Transmission Control Protocol (TCP).
  • User Datagram Protocol (UDP).
  • Stream Control Transmission Protocol (SCTP).

Puoi attivare il trasferimento dei dati con protocollo non TCP specificando nomi di protocollo diversi durante la creazione di VMEA.

In uscita

Un workload VM in un progetto dell'organizzazione può raggiungere la rete esterna o essere esposto a servizi in altre organizzazioni. Se abiliti il trasferimento dei dati in uscita per la VM, viene generato un indirizzo IP in uscita. La VM si connette ai servizi esterni con questo indirizzo IP.

Per eseguire il trasferimento in uscita di questi dati dell'indirizzo IP dalla rete esterna, potresti dover applicare i criteri di rete del progetto. Per saperne di più, consulta la policy di rete per il traffico in uscita tra organizzazioni.

Se una VM è configurata per il traffico in uscita utilizzando un gateway Cloud NAT, deve essere aggiunta la seguente annotazione all'oggetto Virtual Machine External Access per preservare la connettività in uscita: egress.networking.gke.io/use-cloud-nat:"true"

Visualizzare l'indirizzo IP di uscita

Se una VM è abilitata con l'uscita, un indirizzo IP di uscita viene visualizzato nella console GDC dopo la creazione. Puoi trovare questo indirizzo IP di uscita anche nella pagina Dettagli VM.

Per visualizzare l'indirizzo IP di uscita, completa i seguenti passaggi:

API

Recupera l'indirizzo IP:

kubectl --kubeconfig MANAGEMENT_API_SERVER \
  -n PROJECT \
  get virtualmachineexternalaccesses.virtualmachine.gdc.goog VM_NAME \
  -ojsonpath='{.status.egressIP}'

Sostituisci quanto segue:

  • MANAGEMENT_API_SERVER: il file kubeconfig del server dell'API Management.
  • VM_NAME: il nome della VM.
  • PROJECT: il progetto Distributed Cloud in cui si trova la VM.

Il traffico in uscita della VM si basa su un progetto. Le VM all'interno dello stesso progetto contengono lo stesso indirizzo IP in uscita.

Traffico in uscita controllato

Nelle versioni precedenti di Distributed Cloud, era necessario riavviare la VM per riflettere le modifiche all'uscita di una VM in esecuzione. Nella versione 1.11, puoi attivare e disattivare l'uscita della VM senza riavviarla. Questa modifica diventa effettiva subito dopo l'aggiornamento del VMEA.