Fare riferimento agli esempi per personalizzare l'API v1alpha2 del Servizio Tanzu Kubernetes Grid con le impostazioni di configurazione globali per l'interfaccia di rete del contenitore, il server proxy e i certificati TLS.

Configurazione del Servizio Tanzu Kubernetes Grid mediante l'API v1alpha2

È possibile personalizzare il Servizio Tanzu Kubernetes Grid modificando la CNI predefinita, aggiungendo un server proxy globale e aggiungendo certificati attendibili. Vedere Parametri di configurazione per l'API v1alpha1 di Servizio Tanzu Kubernetes Grid.
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-v2-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    #supported format is `http://<user>:<pwd>@<ip>:<port>`
    httpProxy: http://admin:[email protected]:80
    httpsProxy: http://admin:[email protected]:80
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust: 
    additionalTrustedCAs:
      - name: CompanyInternalCA-1
        data: LS0tLS1C...LS0tCg==
        #where "..." is the middle section of the long base64 string
      - name: CompanyInternalCA-2
        data: MTLtMT1C...MT0tPg==        
  defaultNodeDrainTimeout: 0
Attenzione: La modifica della specifica del Servizio Tanzu Kubernetes Grid comporta modifiche globali a tutti i cluster con provisioning eseguito da tale servizio, inclusi nuovi cluster e cluster esistenti per i quali viene eseguito l'upgrade in modo manuale o automatico.

Prerequisito: configurazione della modifica di Kubectl

Per scalare un cluster Tanzu Kubernetes, aggiornare il manifesto del cluster utilizzando il comando kubectl edit tanzukubernetescluster/CLUSTER-NAME. Il comando kubectl edit apre il manifesto del cluster nell'editor di testo definito dalla variabile di ambiente KUBE_EDITOR o EDITOR. Per istruzioni sulla configurazione della variabile di ambiente, vedere Specificare un editor di testo predefinito per Kubectl.

Quando si salvano le modifiche delle specifiche, kubectl segnala che le modifiche sono state registrate correttamente. Per annullare, è sufficiente chiudere l'editor senza salvare.

Configurazione dell'interfaccia CNI

Il Servizio Tanzu Kubernetes Grid fornisce un'interfaccia CNI (Container Network Interface) predefinita per i cluster Tanzu Kubernetes. La configurazione predefinita consente di creare cluster senza dover specificare l'interfaccia CNI. È possibile modificare l'interfaccia CNI predefinita modificando la specifica del servizio.

Il Servizio Tanzu Kubernetes Grid supporta due CNI, ovvero Antrea e Calico, di cui Antrea è il valore predefinito. Per ulteriori informazioni, vedere Rete cluster di Tanzu Kubernetes.

È possibile sostituire l'interfaccia CNI predefinita specificando esplicitamente l'interfaccia CNI da utilizzare. In alternativa, è possibile modificare la CNI predefinita modificando il controller di servizio TKG per le CNI.
  1. Eseguire l'autenticazione con il Cluster supervisore.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Passare al contesto dello Spazio dei nomi vSphere di destinazione.
    kubectl config use-context tkgs-cluster-ns
  3. Elencare l'interfaccia CNI predefinita.
    kubectl get tkgserviceconfigurations
    Risultato dell'esempio:
    NAME                                 DEFAULT CNI
    tkg-service-configuration            antrea
    
  4. Carico per la modifica della specifica del Servizio Tanzu Kubernetes Grid.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    Il sistema apre la specifica tkg-service-configuration nell'editor di testo predefinito definito dalla variabile di ambiente KUBE_EDITOR o EDITOR.

  5. Modificare il valore spec.defaultCNI.
    Ad esempio, modificare da:
    spec:
      defaultCNI: antrea
    Passare a:
    spec:
      defaultCNI: calico
  6. Per applicare le modifiche, salvare il file nell'editor di testo. Per annullare, chiudere l'editor senza salvare.

    Quando si salva la modifica nell'editor di testo, kubectl aggiorna la specifica del servizio tkg-service-configuration.

  7. Verificare che venga aggiornato il CNI predefinito.
    kubectl get tkgserviceconfigurations
    L'interfaccia CNI predefinita viene aggiornata. Qualsiasi cluster con provisioning con impostazioni di rete predefinite utilizza l'interfaccia CNI predefinita.
    NAME                                 DEFAULT CNI
    tkg-service-configuration            calico
    

Configurazione di un server proxy globale

Per abilitare un server proxy globale, aggiungere i parametri del server proxy a TkgServiceConfiguration. Per una descrizione dei campi obbligatori, vedere Parametri di configurazione per l'API v1alpha1 di Servizio Tanzu Kubernetes Grid.
  1. Eseguire l'autenticazione con il Cluster supervisore.
    kubectl vsphere login --server=SVC-IP-ADDRESS --vsphere-username USERNAME
  2. Passare al contesto dello Spazio dei nomi vSphere di destinazione.
    kubectl config use-context tkgs-cluster-ns
  3. Ottenere la configurazione corrente.
    kubectl get tkgserviceconfigurations
    Risultato dell'esempio:
    NAME                        DEFAULT CNI
    tkg-service-configuration   antrea
  4. Carico per la modifica della specifica del Servizio Tanzu Kubernetes Grid.
    kubectl edit tkgserviceconfigurations tkg-service-configuration

    Il sistema apre la specifica tkg-service-configuration nell'editor di testo predefinito definito dalla variabile di ambiente KUBE_EDITOR o EDITOR.

  5. Aggiungere la sottosezione spec.proxy con ciascun campo obbligatorio, inclusi httpProxy, httpsProxy e noProxy.
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://<user>:<pwd>@<ip>:<port>
        httpsProxy: http://<user>:<pwd>@<ip>:<port>
        noProxy: [SVC-POD-CIDRs, SVC-EGRESS-CIDRs, SVC-INGRESS-CIDRs]
  6. Compilare ciascun campo del proxy con i valori appropriati. Per una descrizione di ciascun campo, vedere Parametri di configurazione per l'API v1alpha1 di Servizio Tanzu Kubernetes Grid.

    I valori obbligatori per il campo noProxy provengono da Rete carico di lavoro del Cluster supervisore. Fare riferimento all'immagine nell'argomento precedente su dove recuperare questi valori.

    Ad esempio:
    apiVersion: run.tanzu.vmware.com/v1alpha1
    kind: TkgServiceConfiguration
    metadata:
      ...
      name: tkg-service-configuration-example
      resourceVersion: "44170525"
      selfLink: /apis/run.tanzu.vmware.com/v1alpha1/tkgserviceconfigurations/tkg-service-configuration
      uid: 10347195-5f0f-490e-8ae1-a758a724c0bc
    spec:
      defaultCNI: antrea
      proxy:
        httpProxy: http://user:[email protected]:3128
        httpsProxy: http://user:[email protected]:3128
        noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  7. Per applicare le modifiche, salvare il file nell'editor di testo. Per annullare, chiudere l'editor senza salvare.

    Quando si salvano le modifiche nell'editor di testo, kubectl aggiorna il Servizio Tanzu Kubernetes Grid con la configurazione definita nella specifica del servizio tkg-service-configuration.

  8. Verificare che il Servizio Tanzu Kubernetes Grid sia aggiornato con le impostazioni del proxy.
    kubectl get tkgserviceconfigurations -o yaml
  9. Per verificare, eseguire il provisioning di un cluster Tanzu Kubernetes. Vedere Workflow per il provisioning di cluster di Tanzu Kubernetes.
    Utilizzare il comando seguente per verificare che il cluster stia utilizzando il proxy.
    kubectl get tkc CLUSTER-NAME -n NAMESPACE -o yaml

Configurazione del proxy basato su certificato

L'utilizzo di un server proxy per instradare il traffico Internet è un requisito permanente per alcuni ambienti. Ad esempio, un'azienda di un settore altamente regolamentato, come ad esempio un'organizzazione finanziaria, richiede che tutto il traffico Internet passi attraverso un proxy aziendale.

È possibile configurare il Servizio Tanzu Kubernetes Grid per eseguire il provisioning dei cluster Tanzu Kubernetes in modo che utilizzino un server proxy per il traffico HTTP/S in uscita. Per ulteriori informazioni, vedere Parametri di configurazione per l'API v1alpha1 di Servizio Tanzu Kubernetes Grid.

Come mostrato nell'esempio, è possibile aggiungere certificati attendibili per il server proxy alla specifica del TkgServiceConfiguration.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  proxy:
    httpProxy: http://user:[email protected]:3128
    httpsProxy: http://user:[email protected]:3128
    noProxy: [10.246.0.0/16,192.168.144.0/20,192.168.128.0/20]
  trust:
    additionalTrustedCAs:
      - name: first-cert-name
        data: base64-encoded string of a PEM encoded public cert 1
      - name: second-cert-name
        data: base64-encoded string of a PEM encoded public cert 2
  defaultNodeDrainTimeout: 0

Configurazione del registro privato esterno

È possibile configurare il Servizio Tanzu Kubernetes Grid con certificati personalizzati per la connessione di cluster Tanzu Kubernetes con un registro privato esterno. Per ulteriori informazioni, vedere Utilizzo di un registro di container esterno con cluster di Tanzu Kubernetes.
apiVersion: run.tanzu.vmware.com/v1alpha1
kind: TkgServiceConfiguration
metadata:
  name: tkg-service-configuration-example
spec:
  defaultCNI: antrea
  trust:
    additionalTrustedCAs:
      - name: harbor-vm-cert
        data: <<<base64-encoded string of a PEM encoded public cert>>>>