Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Certificati personalizzati e gestione DNS Route 53 per Inference HyperPod
I passaggi seguenti mostrano come utilizzare i tuoi certificati ACM per gli endpoint di HyperPod inferenza e, facoltativamente, configurare l'operatore per gestire i record DNS di Route 53 per il tuo dominio personalizzato.
Con i certificati personalizzati, fornisci un certificato ACM ARN e l'operatore lo collega all'Application Load Balancer (ALB), ne monitora lo stato e supporta il rilevamento automatico dei rinnovi. L'operatore supporta certificati ACM affidabili pubblicamente, certificati CA AWS privati e certificati importati da CA esterne.
I certificati personalizzati possono essere utilizzati da soli o combinati con la gestione DNS di Route 53. La gestione DNS di Route 53 richiede un certificato personalizzato e utilizza il nome di dominio della configurazione del certificato per creare e gestire i record DNS.
Prerequisiti
Prima di iniziare, verifica di aver:
-
Configura le funzionalità di inferenza sui tuoi cluster Amazon. SageMaker HyperPod Per ulteriori informazioni, consulta Configurazione dei HyperPod cluster per la distribuzione dei modelli.
-
Hai installato https://kubernetes.io/docs/reference/kubectl/
kubectl nel tuo terminale. -
Hai fornito o importato un certificato TLS in ACM nella stessa regione del cluster. AWS HyperPod Il certificato deve essere nello stato Emesso e deve includere una catena di certificati (CA intermedia e radice). Self-signed i certificati importati in ACM non sono supportati come certificati personalizzati perché mancano di una catena di certificati.
-
(Per la gestione DNS di Route 53) Hai creato una zona ospitata su Route 53 per il tuo dominio. Le zone ospitate pubbliche sono consigliate. Le zone ospitate private funzionano per la creazione di record, ma l'operatore verifica la risoluzione DNS utilizzando il resolver DNS del pod, che si basa sul resolver DNS VPC. Per le zone ospitate private, il VPC deve avere la risoluzione DNS e i nomi host DNS abilitati e la zona ospitata privata deve essere associata al VPC del cluster.
Configurazione delle autorizzazioni IAM
Il ruolo di esecuzione dell'operatore di inferenza richiede autorizzazioni aggiuntive per i certificati personalizzati e la gestione DNS di Route 53. Aggiungi le seguenti politiche al tuo ruolo di esecuzione dell' HyperPod inferenza.
Autorizzazioni ACM e Amazon S3 per certificati personalizzati
{ "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" } } } ] }
Nota
Se il nome del tuo bucket Amazon S3 inizia conhyperpod-tls, le autorizzazioni Amazon S3 sono già incluse nella policy AmazonSageMakerHyperPodInferenceAccess gestita e devi solo aggiungere l'istruzione ACM.
Autorizzazioni Route 53 per la gestione DNS
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Route53DNSManagement", "Effect": "Allow", "Action": [ "route53:GetHostedZone", "route53:ListResourceRecordSets", "route53:ChangeResourceRecordSets" ], "Resource": "arn:aws:route53:::hostedzone/<hosted-zone-id>" } ] }
Sostituisci<region>, <account-id><tls-certificate-bucket>, e <hosted-zone-id> con i tuoi valori effettivi. È possibile assegnare l'ARN della risorsa ACM a certificati specifici per una maggiore sicurezza.
Configura un certificato personalizzato
Per utilizzare un certificato personalizzato, aggiungi la customCertificateConfig sezione tlsConfig alla tua JumpStartModel specifica InferenceEndpointConfig or. I dnsConfig campi tlsConfig e sono identici in entrambi i CRD.
I seguenti campi sono disponibili in customCertificateConfig etlsConfig:
tlsConfig.customCertificateConfig.acmArn(Obbligatorio, String)-
L'ARN del tuo certificato ACM. Deve essere nello stato Emesso.
tlsConfig.customCertificateConfig.domainName(Obbligatorio, stringa)-
Il nome di dominio da utilizzare nel certificato.
-
Deve essere un dominio specifico, non una wildcard. Per i certificati wildcard (ad esempio,
*.example.com), specifica il sottodominio specifico (ad esempio,).api.example.com -
Deve essere in lettere minuscole.
-
Deve corrispondere a uno dei nomi di dominio elencati nel certificato.
-
tlsConfig.tlsCertificateOutputS3Uri(Condizionale, stringa)-
URI Amazon S3 in cui l'operatore carica il certificato pubblico. Obbligatorio a meno che l'operatore non sia stato installato con la variabile di
TLS_CERTIFICATE_OUTPUT_S3URIambiente configurata. Se non sei sicuro che sia stata impostata, specificala esplicitamente.
Di seguito è riportato un file YAML di esempio per la creazione di un endpoint con un certificato personalizzato.
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"
È possibile aggiungerlo customCertificateConfig a una distribuzione già in esecuzione. L'operatore rileva la modifica alla riconciliazione successiva, convalida il certificato, lo allega all'ALB e carica il certificato pubblico su Amazon S3. Non sono richiesti tempi di inattività o ridistribuzione.
Importante
Se rimuovi la customCertificateConfig sezione da una distribuzione in esecuzione, l'operatore torna a generare un nuovo certificato autofirmato. Questo sostituisce il CA-signed certificato sull'ALB.
Configura la gestione DNS di Route 53
La gestione DNS di Route 53 richiede la configurazione di un certificato personalizzato e utilizza il nome di dominio di. tlsConfig.customCertificateConfig.domainName Se non hai configurato un certificato personalizzato, consulta Configura un certificato personalizzato prima.
Per abilitare la gestione DNS di Route 53, aggiungi la dnsConfig sezione alle tue specifiche:
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
La dnsConfig sezione può essere aggiunta contemporaneamente o aggiunta successivamente a una distribuzione esistente. customCertificateConfig L'operatore crea i record DNS alla riconciliazione successiva senza riavviare i pod.
Quando si esegue l'implementazione con, l'operatore: dnsConfig
-
Verifica che la zona ospitata esista e che il dominio appartenga alla zona ospitata (ad esempio,
api.example.comrichiede una zona ospitata perexample.com). -
Verifica la presenza di record A esistenti nel dominio di destinazione per evitare sovrascritture accidentali.
-
Crea un record A (alias) che punta il dominio all'ALB e un record TXT con un indicatore di proprietà (
hyperpod-inference/owner=<namespace>/<name>) per evitare conflitti tra gli endpoint. Non modificate o eliminate il record TXT manualmente. -
Esegue il polling della risoluzione DNS ogni 30 secondi fino alla risoluzione del dominio, quindi contrassegna lo stato come.
ActiveSe il record non si risolve entro 10 minuti, lo stato passa a.Error
Nota
La gestione DNS di Route 53 non è bloccante. Gli errori nella creazione o nella propagazione dei record DNS non impediscono all'endpoint di inferenza di raggiungere lo stato. Ready L'endpoint rimane accessibile tramite il nome host predefinito dell'ALB. Controlla la dnsStatus sezione nello stato della risorsa per eventuali errori. DNS-specific
Usa un certificato personalizzato senza la gestione DNS di Route 53
La gestione DNS di Route 53 è opzionale. Se desideri gestire i tuoi record DNS, ometti la dnsConfig sezione e configura il dominio manualmente.
Per trovare il nome host ALB per la tua distribuzione, il nome di ingresso dipende dall'attivazione o meno del routing intelligente.
Senza routing intelligente: l'ingresso è denominato nel tuo namespace. alb-<deployment-name>
kubectl get ingress alb-<deployment-name> -n <namespace> \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Con routing intelligente: l'ingresso è denominato nel namespace. alb-<deployment-name>-<namespace> hyperpod-inference-system
kubectl get ingress alb-<deployment-name>-<namespace> -n hyperpod-inference-system \ -o jsonpath='{.status.loadBalancer.ingress[0].hostname}'
Crea un record DNS nel tuo provider DNS indirizzando il tuo dominio a questo nome host ALB:
-
Route 53: crea un record A con Alias abilitato, che punta all'ALB.
-
Altri provider DNS: crea un record CNAME che punti il tuo dominio al nome DNS ALB. I record CNAME non possono essere utilizzati nel dominio principale (ad esempio,
example.com); usa un sottodominio come.api.example.com
Nota
Se l'ALB viene ricreato (ad esempio, dopo aver eliminato e ridistribuito l'endpoint), il nome host ALB cambia. È necessario aggiornare il record DNS manualmente. La gestione DNS di Route 53 lo gestisce automaticamente.
Verifica dello stato dell’implementazione
Controlla lo stato del certificato personalizzato
kubectl describe InferenceEndpointConfig my-model -n my-namespace
Cerca la tlsCertificate sezione nello stato:
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
Valori sanitari del certificato:
-
Valido: il certificato è scaduto per più di 60 giorni.
-
In scadenza: il certificato scade entro 60 giorni. Viene emesso un evento di avviso Kubernetes ().
CertificateExpiring -
Scaduto: il certificato è scaduto. Viene emesso un evento di avviso Kubernetes ().
CertificateExpired
L'operatore controlla la scadenza del certificato ogni 24 ore. Quando rileva che un certificato è stato rinnovato in ACM (la NotAfter data cambia), carica automaticamente il certificato pubblico su Amazon S3 ed emette un evento. CertificateRenewed
Controlla lo stato del DNS
Cerca la dnsStatus sezione:
Status: Dns Status: Managed By Operator: true Record Name: api.example.com Hosted Zone Id: Z1234567890ABC Dns Health: Active Message: DNS record resolves successfully
Valori di integrità del DNS:
-
Attivo: il record DNS viene risolto correttamente. Il tuo dominio personalizzato è pronto per l'uso.
-
In sospeso: i record DNS sono stati creati in Route 53 ma non sono ancora stati propagati. L'operatore ricontrolla ogni 30 secondi.
-
Errore: creazione o propagazione del record DNS non riuscita. Controlla il
Messagecampo per i dettagli.
Testa l'endpoint distribuito
Se hai configurato la gestione DNS di Route 53, richiama il tuo endpoint utilizzando il tuo dominio personalizzato dopo la visualizzazione dello stato del DNS. Active Se hai configurato solo un certificato personalizzato senza gestione DNS, utilizza il nome host ALB dall'ingresso (vedi). Usa un certificato personalizzato senza la gestione DNS di Route 53
curl -X POST https://api.example.com/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{"model": "my-llm", "messages": [{"role": "user", "content": "Hello"}]}'
Nota
Per richiamarlo tramite l'endpoint SageMaker AI, impostalo nelle tue o endpointName nelle tue specifiche. InferenceEndpointConfig sageMakerEndpoint.name JumpStartModel Se non endpointName è impostato, non viene creato alcun endpoint SageMaker AI ed è disponibile solo la chiamata diretta ALB.
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
Gestisci i tuoi certificati e record DNS personalizzati
Modifica del dominio o della zona ospitata
È possibile aggiornare domainName (incustomCertificateConfig) o hostedZoneId (indnsConfig) su una distribuzione in esecuzione. La modifica del nome di dominio attiva sia la riconvalida del certificato che il cutover DNS: il nuovo dominio deve essere valido nel certificato ACM (come SAN o wildcard match).
L'operatore esegue un cutover sicuro:
-
Crea nuovi record DNS nella nuova zona o per il nuovo dominio.
-
Verifica la risoluzione dei nuovi record.
-
Elimina i vecchi record DNS solo dopo che i nuovi record sono stati confermati attivi.
Durante la transizione, sia i vecchi che i nuovi domini vengono trasferiti nell'ALB. Il record di proprietà TXT ha un TTL di 300 secondi (5 minuti), quindi i client DNS possono memorizzare nella cache il vecchio record per un massimo di 5 minuti dopo la pulizia.
Pulizia
Quando si elimina InferenceEndpointConfig o si rimuove la dnsConfig sezione, l'operatore elimina automaticamente i record Route 53 A e TXT da esso creati. L'operatore elimina solo i record di sua proprietà (verificati dal record TXT di proprietà).
Risoluzione dei problemi
Utilizza questi passaggi di debug se il certificato personalizzato o la configurazione DNS non funzionano come previsto.
-
La distribuzione non riesce a causa di un errore di accesso ad Amazon S3. Verifica che il bucket Amazon S3 specificato in
tlsCertificateOutputS3Uriesista e si trovi nella stessa regione. Verifica che il ruolo di esecuzione dell'operatore disponga delle autorizzazionis3:PutObjectes3:PutObjectTaggingdelle autorizzazioni sul bucket. L'operatore convalida l'accesso in scrittura di Amazon S3 caricando un oggetto di test a zero byte durante la distribuzione iniziale. -
La convalida del certificato non riesce. Verifica che il certificato ACM sia nello
ISSUEDstato:aws acm describe-certificate --certificate-arn <arn> --region <region>. Verifica che nel certificatodomainNamecorrisponda a un dominio o a una SAN. Per i certificati wildcard (*.example.com), utilizza un sottodominio specifico come.api.example.com -
La creazione del record DNS non riesce. Verifica che l'ID della zona ospitata sia corretto e che il ruolo di esecuzione dell'operatore disponga delle autorizzazioni Route 53. Verifica che il dominio appartenga alla zona ospitata (ad esempio,
api.example.comrichiede una zona ospitata perexample.com). Se riscontri un conflitto di delega NS, utilizza invece l'ID della zona ospitata della zona delegata. Se si verifica un conflitto tra record, un altro endpoint o processo esterno è proprietario del record A in quel dominio. -
Il record DNS mostra In sospeso per un periodo di tempo prolungato. Verifica che i record NS della zona ospitata siano delegati correttamente dal registrar di domini principale. L'operatore utilizza il resolver DNS del pod (in genere CoreDNS), che può memorizzare i risultati nella cache. Dopo 10 minuti senza risoluzione, lo stato passa a.
Error -
Avvisi sulla scadenza del certificato. Rinnova o sostituisci il certificato in ACM. Per i ACM-issued certificati, ACM gestisce il rinnovo automaticamente. Per i certificati importati, importa un nuovo certificato. L'operatore rileva automaticamente il rinnovo e carica nuovamente il certificato pubblico su Amazon S3.