Clusters à nœud unique sur vSphere

Tanzu Kubernetes Grid (TKG) prend en charge les clusters à nœud unique. Les clusters à nœud unique sont des clusters de charge de travail sur lesquels les charges de travail hébergées s'exécutent parallèlement à l'infrastructure de plan de contrôle sur un hôte ESXi unique.

Pour réduire davantage l'encombrement d'un cluster à nœud unique, vous pouvez le créer à partir d'une version tiny de Tanzu Kubernetes (TKr), qui dispose d'un fichier OVA Photon ou Ubuntu Tiny pour son système d'exploitation de base. Ces clusters sont appelés clusters minimaux à nœud unique.

Les clusters à nœud unique sont des clusters de charge de travail basés sur une classe qui s’exécutent sur vSphere et sont déployés par des clusters de gestion autonomes.

Les clusters à nœud unique sont entièrement pris en charge pour Telco Cloud Automation (TCA).

Remarque

Vous ne pouvez pas utiliser Tanzu Mission Control (TMC) pour créer et gérer des clusters à nœud unique, mais cette capacité est prévue pour une future version de TMC.

Les cas d'utilisation de clusters à nœud unique incluent :

  • Clusters à nœud unique minimaux
    • Environnements d'hôtes limités en ressources, tels que les sites de cellules en périphérie lointaine et d'autres emplacements en périphérie
  • Clusters à nœud unique standard
    • Environnements expérimentaux de développement et de test

Compatibilité

Les clusters à nœud unique sont pris en charge pour les environnements et composants suivants :

Catégorie Options prises en charge
Infrastructure vSphere 7 et vSphere 8
Système d'exploitation du nœud Ubuntu 20.04 et Photon 3
Taille du nœud petit
Module Gestionnaire de certificats, Fluent Bit, Multus, Prometheus et Whereabouts
Fournisseur de point de terminaison du plan de contrôle Kube-Vip*
Équilibrage de charge de travail Kube-Vip*
Type de cluster de charge de travail Basé sur une classe
CNI Antrea et Calico
Mode de connectivité En ligne, accès restreint à Internet

*NSX Advanced Load Balancer (ALB) n'est pas pris en charge avec les clusters à nœud unique dans TKG v2.4.

Conditions requises

Créer un cluster à nœud unique minimal

Pour créer un cluster de charge de travail à nœud unique sur vSphere qui utilise une version tiny de Tanzu Kubernetes (TKr) afin de réduire l'encombrement :

  1. Préparer le fichier OVA :

    1. Accédez à la page de téléchargements de Tanzu Kubernetes Grid et connectez-vous à Customer Connect.

    2. Dans la ligne VMware Tanzu Kubernetes Grid, cliquez sur Accéder aux téléchargements (Go to Downloads).

    3. Sélectionnez la version 2.x et cliquez sur VMware Tanzu Kubernetes Grid > ACCÉDER AUX TÉLÉCHARGEMENTS (GO TO DOWNLOADS).

    4. Sous Fichiers OVA TKG tiny (Tiny TKG OVAs), téléchargez le fichier OVA tiny à utiliser pour votre cluster à nœud unique :

      • Fichier OVA Photon v3 Kubernetes v1.27.5 tiny

      • Fichier OVA Ubuntu 2004 Kubernetes v1.27.5 tiny

    5. Importez le fichier OVA tiny dans votre environnement vSphere et convertissez-le en modèle de machine virtuelle, comme décrit dans la section Importer le modèle d'image de base dans vSphere.

  2. Créez le cluster de charge de travail à nœud unique.

    Remarque

    Pour créer un nombre minimal de clusters à nœud unique, vous devez exécuter la commande tanzu cluster create avec une spécification d'objet de style Kubernetes. Si vous commencez par un fichier de configuration de cluster plat, vous devez suivre un processus en deux étapes décrit dans la section Créer un cluster basé sur une classe pour générer la spécification d'objet, puis la modifier, comme décrit ci-dessous avant d'exécuter tanzu cluster create une deuxième fois pour créer le cluster.

    1. Définissez les variables d'environnement comme définies dans cet exemple :

      export CLUSTER_NAME='workload-snc'
      export CLUSTER_NAMESPACE='default'
      export CLUSTER_CIDR='100.96.0.0/11'
      export SERVICE_CIDR='100.64.0.0/13'
      export VSPHERE_CONTROL_PLANE_ENDPOINT=10.185.11.134
      export VSPHERE_SERVER=10.185.12.154
      export VSPHERE_USERNAME='[email protected]'
      export VSPHERE_PASSWORD=<encoded:QWRtaW4hMjM=>
      export VSPHERE_DATACENTER='/dc0'
      export VSPHERE_DATASTORE='/dc0/datastore/sharedVmfs-0'
      export VSPHERE_FOLDER='/dc0/vm'
      export VSPHERE_NETWORK='/dc0/network/VM Network'
      export VSPHERE_RESOURCE_POOL='/dc0/host/cluster0/Resources'
      export VSPHERE_SSH_AUTHORIZED_KEY=ssh-rsa AAAAB3[...]tyaw== [email protected]
      export VSPHERE_TLS_THUMBPRINT=47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
      export VSPHERE_CONTROL_PLANE_NUM_CPUS='2'
      export VSPHERE_CONTROL_PLANE_MEM_MIB='4096'
      export VSPHERE_CONTROL_PLANE_DISK_GIB='20'
      export TKG_CUSTOM_IMAGE_REPOSITORY='projects.registry.vmware.com/tkg'
      export OS_NAME='photon'
      export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE="LS0tL[...]0tLQo="
      
    2. Créez un manifeste vsphere-snc.yaml avec les spécifications d'objets Cluster et Secret faisant référence aux variables ci-dessus :

      apiVersion: cluster.x-k8s.io/v1beta1
      kind: Cluster
      metadata:
        annotations:
          tkg.tanzu.vmware.com/cluster-controlplane-endpoint: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          run.tanzu.vmware.com/resolve-tkr: 'tkr.tanzu.vmware.com/tiny'
        labels:
          tkg.tanzu.vmware.com/cluster-name: ${CLUSTER_NAME}
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      spec:
        clusterNetwork:
          pods:
            cidrBlocks:
            - ${CLUSTER_CIDR}
          services:
            cidrBlocks:
            - ${SERVICE_CIDR}
        topology:
          class: tkg-vsphere-default-v1.1.1
          controlPlane:
            metadata:
              annotations:
                run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=${OS_NAME}
            replicas: 1
          variables:
          - name: controlPlaneTaint
            value: false
          - name: auditLogging
            value:
              enabled: false
          - name: apiServerEndpoint
            value: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          - name: aviAPIServerHAProvider
            value: false
          - name: imageRepository
            value:
              host: ${TKG_CUSTOM_IMAGE_REPOSITORY}
          - name: trust
            value:
              additionalTrustedCAs:
              - data: ${TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE}
                name: imageRepository
          - name: vcenter
            value:
              cloneMode: fullClone
              datacenter: ${VSPHERE_DATACENTER}
              datastore: ${VSPHERE_DATASTORE}
              folder: ${VSPHERE_FOLDER}
              network: ${VSPHERE_NETWORK}
              resourcePool: ${VSPHERE_RESOURCE_POOL}
              server: ${VSPHERE_SERVER}
              storagePolicyID: ""
              tlsThumbprint: ${VSPHERE_TLS_THUMBPRINT}
          - name: user
            value:
              sshAuthorizedKeys:
              - ${VSPHERE_SSH_AUTHORIZED_KEY}
          - name: controlPlane
            value:
              machine:
                diskGiB: ${VSPHERE_CONTROL_PLANE_DISK_GIB}
                memoryMiB: ${VSPHERE_CONTROL_PLANE_MEM_MIB}
                numCPUs: ${VSPHERE_CONTROL_PLANE_NUM_CPUS}
          version: v1.27.5+vmware.1-tiny.2
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      stringData:
        password: ${VSPHERE_PASSWORD}
        username: ${VSPHERE_USERNAME}
      EOF
      

      Notez les points suivants :

      • Paramètre metadata.annotations pour run.tanzu.vmware.com/resolve-tkr
      • Paramètre topology.variables pour controlPlaneTaint
      • Il n'y a pas de bloc topology.workers, uniquement topology.controlPlane
      • Pour les versions antérieures de TKG, la valeur topology.version doit être v1.25.7+vmware.1-tiny.1 pour la version v2.2.0, v1.24.10+vmware.1-tiny.1 pour la version v2.1.1 et v1.24.9+vmware.1-tiny.2 pour la version v2.1.0.
    3. (Facultatif) Pour configurer le cluster afin qu'il utilise Calico comme CNI, plutôt que la CNI Antrea par défaut, suivez les instructions pour les clusters à nœud unique dans la section CNI Calico pour les clusters de charge de travail superviseurs ou basés sur une classe à nœud unique.

    4. Appliquez le manifeste d'objet Cluster :

      tanzu cluster create -f vsphere-snc.yaml
      

Créer un cluster à nœud unique standard

Pour créer un cluster de charge de travail à nœud unique sur vSphere qui utilise une version TKr Photon ou Ubuntu standard :

  1. Créez un fichier de configuration plat pour le cluster de charge de travail, comme décrit dans la section Fichiers de configuration de vSphere avec un cluster de gestion autonome.

  2. Exécutez tanzu cluster create avec l'indicateur --dry-run pour convertir le fichier de configuration plat en une spécification d'objet Cluster de style Kubernetes, comme décrit dans la section Créer une spécification d'objet.

  3. Modifiez la spécification d'objet Cluster pour inclure les paramètres suivants :

    • Sous topology.controlPlane :

      replicas: 1
      
    • Aucun bloc topology.workers ; s'il en existe un, supprimez-le.

    • Sous topology.variables :

      - name: controlPlaneTaint
        value: false
      
  4. Exécutez tanzu cluster create avec la spécification d'objet Cluster modifiée, comme décrit dans la section Créer un cluster basé sur une classe à partir de la spécification d'objet.

check-circle-line exclamation-circle-line close-line
Scroll to top icon