Creazione di cluster utente

In Google Distributed Cloud, i cluster utente eseguono i tuoi carichi di lavoro e multi-cluster, i cluster utente vengono creati e gestiti da un cluster di amministrazione.

Dopo aver creato un cluster di amministrazione, chiamando il comando bmctl create config crea un file YAML che puoi modificare per definire il tuo cluster utente. Per applicare il parametro configurazione e creare il cluster utente, utilizza l'bmctl create cluster . I controlli preflight sono applicabili ai cluster utente creati con Comando bmctl create cluster.

Mantenere i carichi di lavoro lontani dal cluster di amministrazione protegge i dati amministrativi sensibili, ad esempio chiavi SSH archiviate nel cluster di amministrazione, da chi non ha bisogno dell'accesso. a tali informazioni. Inoltre, mantenere i cluster utente separati da offre una buona sicurezza generale per i tuoi carichi di lavoro.

Prerequisiti

  • L'ultima versione di bmctl è stata scaricata (gs://anthos-baremetal-release/bmctl/1.29.200-gke.243/linux-amd64/bmctl) da Cloud Storage.
  • Cluster di amministrazione in uso con accesso al server API del cluster (il controlPlaneVIP).
  • I nodi del cluster di amministrazione hanno connettività di rete a tutti i nodi nella destinazione nel cluster utente.
  • La workstation che esegue bmctl dispone di connettività di rete a tutti i nodi in cluster utente di destinazione.
  • La workstation di amministrazione può stabilire una connessione SSH a ciascun utente nodi del cluster.
  • L'account di servizio Connect-register è configurato sul cluster di amministrazione per l'utilizzo con Connect.

Abilita SELinux

Se vuoi abilitare SELinux per proteggere i tuoi container, devi assicurarti SELinux è abilitato in modalità Enforced su tutte le macchine host. A partire da Google Distributed Cloud versione 1.9.0 o successiva, puoi abilitare o disabilitare SELinux prima o dopo la creazione o gli upgrade del cluster. SELinux è abilitato da come predefinita su Red Hat Enterprise Linux (RHEL). Se SELinux è disabilitato sul tuo host macchine virtuali o hai dubbi su come abilitare questa funzionalità, consulta Protezione dei container con SELinux per istruzioni su come abilitarla.

Google Distributed Cloud supporta SELinux solo nei sistemi RHEL.

Crea un file di configurazione del cluster utente

Il file di configurazione per la creazione di un cluster utente è quasi esattamente uguale al uno utilizzato per creare un cluster di amministrazione. L'unica differenza è che rimuovi sezione di configurazione delle credenziali locali per rendere la configurazione di risorse Kubernetes. La sezione relativa alla configurazione si trova nella parte superiore il file nella sezione bmctl configuration variables. Per esempi di metriche configurazioni di cluster, vedi Cluster utente negli esempi di configurazione del cluster.

Per impostazione predefinita, i cluster utente ereditano le credenziali dal cluster di amministrazione che che li gestisce. Puoi eseguire l'override di alcune o tutte queste credenziali in modo selettivo.

  1. Crea un file di configurazione del cluster utente con il comando bmctl create config:

    bmctl create config -c USER_CLUSTER_NAME
    

    Ad esempio, esegui il comando seguente per creare un file di configurazione per un cluster utente chiamato user1:

    bmctl create config -c user1
    

    Il file viene scritto in bmctl-workspace/user1/user1.yaml. Il percorso generico al file è bmctl-workspace/CLUSTER NAME/CLUSTER_NAME.yaml.

  2. Modifica il file di configurazione con le seguenti modifiche:

    • Rimuovi dalla configurazione i percorsi dei file delle credenziali locali:

      ...
        gcrKeyPath: (path to GCR service account key)
        sshPrivateKeyPath: (path to SSH private key, used for node access)
        gkeConnectAgentServiceAccountKeyPath: (path to Connect agent service account key)
        gkeConnectRegisterServiceAccountKeyPath: (path to Hub registration service account key)
        cloudOperationsServiceAccountKeyPath: (path to Cloud Operations service account key)
      ...
      
    • Modifica la configurazione per specificare un tipo di cluster user anziché admin:

      ...
      spec:
        # Cluster type. This can be:
        #   1) admin:  to create an admin cluster. This can later be used to create
        #   user clusters.
        #   2) user:   to create a user cluster. Requires an existing admin cluster.
        #   3) hybrid: to create a hybrid cluster that runs admin cluster
        #   components and user workloads.
        #   4) standalone: to create a cluster that manages itself, runs user
        #   workloads, but does not manage other clusters.
        type: user
      ...
      
    • Registra i tuoi cluster in un parco specificando il tuo ID progetto nel campo gkeConnect.projectID. Questo progetto è indicato come come progetto host del parco risorse.

      ...
      gkeConnect:
         projectID: my-project-123
      ...
      
      • Se vuoi, puoi aggiungere gkeConnect.location alle specifiche del cluster per specificare la regione Google Cloud in cui e l'esecuzione dei servizi Connect. Questo abbonamento a livello di regione limita il parco risorse e il traffico dei servizi verso la tua regione. Se includi gkeConnect.location in la specifica del cluster, la regione specificata deve essere uguale alla regione configurata in clusterOperations.location. Se le regioni non sono la creazione del cluster ha esito negativo.
    • Se l'API GKE On-Prem è abilitata nel tuo progetto Google Cloud, tutti i cluster nel progetto vengono registrato nell'API GKE On-Prem automaticamente nella regione configurata in clusterOperations.location.

      • Se vuoi registrare tutti i cluster del progetto nell'API GKE On-Prem, segui i passaggi Prima di iniziare per attivare e utilizzare l'API GKE On-Prem nel progetto.

      • Se non vuoi registrare il cluster nell'API GKE On-Prem, includi questa sezione e imposta gkeOnPremAPI.enabled su false. In caso contrario registrare eventuali cluster nel progetto, disabilita gkeonprem.googleapis.com (il nome del servizio per l'API GKE On-Prem) nel progetto. Per istruzioni, vedi Disattivazione dei servizi.

    • Specifica l'indirizzo IP del nodo del piano di controllo.

      ...
      # Sample control plane config
      controlPlane:
       nodePoolSpec:
         nodes:
         - address: 10.200.0.20
      ...
      
    • Assicurati che le specifiche dei cluster di amministrazione e utente per i VIP del bilanciatore del carico e i pool di indirizzi sono complementari e non si sovrappongono ai cluster esistenti. L'esempio seguente mostra una coppia di esempio di cluster di amministrazione e cluster utente configurazioni, specificando il bilanciamento del carico e i pool di indirizzi:

      ...
      # Sample admin cluster config for load balancer and address pools
        loadBalancer:
          vips:
            controlPlaneVIP: 10.200.0.49
            ingressVIP: 10.200.0.50
          addressPools:
          - name: pool1
            addresses:
            - 10.200.0.50-10.200.0.70
      ...
      ...
      # Sample user cluster config for load balancer and address pools
      loadBalancer:
          vips:
            controlPlaneVIP: 10.200.0.71
            ingressVIP: 10.200.0.72
          addressPools:
          - name: pool1
            addresses:
            - 10.200.0.72-10.200.0.90
      ...
      

      Gli altri file di configurazione del cluster utente corrispondono del cluster di amministrazione.

    • Specifica la densità dei pod dei nodi del cluster:

      ...
      # NodeConfig specifies the configuration that applies to all nodes in the cluster.
      nodeConfig:
        # podDensity specifies the pod density configuration.
        podDensity:
          # maxPodsPerNode specifies at most how many pods can be run on a single node.
          maxPodsPerNode: 110
      ...
      

      Per i cluster utente, i valori consentiti per maxPodsPerNode sono 32-250. La il valore predefinito se non specificato è 110. Una volta creato il cluster, non può essere aggiornato.

      La densità dei pod è limitata anche dalle risorse IP disponibili del cluster. Per i dettagli, vedi Networking dei pod:

Crea il cluster utente

Esegui il comando bmctl per applicare la configurazione del cluster utente e creare cluster:

bmctl create cluster -c USER_CLUSTER_NAME --kubeconfig ADMIN_KUBECONFIG

Sostituisci quanto segue:

  • USER_CLUSTER_NAME: il nome del cluster creato nella sezione precedente.
  • ADMIN_KUBECONFIG: il percorso del file kubeconfig del cluster di amministrazione.

Ad esempio, per un cluster utente denominato user1 e un cluster di amministrazione kubeconfig file con il percorso kubeconfig bmctl-workspace/admin/admin-kubeconfig, sarebbe:

bmctl create cluster -c user1 --kubeconfig bmctl-workspace/admin/admin-kubeconfig

Esempi di configurazioni di cluster utente

Ad esempio, per configurare un cluster utente, consulta Cluster utente dell'account Esempi di configurazione del cluster.