Collegamento di un'interfaccia di rete cluster a un'istanza

Dopo aver creato un'istanza, è possibile collegarla a una sottorete di istanze di rete cluster esistente. In alternativa, è possibile pianificare la rete creando prima le istanze di rete del cluster, prima di creare le istanze di sottorete da collegare.

Prima di iniziare

È possibile collegare le interfacce di rete del cluster a un'istanza tramite la CLI, le API o Terraform.

Collegamento di un'interfaccia di rete cluster a un'istanza dalla CLI

Per collegare un'interfaccia a un'istanza dalla CLI, procedi come segue:

  1. Configurare l'ambiente CLI.

  2. Accedi al tuo account dalla CLI. Dopo aver inserito la password, il sistema richiede l'account e la regione:

    ibmcloud login --sso
    
  3. Per collegare un'interfaccia a un'istanza, inserire il seguente comando:

    ibmcloud is instance-cluster-network-attachments INSTANCE --cnac CLUSTER_NETWORK_ATTACHMENT
    

    Dove:

    INSTANCE
    ID o nome dell'istanza.
    --output
    Specifica il formato di output, è supportato solo JSON. Uno tra: JSON.
    -q, quiet
    Sopprimi l'output dettagliato.

Esempi di comando

  • Per creare un'istanza my-ins-1 con allegati di rete del cluster:

    ibmcloud is instance-create my-ins-1 cli-vpc us-south-2 fx3d-160c1792x9h100 cli-subnet --image ibm-ubuntu-20-04-6-minimal-amd64-5 --cluster-network-attachments '[{"name":"instance-cnac-1","cluster_network_interface":{"id":"7208-18204195-be40-4f12-aaaa-2649e19acb91"}},{"name":"instance-cnac-2","cluster_network_interface":{"id":"7208-cf6023a3-86c7-459f-84b8-536b4f812541"}},{"name":"instance-cnac-3","cluster_network_interface":{"id":"7208-2d55d27c-835c-4566-acbc-da36bcf49da7"}},{"name":"instance-cnac-4","cluster_network_interface":{"id":"7208-161e2919-c505-4e6d-bd49-88e7e0c0f1f3"}},{"name":"instance-cnac-5","cluster_network_interface":{"id":"7208-d700a40e-af61-45ee-b71a-a09203db76bd"}},{"name":"instance-cnac-6","cluster_network_interface":{"id":"7208-c7dbc8b9-6b47-4b83-8649-512e4e8f0a81"}},{"name":"instance-cnac-7","cluster_network_interface":{"id":"7208-f4773e40-49b5-4d44-8c68-7a75513bbf16"}},{"name":"instance-cnac-8","cluster_network_interface":{"id":"7208-46e097b5-c1ea-4669-aafd-7a4cc82d0e02"}}]'
    
  • Per creare un'istanza my-ins-2 con un file JSON di allegati di rete del cluster:

    ibmcloud is instance-create my-ins-2 deceiving-strode-dimly-undesirable us-south-2 hx3d-160x1002x8h100 test-subnet --image ibm-ubuntu-20-04-6-minimal-amd64-5 --cluster-network-attachments @~/cnac.json
    

Collegamento di un'interfaccia di rete cluster a un'istanza con l'API

Per collegare un'interfaccia di rete cluster a un'istanza utilizzando l'API, procedi come segue:

  1. Impostare l'ambiente API con le giuste variabili.
  2. Memorizza eventuali variabili aggiuntive da utilizzare nei comandi API. Ad esempio:

version (stringa): La versione dell'API, nel formato YYYY-MM-DD.

  1. Quando tutte le variabili sono inizializzate, inserire il seguente comando per collegare l'interfaccia di rete del cluster all'istanza:

    curl -X POST "$vpc_api_endpoint/v1/instances/$instance_id/cluster_network_attachments?version=$today&generation=2" -H "Authorization: Bearer $iam_token" -d '{
      "name": "my-cluster-network-attachment",
      "cluster_network_interface": {
        "id": "$cluster_network_interface_id"
      }
    }'
    

Per visualizzare l'insieme completo delle API di rete del cluster, consultare il riferimento API VPC.

Collegamento di un'interfaccia di rete cluster a un'istanza con Terraform

L'esempio seguente prevede il collegamento di rete di un cluster di istanze utilizzando Terraform:

resource "ibm_is_instance_cluster_network_attachment" "is_instance_cluster_network_attachment_instance" {
  instance = var.is_instance_cluster_network_attachment_instance_id
  before {
    # href = "https://us-south.iaas.cloud.ibm.com/v1/instances/5dd61d72-acaa-47c2-a336-3d849660d010/cluster_network_attachments/0767-fb880975-db45-4459-8548-64e3995ac213" // conflicts with id
    id = "0767-fb880975-db45-4459-8548-64e3995ac213"
  }
  cluster_network_interface {
    # id              = var.is_cluster_network_interface_id // conflicts with other properties
    auto_delete     = var.is_cluster_auto_delete
    name            = var.is_cluster_name
    subnet          = var.is_cluster_subnet_id
    primary_ip {
      address = "192.168.3.4"
      name    = "my-cluster-subnet-reserved-ip-1"
    }
  }
  name = var.is_instance_cluster_network_attachment_name
}