Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Benutzerdefinierte Zertifikate und Route 53 53-DNS-Management für HyperPod Inference
Die folgenden Schritte zeigen Ihnen, wie Sie Ihre eigenen ACM-Zertifikate für HyperPod Inferenzendpunkte verwenden und optional den Operator so konfigurieren, dass er Route 53 53-DNS-Einträge für Ihre benutzerdefinierte Domain verwaltet.
Bei benutzerdefinierten Zertifikaten stellen Sie einen ARN für ein ACM-Zertifikat bereit, den der Betreiber an den Application Load Balancer (ALB) anhängt, dessen Integrität überwacht und die automatische Verlängerungserkennung unterstützt. Der Betreiber unterstützt öffentlich vertrauenswürdige ACM-Zertifikate, AWS private CA-Zertifikate und Zertifikate, die von externen Zertifizierungsstellen importiert wurden.
Benutzerdefinierte Zertifikate können eigenständig oder in Kombination mit der Route 53 53-DNS-Verwaltung verwendet werden. Die DNS-Verwaltung für Route 53 erfordert ein benutzerdefiniertes Zertifikat und verwendet den Domainnamen aus Ihrer Zertifikatskonfiguration, um DNS-Einträge zu erstellen und zu verwalten.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie:
-
Richten Sie Inferenzfunktionen auf Ihren SageMaker HyperPod Amazon-Clustern ein. Weitere Informationen finden Sie unter Einrichtung Ihrer HyperPod Cluster für die Modellbereitstellung.
-
Kubectl wurde
in Ihrem Terminal installiert. -
Ein TLS-Zertifikat wurde in ACM in derselben AWS Region wie Ihr Cluster bereitgestellt oder importiert. HyperPod Das Zertifikat muss den Status Ausgestellt haben und eine Zertifikatskette (Zwischen- und Stammzertifizierungsstelle) enthalten. Self-signed In ACM importierte Zertifikate werden nicht als benutzerdefinierte Zertifikate unterstützt, da ihnen eine Zertifikatskette fehlt.
-
(Für die DNS-Verwaltung von Route 53) Es wurde eine von Route 53 gehostete Zone für Ihre Domain erstellt. Öffentlich gehostete Zonen werden empfohlen. Private gehostete Zonen funktionieren für die Erstellung von Datensätzen, aber der Betreiber überprüft die DNS-Auflösung mithilfe des DNS-Resolvers des Pods, der auf dem VPC-DNS-Resolver basiert. Für privat gehostete Zonen müssen für die VPC DNS-Auflösung und DNS-Hostnamen aktiviert sein, und die private gehostete Zone muss mit der VPC des Clusters verknüpft sein.
Konfigurieren Sie die IAM-Berechtigungen.
Die Ausführungsrolle des Inferenzoperators erfordert zusätzliche Berechtigungen für benutzerdefinierte Zertifikate und die Route 53 53-DNS-Verwaltung. Fügen Sie Ihrer HyperPod Inference-Ausführungsrolle die folgenden Richtlinien hinzu.
ACM- und Amazon S3 S3-Berechtigungen für benutzerdefinierte Zertifikate
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ACMCustomCertificateAccess", "Effect": "Allow", "Action": [ "acm:DescribeCertificate", "acm:GetCertificate" ], "Resource": "arn:aws:acm:<region>:<account-id>:certificate/*" }, { "Sid": "S3CertificateUpload", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:::<tls-certificate-bucket>/*", "Condition": { "StringEquals": { "s3:RequestObjectTag/CreatedBy": "HyperPodInference" } } } ] }
Anmerkung
Wenn Ihr Amazon S3 S3-Bucket-Name mit beginnthyperpod-tls, sind die Amazon S3 S3-Berechtigungen bereits in der AmazonSageMakerHyperPodInferenceAccess verwalteten Richtlinie enthalten und Sie müssen nur die ACM-Anweisung hinzufügen.
Route 53 53-Berechtigungen für die DNS-Verwaltung
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Route53DNSManagement", "Effect": "Allow", "Action": [ "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:ChangeResourceRecordSets" ], "Resource": "arn:aws:route53:::hostedzone/<hosted-zone-id>" } ] }
Ersetzen Sie <region><account-id>,<tls-certificate-bucket>, und <hosted-zone-id> durch Ihre tatsächlichen Werte. Sie können den ARN der ACM-Ressource auf bestimmte Zertifikate beschränken, um die Sicherheit zu erhöhen.
Konfigurieren Sie ein benutzerdefiniertes Zertifikat
Um ein benutzerdefiniertes Zertifikat zu verwenden, fügen Sie den customCertificateConfig Abschnitt tlsConfig zu Ihrer JumpStartModel Spezifikation hinzu. InferenceEndpointConfig Die dnsConfig Felder tlsConfig und sind in beiden CRDs identisch.
Die folgenden Felder sind in customCertificateConfig und tlsConfig verfügbar:
tlsConfig.customCertificateConfig.acmArn(Erforderlich, Zeichenfolge)-
Der ARN Ihres ACM-Zertifikats. Muss sich im Status „Ausgestellt“ befinden.
tlsConfig.customCertificateConfig.domainName(Erforderlich, Zeichenfolge)-
Der Domainname, der aus dem Zertifikat verwendet werden soll.
-
Muss eine bestimmte Domain sein, kein Platzhalter. Geben Sie für Platzhalterzertifikate (z. B.
*.example.com) die spezifische Subdomain an (z. B.).api.example.com -
Muss in Kleinbuchstaben geschrieben werden.
-
Muss mit einem der im Zertifikat aufgeführten Domainnamen übereinstimmen.
-
tlsConfig.tlsCertificateOutputS3Uri(Bedingt, Zeichenfolge)-
Amazon S3 S3-URI, wo der Betreiber das öffentliche Zertifikat hochlädt. Erforderlich, es sei denn, der Operator wurde mit konfigurierter
TLS_CERTIFICATE_OUTPUT_S3URIUmgebungsvariable installiert. Wenn Sie sich nicht sicher sind, ob dies festgelegt wurde, geben Sie es explizit an.
Im Folgenden finden Sie ein Beispiel für eine YAML-Datei zum Erstellen eines Endpunkts mit einem benutzerdefinierten Zertifikat.
apiVersion: inference.sagemaker.aws.amazon.com/v1 kind: InferenceEndpointConfig metadata: name: my-model namespace: my-namespace spec: modelName: my-llm instanceType: ml.g5.24xlarge invocationEndpoint: v1/chat/completions replicas: 2 modelSourceConfig: modelSourceType: s3 s3Storage: bucketName: my-model-bucket region: us-west-2 modelLocation: models/my-llm tlsConfig: customCertificateConfig: acmArn: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-1234-1234-1234-abc123456789 domainName: api.example.com tlsCertificateOutputS3Uri: s3://my-tls-bucket worker: image: my-inference-image:latest modelInvocationPort: containerPort: 8000 name: http modelVolumeMount: name: model-weights mountPath: /opt/ml/model resources: limits: nvidia.com/gpu: "4" requests: cpu: "6" memory: 30Gi nvidia.com/gpu: "4"
Sie können customCertificateConfig zu einer Bereitstellung, die bereits läuft, etwas hinzufügen. Der Operator erkennt die Änderung beim nächsten Abgleich, validiert das Zertifikat, hängt es an die ALB an und lädt das öffentliche Zertifikat auf Amazon S3 hoch. Es sind keine Ausfallzeiten oder eine erneute Bereitstellung erforderlich.
Wichtig
Wenn Sie den customCertificateConfig Abschnitt aus einer laufenden Bereitstellung entfernen, generiert der Operator erneut ein neues selbstsigniertes Zertifikat. Dies ersetzt Ihr CA-signed Zertifikat auf dem ALB.
Konfigurieren Sie Route 53 53-DNS-Verwaltung
Für die DNS-Verwaltung von Route 53 muss ein benutzerdefiniertes Zertifikat konfiguriert werden, und es wird der Domainname von verwendettlsConfig.customCertificateConfig.domainName. Wenn Sie kein benutzerdefiniertes Zertifikat konfiguriert haben, finden Sie Konfigurieren Sie ein benutzerdefiniertes Zertifikat zuerst weitere Informationen.
Um die Route 53 53-DNS-Verwaltung zu aktivieren, fügen Sie den dnsConfig Abschnitt zu Ihrer Spezifikation hinzu:
spec: tlsConfig: customCertificateConfig: acmArn: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-1234-1234-1234-abc123456789 domainName: api.example.com tlsCertificateOutputS3Uri: s3://my-tls-bucket dnsConfig: hostedZoneId: Z1234567890ABC
Der dnsConfig Abschnitt kann gleichzeitig mit einer vorhandenen Bereitstellung oder zu einem späteren Zeitpunkt hinzugefügt werden. customCertificateConfig Der Operator erstellt die DNS-Einträge beim nächsten Abgleich, ohne Ihre Pods neu zu starten.
Bei der Bereitstellung mit dnsConfig hat der Operator:
-
Überprüft, ob die Hosting-Zone existiert und ob Ihre Domain zur Hosting-Zone gehört (
api.example.comerfordert beispielsweise eine Hosting-Zone fürexample.com). -
Prüft, ob in der Zieldomäne A-Einträge vorhanden sind, um versehentliche Überschreibungen zu verhindern.
-
Erstellt einen A-Eintrag (Alias), der Ihre Domain auf die ALB verweist, und einen TXT-Eintrag mit einer Besitzmarkierung (
hyperpod-inference/owner=<namespace>/<name>), um Konflikte zwischen Endpunkten zu vermeiden. Ändern oder löschen Sie den TXT-Eintrag nicht manuell. -
Ruft die DNS-Auflösung alle 30 Sekunden ab, bis die Domain aufgelöst ist, und markiert dann den Status als.
ActiveWenn der Datensatz nicht innerhalb von 10 Minuten aufgelöst wird, wechselt der Status zu.Error
Anmerkung
Die DNS-Verwaltung von Route 53 ist nicht blockierend. Fehler bei der Erstellung oder Weitergabe von DNS-Einträgen verhindern nicht, dass Ihr Inferenzendpunkt den Ready Status erreicht. Auf den Endpunkt kann weiterhin über den Standard-Hostnamen der ALB zugegriffen werden. Überprüfen Sie den dnsStatus Abschnitt im Ressourcenstatus auf Fehler. DNS-specific
Verwenden Sie ein benutzerdefiniertes Zertifikat ohne Route 53 53-DNS-Verwaltung
Die DNS-Verwaltung von Route 53 ist optional. Wenn Sie Ihre eigenen DNS-Einträge verwalten möchten, lassen Sie den dnsConfig Abschnitt weg und konfigurieren Sie Ihre Domain manuell.
Um den ALB-Hostnamen für Ihre Bereitstellung zu ermitteln, hängt der Eingangsname davon ab, ob intelligentes Routing aktiviert ist.
Ohne intelligentes Routing: Der Ingress wird in Ihrem Namespace benanntalb-<deployment-name>.
kubectl get ingress alb-<deployment-name> -n <namespace> \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Mit intelligentem Routing: Der Ingress wird alb-<deployment-name>-<namespace> im Namespace benannt. hyperpod-inference-system
kubectl get ingress alb-<deployment-name>-<namespace> -n hyperpod-inference-system \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Erstellen Sie in Ihrem DNS-Anbieter einen DNS-Eintrag, der Ihre Domain auf diesen ALB-Hostnamen verweist:
-
Route 53 — Erstellen Sie einen A-Datensatz mit aktiviertem Alias, der auf den ALB verweist.
-
Andere DNS-Anbieter — Erstellen Sie einen CNAME-Eintrag, der Ihre Domain auf den ALB-DNS-Namen verweist. CNAME-Einträge können nicht in der Stammdomain verwendet werden (z. B.
example.com); verwenden Sie eine Subdomain wie.api.example.com
Anmerkung
Wenn der ALB neu erstellt wird (z. B. nach dem Löschen und erneuten Bereitstellen des Endpunkts), ändert sich der ALB-Hostname. Sie müssen Ihren DNS-Eintrag manuell aktualisieren. Die DNS-Verwaltung von Route 53 erledigt dies automatisch.
Überprüfen des Status Ihrer Bereitstellung
Überprüfen Sie den Status des benutzerdefinierten Zertifikats
kubectl describe InferenceEndpointConfig my-model -n my-namespace
Suchen Sie im Status nach dem tlsCertificate Abschnitt:
Status: Tls Certificate: Certificate ARN: arn:aws:acm:us-west-2:123456789012:certificate/abc12345-... Certificate Health: Valid Certificate Domain Names: api.example.com Last Cert Expiry Time: 2027-04-23T00:00:00Z
Gesundheitswerte des Zertifikats:
-
Gültig — Das Zertifikat läuft nach mehr als 60 Tagen ab.
-
Läuft ab — Das Zertifikat läuft innerhalb von 60 Tagen ab. Ein Kubernetes-Warnereignis (
CertificateExpiring) wird ausgelöst. -
Abgelaufen — Das Zertifikat ist abgelaufen. Ein Kubernetes-Warnereignis (
CertificateExpired) wird ausgegeben.
Der Betreiber überprüft den Ablauf des Zertifikats alle 24 Stunden. Wenn es feststellt, dass ein Zertifikat in ACM erneuert wurde (das NotAfter Datum ändert sich), lädt es das öffentliche Zertifikat automatisch erneut auf Amazon S3 hoch und gibt ein Ereignis aus. CertificateRenewed
Überprüfen Sie den DNS-Status
Suchen Sie nach dem dnsStatus Abschnitt:
Status: Dns Status: Managed By Operator: true Record Name: api.example.com Hosted Zone Id: Z1234567890ABC Dns Health: Active Message: DNS record resolves successfully
DNS-Integritätswerte:
-
Aktiv — Der DNS-Eintrag wurde erfolgreich aufgelöst. Ihre benutzerdefinierte Domain ist einsatzbereit.
-
Ausstehend — DNS-Einträge wurden in Route 53 erstellt, aber noch nicht weitergegeben. Der Operator überprüft alle 30 Sekunden erneut.
-
Fehler — Die Erstellung oder Weitergabe von DNS-Einträgen ist fehlgeschlagen. Überprüfen Sie das
MessageFeld auf Einzelheiten.
Testen Sie den bereitgestellten Endpunkt
Wenn Sie die Route 53 53-DNS-Verwaltung konfiguriert haben, rufen Sie Ihren Endpunkt mit Ihrer benutzerdefinierten Domain auf, nachdem der DNS-Status angezeigt wirdActive. Wenn Sie nur ein benutzerdefiniertes Zertifikat ohne DNS-Verwaltung konfiguriert haben, verwenden Sie den ALB-Hostnamen aus dem Ingress (siehe). Verwenden Sie ein benutzerdefiniertes Zertifikat ohne Route 53 53-DNS-Verwaltung
curl -X POST https://api.example.com/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "my-llm", "messages": [{"role": "user", "content": "Hello"}]}'
Anmerkung
Um über den SageMaker KI-Endpunkt aufzurufen, legen Sie dies endpointName in Ihrer InferenceEndpointConfig oder sageMakerEndpoint.name in Ihrer Spezifikation fest. JumpStartModel Wenn nicht festgelegt, endpointName wird kein SageMaker KI-Endpunkt erstellt und es ist nur ein direkter ALB-Aufruf verfügbar.
aws sagemaker-runtime invoke-endpoint \ --endpoint-name my-model \ --content-type "application/json" \ --body '{"model": "my-llm", "messages": [{"role": "user", "content": "Hello"}]}' \ --region us-west-2 \ --cli-binary-format raw-in-base64-out \ /dev/stdout
Verwalte deine benutzerdefinierten Zertifikate und DNS-Einträge
Änderung der Domain oder Hosting-Zone
Sie können domainName (incustomCertificateConfig) oder hostedZoneId (indnsConfig) in einer laufenden Bereitstellung aktualisieren. Eine Änderung des Domainnamens löst sowohl eine erneute Überprüfung des Zertifikats als auch eine DNS-Umstellung aus. Die neue Domain muss in Ihrem ACM-Zertifikat gültig sein (als SAN- oder Wildcard-Match).
Der Betreiber führt eine sichere Umstellung durch:
-
Erstellt neue DNS-Einträge in der neuen Zone oder für die neue Domain.
-
Überprüft die Auflösung der neuen Einträge.
-
Löscht die alten DNS-Einträge erst, nachdem bestätigt wurde, dass die neuen Einträge aktiv sind.
Während des Übergangs werden sowohl alte als auch neue Domänen im ALB aufgelöst. Der TXT-Besitzeintrag hat eine TTL von 300 Sekunden (5 Minuten), sodass DNS-Clients den alten Datensatz nach der Bereinigung für bis zu 5 Minuten zwischenspeichern können.
Bereinigen
Wenn Sie den dnsConfig Abschnitt löschen InferenceEndpointConfig oder entfernen, löscht der Operator automatisch die von ihm erstellten Route 53A- und TXT-Datensätze. Der Operator löscht nur Datensätze, deren Eigentümer er ist (was anhand des TXT-Datensatzes für Eigentümer bestätigt wird).
Fehlerbehebung
Verwenden Sie diese Debugging-Schritte, wenn Ihre benutzerdefinierte Zertifikat- oder DNS-Konfiguration nicht wie erwartet funktioniert.
-
Die Bereitstellung schlägt mit einem Amazon S3 S3-Zugriffsfehler fehl. Stellen Sie sicher, dass der in angegebene Amazon S3 S3-Bucket
tlsCertificateOutputS3Uriexistiert und sich in derselben Region befindet. Stellen Sie sicher, dass der Operator über die Ausführungsrolles3:PutObjectund dies3:PutObjectTaggingBerechtigungen für den Bucket verfügt. Der Betreiber validiert den Amazon S3 S3-Schreibzugriff, indem er bei der ersten Bereitstellung ein Null-Byte-Testobjekt hochlädt. -
Die Validierung des Zertifikats schlägt fehl. Stellen Sie sicher, dass sich das ACM-Zertifikat im
ISSUEDStatus befindet:aws acm describe-certificate --certificate-arn <arn> --region <region>. Stellen Sie sicher, dass das Zertifikat mit einer Domäne oder einem SANdomainNameübereinstimmt. Verwenden Sie für Wildcard-Zertifikate (*.example.com) eine bestimmte Subdomain wie.api.example.com -
Die Erstellung von DNS-Einträgen schlägt fehl. Stellen Sie sicher, dass die Hosting-Zonen-ID korrekt ist und die Ausführungsrolle des Operators über Route 53 53-Berechtigungen verfügt. Stellen Sie sicher, dass die Domain zur Hosting-Zone gehört (
api.example.comerfordert z. B. eine Hosting-Zone fürexample.com). Wenn Sie einen NS-Delegierungskonflikt sehen, verwenden Sie stattdessen die Hosting-Zonen-ID der delegierten Zone. Wenn Sie einen Datensatzkonflikt sehen, besitzt ein anderer Endpunkt oder ein externer Prozess den A-Eintrag in dieser Domäne. -
Im DNS-Eintrag wird für längere Zeit ausstehend angezeigt. Stellen Sie sicher, dass die NS-Einträge der Hosting-Zone ordnungsgemäß vom übergeordneten Domain-Registrar delegiert wurden. Der Betreiber verwendet den DNS-Resolver des Pods (normalerweise CoreDNS), der Ergebnisse zwischenspeichern kann. Nach 10 Minuten ohne Auflösung wechselt der Status zu.
Error -
Warnungen vor Ablauf des Zertifikats. Erneuern oder ersetzen Sie das Zertifikat in ACM. Bei ACM-issued Zertifikaten übernimmt ACM die Verlängerung automatisch. Importieren Sie für importierte Zertifikate ein neues Zertifikat. Der Betreiber erkennt die Verlängerung automatisch und lädt das öffentliche Zertifikat erneut auf Amazon S3 hoch.