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.
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 mit4096
. Der optimale Wert hängt jedoch von der Einstellung vonmax 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 vor4.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.
- Befolgen Sie
Laden Sie die benutzerdefinierte Sicherheitskontexteinschränkung (Security Context Constraint, SCC)
bdc-scc.yaml
herunter: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
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 zurnonroot
-SCC erforderlich sind, finden Sie in diesem Whitepaper.Erstellen eines Namespace/Projekts:
oc new-project <namespaceName>
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>
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
Installieren Sie das neueste azdata-Hilfsprogramm.
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ürserviceType
undstorageClass
enthält. Beispiel:azdata bdc config init --source aro-dev-test --target custom-openshift
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.
Legen Sie Umgebungsvariablen fest.
Stellen Sie den Big Data-Cluster bereit.
azdata bdc create --config custom-openshift --accept-eula yes
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