Bereitstellen von Big Data-Cluster für SQL Server lokal auf OpenShift und Azure Red Hat OpenShift

Gilt für: SQL Server 2019 (15.x)

Wichtig

Das Microsoft SQL Server 2019-Big Data-Cluster-Add-On wird eingestellt. Der Support für SQL Server 2019-Big Data-Clusters endet am 28. Februar 2025. Alle vorhandenen Benutzer*innen von SQL Server 2019 mit Software Assurance werden auf der Plattform vollständig unterstützt, und die Software wird bis zu diesem Zeitpunkt weiterhin über kumulative SQL Server-Updates verwaltet. Weitere Informationen finden Sie im Ankündigungsblogbeitrag und unter Big Data-Optionen auf der Microsoft SQL Server-Plattform.

In diesem Artikel wird erläutert, wie Sie einen SQL Server-Big Data-Cluster (BDC) in OpenShift-Umgebungen, lokal oder in Azure Red Hat OpenShift (ARO) bereitstellen.

Tipp

Eine schnelle Möglichkeit zum Bootstrapping einer Beispielumgebung mithilfe von ARO und der anschließenden Bereitstellung eines BDCs auf dieser Plattform ist die Verwendung des Python-Skripts, das hier verfügbar ist.

Sie können Big Data-Cluster für lokale OpenShift-Instanzen oder auf Azure Red Hat OpenShift (ARO) bereitstellen. Überprüfen Sie die CRI-O-Version von OpenShift anhand der getesteten Konfigurationen in den Versionshinweisen zu Big Data-Cluster von SQL Server. Obwohl der Bereitstellungsworkflow ähnlich wie bei anderen auf Kubernetes basierten Plattformen ist (kubeadm und AKS), gibt es dennoch Unterschiede. Der Unterschied besteht hauptsächlich in Bezug auf das Ausführen von Anwendungen als nicht Stammbenutzer und den Sicherheitskontext, der für den Namespace verwendet wird, in dem BDC bereitgestellt wird.

Informationen zum lokalen Bereitstellen des OpenShift-Clusters finden Sie in der Red Hat OpenShift-Dokumentation. Informationen zu den Bereitstellungen von ARO finden Sie in der Azure Red Hat OpenShift-Dokumentation.

In diesem Artikel werden die Bereitstellungsschritte beschrieben, die für die OpenShift-Plattform spezifisch sind. Dabei werden die Optionen für den Zugriff auf die Zielumgebung und der Namespace aufgeführt, den Sie zum Bereitstellen des Big Data-Clusters verwenden.

Voraussetzungen

Wichtig

Die folgenden Voraussetzungen müssen von einem OpenShift-Clusteradministrator (Clusterrolle „Clusteradministrator“) ausgeführt werden, der über ausreichende Berechtigungen zum Erstellen dieser Clusterebenenobjekte verfügt. Weitere Informationen zu Clusterrollen in OpenShift finden Sie unter Verwenden von RBAC zum Definieren und Anwenden von Berechtigungen.

  1. Stellen Sie sicher, dass die pidsLimit-Einstellung auf OpenShift aktualisiert wurde, um SQL Server-Workloads zu unterstützen. Der Standardwert in OpenShift ist zu niedrig für Produktionsumgebungen wie Workloads. Beginnen Sie mindestens mit 4096. Der optimale Wert hängt jedoch von der Einstellung von max worker threads in SQL Server und der Anzahl der CPU-Prozessoren auf dem OpenShift-Hostknoten ab.

    • Befolgen Sie pidsLimit, um herauszufinden, wie Sie das pidsLimit für Ihren OpenShift-Cluster aktualisieren. Beachten Sie, dass OpenShift-Versionen vor 4.3.5 einen Fehler aufweisen, der dazu führt, dass der aktualisierte Wert nicht übernommen wird. Aktualisieren Sie OpenShift daher unbedingt auf die neueste Version.
    • Wenn Sie den optimalen Wert abhängig von Ihrer Umgebung und den geplanten SQL Server-Workloads berechnen möchten, können Sie die folgende Schätzung und die folgenden Beispiele verwenden:
    Anzahl der Prozessoren Max. Anzahl von Arbeitsthreads Standardworker pro Prozessor Minimaler pidsLimit-Wert
    64 512 16 512 + (64 × 16) = 1536
    128 512 32 512 + (128 × 32) = 4608

    Hinweis

    Andere Prozesse (z. B. Sicherungen, CLR, Fulltext, SQLAgent) führen ebenfalls zu erhöhtem Aufwand. Fügen Sie also dem geschätzten Wert einen Puffer hinzu.

  2. Laden Sie die benutzerdefinierte Sicherheitskontexteinschränkung (Security Context Constraint, SCC) bdc-scc.yamlherunter:

    curl https://raw.githubusercontent.com/microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/openshift/bdc-scc.yaml -o bdc-scc.yaml
    
  3. Wenden Sie die SCC auf den Cluster an.

    oc apply -f bdc-scc.yaml
    

    Hinweis

    Die benutzerdefinierte SCC für BDC basiert auf der integrierten nonroot-SCC in OpenShift mit zusätzlichen Berechtigungen. Weitere Informationen zu Sicherheitskontexteinschränkungen in OpenShift finden Sie unter Verwalten von Sicherheitskontexteinschränkungen. Ausführliche Informationen darüber, welche Berechtigungen für Big Data-Cluster zusätzlich zur nonroot-SCC erforderlich sind, finden Sie in diesem Whitepaper.

  4. Erstellen eines Namespace/Projekts:

    oc new-project <namespaceName>
    
  5. Binden Sie die benutzerdefinierte SCC an die Dienstkonten in dem Namespace, in dem BDC bereitgestellt wird:

    oc create clusterrole bdc-role --verb=use --resource=scc --resource-name=bdc-scc -n <namespaceName>
    oc create rolebinding bdc-rbac --clusterrole=bdc-role --group=system:serviceaccounts:<namespaceName>
    
  6. Weisen Sie den Benutzern, die BDC bereitstellen, die entsprechende Berechtigung zu. Führen Sie einen der folgenden Schritte aus:

    • Wenn der Benutzer, der BDC bereitstellt, über eine Clusteradministratorrolle verfügt, fahren Sie mit dem Bereitstellen eines Big Data-Clusters fort.

    • Wenn der Benutzer, der BDC bereitstellt, ein Namespaceadministrator ist, weisen Sie diesem die lokale Rolle „Clusteradministrator“ für den erstellten Namespace zu. Dies ist die bevorzugte Option für den Benutzer, der den Big Data-Cluster bereitstellt und verwaltet, um Administratorberechtigungen auf Namespaceebene zu erhalten.

    oc create rolebinding bdc-user-rbac --clusterrole=cluster-admin --user=<userName> -n <namespaceName>
    

    Der Benutzer, der den Big Data-Cluster bereitstellt, muss sich dann bei der OpenShift-Konsole anmelden:

    oc login -u <deployingUser> -p <password>
    

Bereitstellen eines Big Data-Clusters

  1. Installieren Sie das neueste azdata-Hilfsprogramm.

  2. Klonen Sie eine der integrierten Konfigurationsdateien für OpenShift, abhängig von Ihrer Zielumgebung (OpenShift lokal oder ARO) und dem Bereitstellungsszenario. Informationen zu den Einstellungen, die für OpenShift in den integrierten Konfigurationsdateien spezifisch sind, finden Sie weiter unten im Abschnitt Für OpenShift spezifische Einstellung in Bereitstellungskonfigurationsdateien. Weitere Informationen zu verfügbaren Konfigurationsdateien finden Sie im Bereitstellungsleitfaden.

    Listen Sie nun alle verfügbaren integrierten Konfigurationsdateien auf.

    azdata bdc config list
    

    Führen Sie den folgenden Befehl aus, um eine der integrierten Konfigurationsdateien zu klonen. (Alternativ können Sie auch das auf Ihrer Zielplattform bzw. Ihrem Zielszenario basierende Profil ersetzen):

    azdata bdc config init --source openshift-dev-test --target custom-openshift
    

    Beginnen Sie für eine Bereitstellung unter ARO mit einem der aro--Profile, das für diese Umgebung geeignete Standardwerte für serviceType und storageClass enthält. Beispiel:

    azdata bdc config init --source aro-dev-test --target custom-openshift
    
  3. Passen Sie die Konfigurationsdateien „control.json“ und „bdc.json“ an. Im Folgenden finden Sie einige zusätzliche Ressourcen, die Sie durch die Anpassungen für verschiedene Anwendungsfälle führen:

    Hinweis

    Die Integration in Microsoft Entra ID (ehemals Azure Active Directory) für BDC wird nicht unterstützt. Daher können Sie diese Authentifizierungsmethode nicht verwenden, wenn Sie in ARO bereitstellen.

  4. Legen Sie Umgebungsvariablen fest.

  5. Stellen Sie den Big Data-Cluster bereit.

    azdata bdc create --config custom-openshift --accept-eula yes
    
  6. Bei erfolgreicher Bereitstellung können Sie sich anmelden und die externen Clusterendpunkte auflisten:

       azdata login -n mssql-cluster
       azdata bdc endpoint list
    

OpenShift-spezifische Einstellungen in den Bereitstellungskonfigurationsdateien

SQL Server 2019 CU5 führt zwei Funktionsparameter ein, um die Sammlung von Pod- und Knotenmetriken zu steuern. Diese Parameter werden in den integrierten Profilen für OpenShift standardmäßig auf false festgelegt, da für die Überwachungscontainer privilegierter Sicherheitskontext erforderlich ist. Dadurch werden einige der Sicherheitseinschränkungen für den Namespace gelockert, auf dem BDC bereitgestellt ist.

    "security": {
      "allowNodeMetricsCollection": false,
      "allowPodMetricsCollection": false
}

Der Name der Standardspeicherklasse in ARO ist „managed-premium“ (im Gegensatz zu AKS, bei dem die Standardspeicherklasse „default“, also Standard, genannt wird). Diese Informationen finden Sie in der control.json-Datei, die aro-dev-test und aro-dev-test-ha entspricht:

    },
    "storage": {
      "data": {
        "className": "managed-premium",
        "accessMode": "ReadWriteOnce",
        "size": "15Gi"
      },
      "logs": {
        "className": "managed-premium",
        "accessMode": "ReadWriteOnce",
        "size": "10Gi"
      }

bdc-scc.yaml-Datei

Die SCC-Datei für diese Bereitstellung ist:

allowHostDirVolumePlugin: false
allowHostIPC: false
allowHostNetwork: false
allowHostPID: false
allowHostPorts: false
allowPrivilegeEscalation: true
allowPrivilegedContainer: false
allowedCapabilities:
  - SETUID
  - SETGID
  - CHOWN
  - SYS_PTRACE
apiVersion: security.openshift.io/v1
defaultAddCapabilities: null
fsGroup:
  type: RunAsAny
kind: SecurityContextConstraints
metadata:
  annotations:
    kubernetes.io/description: SQL Server BDC custom scc is based on 'nonroot' scc plus additional capabilities required by BDC.
  generation: 2
  name: bdc-scc
readOnlyRootFilesystem: false
requiredDropCapabilities:
  - KILL
  - MKNOD
runAsUser:
  type: MustRunAsNonRoot
seLinuxContext:
  type: MustRunAs
supplementalGroups:
  type: RunAsAny
volumes:
  - configMap
  - downwardAPI
  - emptyDir
  - persistentVolumeClaim
  - projected
  - secret

Nächste Schritte

Tutorial: Laden von Beispieldaten in einen Big Data-Cluster für SQL Server