GPU enabled K8s Cluster in vSphere mit Tanzu

Der Einsatz von GPUs in Container-Workloads ist eine wichtige Anforderung von Entwicklern, die mit Machine Learning und künstlicher Intelligenz arbeiten.

Sie können benutzerdefinierte VM-Klassen erstellen, in der ein VI-Administrator eine vGPU-Spezifikation für diese Klasse definiert. Entwickler können diese Klasse verwenden, um ihren Workloads GPU-Ressourcen zuzuweisen. Die VM-Klasse definiert z.B. die Knotenplatzierung und das vGPU-Profil.

Dies gilt nicht nur für GPU-fähige TKG-Cluster, sondern auch für VMs. Durch die Verwendung von benutzerdefinierten Klassen wird die Nutzung von GPU-Ressourcen in ML/AI-Anwendungen vereinfacht.

Unten ist beispielhaft eine VM Klasse dargestellt.

kind: TanzuKubernetesCluster
apiVersion: run.tanzu.vmware.com/v1
metadata:
  name: GPU-Cluster
spec:
  topology:
    workers:
      count: 3
      class: gpu-vmclass
  distribution: v1.20.2

Diese Klasse kann beispielsweise für die Bereitstellung einer VM genutzt werden.

kind: VirtualMachine
metadata:
  name: gpu-vm
  namespace: tkg-dev
spec:
  networkInterfaces:
  - networkName: "dev-network"
    networkType: vsphere-distributed
  classname: gpu-vmclass
  imageName: ubuntu-custom-gpu    
  storageClass: GPU-vm-policy

Dieser Beitrag war ursprünglich Teil meines Artikels über die Neuerungen in vSphere7 Update3. Auf Wunsch von VMware wurde der Inhalt bis zum 5. Oktober 2021 zurückgezogen und hiermit als eigener Artikel veröffentlicht.

vSphere 7 Update 3 – Die Neuheiten im Überblick

Dieser Blogpost wurde auf den 28. September 2021 8:00 Uhr (PT) / 17:00 Uhr (CEST) terminiert. Die Tatsache, dass Ihr dies jetzt lesen könnt, bedeutet, dass vSphere 7 Update 3 (wahrscheinlich) bereits veröffentlicht wurde.

[Update 29.9.2021]: Download ist noch nicht verfügbar. Möglicherweise wird damit bis zur VMworld2021 gewartet.

What’s New

VMware vSphere 7 Update3 enthält eine Vielzahl von Neuerungen. Sie können in die folgenden Abschnitte eingeteilt werden:

  • Tanzu with Kubernetes
  • Lifecycle, Upgrade and Patching
  • Artificial Intelligence & Machine Learning
  • Resource Management
  • Availability & Resiliency
  • Security & Compliance
  • Guest OS and Workloads
  • Storage
  • Networking
  • vSphere Management & APIs

VMware vSAN enthält eine ganze Reihe weiterer Funktionen. Aber diese werden in einem gesonderten Beitrag behandelt.

„vSphere 7 Update 3 – Die Neuheiten im Überblick“ weiterlesen

VMware Bitfusion und Tanzu – Teil 3: Bitfusion aus Kubernetes Pods und TKGS nutzen

Dies ist ein mehrteiliger Artikel rund um das Produkt VMware Bitfusion. Ich werde eine Einführung in die Technik geben, wie man einen Bitfusion Server einrichtet und wie man dessen Dienste aus Kubernetes Pods nutzen kann.

Wir haben in den Teilen 1 und 2 gesehen, was Bitfusion ist und wie man einen Bitfusion Server Cluster aufsetzt. Der herausfordernde Teil ist, diesen Bitfusion Cluster aus Kubernetes Pods nutzbar zu machen.

Damit Container auf Bitfusion GPU-Ressourcen zugreifen können, müssen ein paar Rahmenbedingugen erfüllt sein.

Ich setze in dieser Anleitung voraus, dass wir einen konfigurierten vSphere-Tanzu Cluster zur Verfügung haben, sowie einen Namespace, einen User, eine Storage-Class und die Kubernetes CLI Tools. Das Netzwerk kann entweder mit NSX-T oder mit Distributed-vSwitches und einem Loadbalancer wie zum Beispiel dem AVI-Loadbalancer organisiert sein.

Im beschriebenen PoC wurde aus Gründen der Einfachheit Tanzu on vSphere ohne NSX-T verwendet. Zum Einsatz kam der AVI-Loadbalancer, der jetzt offiziell NSX-Advanced-Loadbalancer genannt wird.

Außerdem benötigen wir ein Linux System mit Zugriff auf Github oder einen Mirror für die Vorbereitung des Clusters.

Der Ablauf ist folgender:

  • TKGS Cluster erzeugen
  • Bitfusion Baremetal Token laden und K8s Secret erzeugen
  • Git Projekt laden und Makefile anpassen
  • Device-Plugin auf TKGS-Cluster bereitstellen
  • Pod Deployment
„VMware Bitfusion und Tanzu – Teil 3: Bitfusion aus Kubernetes Pods und TKGS nutzen“ weiterlesen

VMware Bitfusion und Tanzu – Teil 2: Bitfusion Server Setup

Dies ist ein mehrteiliger Artikel rund um das Produkt VMware Bitfusion. Ich werde eine Einführung in die Technik geben, wie man einen Bitfusion Server einrichtet und wie man dessen Dienste aus Kubernetes Pods nutzen kann.

Bitfusion Server Setup Vorbereitungen

Ein Bitfusion Server Cluster muss folgende Anforderungen erfüllen:

  • vSphere 7 oder neuer
  • 10 GBit LAN Minimum für das Bitfusion Netzwerk für kleinere Anwendungen. Hohe Bandbreite und geringe Latenz sind elementar wichtig. Empfohlen werden 40 Gbit oder gar 100 Gbit.
  • Nvidia GPU mit CUDA Funktionalität und DirectPath I/O Unterstützung:
    • Pascal P40
    • Tesla V100
    • T4 Tensor
    • A100 Tensor
  • mindestens 3 Bitfusion Server pro Cluster für Hochverfügbarkeit

Diese Setup Anleitung setzt voraus, daß die Grafikkarten in den ESXi 7+ Servern bereitgestellt wurden und die Hosts einem Cluster in vCenter beigetreten sind.

„VMware Bitfusion und Tanzu – Teil 2: Bitfusion Server Setup“ weiterlesen