Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
SSH direct
Avis de sécurité
Le SSH direct ouvre un port TCP entrant sur les pods de votre cluster. Nous le recommandons Accès à distance via SSH via SSM car il ne nécessite aucun port entrant ouvert. Activez le SSH direct uniquement si l'accès à distance via SSM ne peut pas répondre à vos besoins (par exemple, aucun accès Internet ou un outil SSH standard n'est requis).
Avant d'activer, vérifiez les points suivants :
- Cluster-wide impact
-
directSSH.enabled: trueouvre le port configuré sur tous les espaces d'espace de travail à l'échelle du cluster, et pas uniquement sur les espaces de travail ou les utilisateurs sélectionnés. - Portée du groupe de sécurité
-
Limitez la règle entrante au bloc source de Inter-Domain routage sans classe (CIDR) le plus étroit possible. Ne jamais utiliser
0.0.0.0/0. Effectuez des audits régulièrement à l'aide de la AWS règle gérée Config restricted-ssh. - Cycle de vie des clés SSH
-
Vous gérez le cycle de vie des clés SSH. Les clés SSH sont des informations d'identification durables. Sans politique de rotation, une clé compromise garantit un accès permanent. Établissez une politique de rotation des clés SSH et alternez les clés périodiquement avant de la déployer dans votre équipe.
- Isolation du réseau VPC
-
Vous gérez l'isolation du réseau VPC. Lorsque vous activez Direct SSH, sshd démarre sur le pod, et vos groupes de sécurité VPC et contrôlent le routage qui peut y accéder. Assurez-vous que seules les sources réseau fiables (sous-réseau VPN, CIDR Direct Connect ou plage de réseaux d'entreprise) peuvent atteindre le port configuré. Direct SSH expose le port SSH sur l'adresse IP privée du pod dans votre VPC. Un client ne peut y accéder que s'il dispose d'une connectivité réseau à ce VPC, via le même VPC, le peering VPC, un VPN ou une connexion directe.
Conditions préalables
Le SSH direct nécessite ExternalDNS, une zone hébergée privée Amazon Route 53, une connectivité VPC depuis les machines clientes et (éventuellement) le AWS Load Balancer Controller. Pour la liste complète des prérequis, voirPrérequis pour le protocole SSH direct.
Si l'accès au navigateur Web est déjà activé sur votre cluster, tous les prérequis sont en place. Avant de continuer, vérifiez que votre ExternalDNS est configuré avec. --policy=sync Pour en savoir plus, consultez Configuration DNS externe.
Si l'accès au navigateur Web n'est pas encore configuré, consultez(Facultatif) Configuration des prérequis. Pour plus d'informations sur l'activation de l'accès au navigateur Web, consultezInstallation de l'extension EKS - Jupyter K8s avec WebUI.
Configurer Direct SSH pour votre cluster
Cluster-wide portée
directSSH.enabled: truedémarre sshd sur le port configuré dans tous les espaces d'espace de travail à l'échelle du cluster. SSH fournit le même accès que JupyterLab le terminal : même utilisateur (sagemaker-user), même système de fichiers.
Étape 1 : Ajouter une règle de groupe de sécurité pour SSH
L'accès au navigateur Web utilise le protocole HTTPS (443) via un équilibreur de charge d'application (ALB). Étant donné que Direct SSH se connecte directement aux adresses IP des pods sur le port configuré, vous devez ajouter une règle entrante de groupe de sécurité.
La configuration du VPC est de votre responsabilité
Vous devez configurer correctement votre VPC, y compris les groupes de sécurité, le routage et les contrôles d'accès réseau. Le SSH direct démarre sshd sur le pod. Votre VPC détermine qui peut y accéder. Limitez l'accès aux seuls CIDR qui peuvent accéder aux espaces de travail via SSH (par exemple, la plage de votre réseau d'entreprise, le sous-réseau du tunnel VPN ou le CIDR Direct Connect). N'utilisez pas 0.0.0.0/0.
Vérifiez le groupe de sécurité approprié avant de le modifier
HyperPod les groupes d'instances peuvent modifier la configuration du VPC au niveau du groupe viaOverrideVpcConfig, notamment, les groupes de sécurité. Le groupe de sécurité correct à modifier varie selon que le groupe d'instances de votre espace de travail est remplacé ou non. L'ajout de la règle au mauvais groupe de sécurité entraîne une Connection timed out erreur silencieuse.
Vérifiez si votre groupe d'instances d'espace de travail dispose d'une dérogation SG :
aws sagemaker describe-cluster \ --cluster-name <HYPERPOD_CLUSTER_NAME> \ --region <AWS_REGION> \ --query 'InstanceGroups[*].{Name:InstanceGroupName, OverrideSGs:OverrideVpcConfig.SecurityGroupIds}'
Option A : le groupe d'instances est remplacé par un groupe de sécurité
Si la valeur OverrideSGs n'est pas nulle, ajoutez la règle à ce groupe de sécurité :
SG_ID=<SG_ID_FROM_OVERRIDE_VPC_CONFIG> aws ec2 authorize-security-group-ingress \ --group-id $SG_ID \ --protocol tcp \ --port <SSH_PORT> \ --cidr <SOURCE_CIDR> \ --region <AWS_REGION>
Option B : le groupe d'instances n'a aucune dérogation de groupe de sécurité
Si la valeur OverrideSGs est nulle, utilisez le groupe de sécurité au niveau du cluster à partir de la configuration VPC du SageMaker HyperPod cluster :
SG_ID=$(aws sagemaker describe-cluster --cluster-name <HYPERPOD_CLUSTER_NAME> --region <AWS_REGION> \ --query 'VpcConfig.SecurityGroupIds[0]' --output text) aws ec2 authorize-security-group-ingress \ --group-id $SG_ID \ --protocol tcp \ --port <SSH_PORT> \ --cidr <SOURCE_CIDR> \ --region <AWS_REGION>
Le tableau suivant indique où trouver chaque valeur d'espace réservé.
| Placeholder | Où se le procurer |
|---|---|
<HYPERPOD_CLUSTER_NAME> |
Dans le SageMaker Console de gestion AWS, choisissez HyperPod Clusters. Ou courezaws sagemaker list-clusters. |
<SSH_PORT> |
Le port dans lequel vous avez configuré directSSH.port (la valeur par défaut est 22). Il doit correspondre à la règle entrante du groupe de sécurité. |
<AWS_REGION> |
La AWS région dans laquelle vos clusters HyperPod et EKS sont déployés. |
<SOURCE_CIDR> |
Le CIDR de votre réseau de confiance : sous-réseau du tunnel VPN, CIDR Direct Connect ou plage de réseaux d'entreprise (par exemple, 10.192.16). 0/24). Ne doit pas être 0.0.0. 0/0. |
Étape 2 : activer le SSH direct
Ajoutez directSSH à la configuration de votre module complémentaire : clusterWebUI
jupyter-k8s-aws-hyperpod: clusterWebUI: enabled: true domain: "<DOMAIN_NAME>" awsCertificateArn: "<ACM_CERTIFICATE_ARN>" traefik: shouldInstall: true directSSH: enabled: true port: <SSH_PORT> # default: 22 domain: "<ROUTE53_HOSTED_ZONE_DOMAIN>"
Le tableau suivant indique où trouver chaque valeur d'espace réservé.
| Placeholder | Où se le procurer |
|---|---|
<DOMAIN_NAME> |
Le domaine que vous avez configuré lorsque vous avez activé l'accès au navigateur Web (par exemple, spaces.example.com). Pour de plus amples informations, veuillez consulter Installation de l'extension EKS - Jupyter K8s avec WebUI. |
<ACM_CERTIFICATE_ARN> |
AWS Gestionnaire de certificats (ACM) Console de gestion AWS, choisissez Certificats, puis sélectionnez l'ARN de votre certificat générique |
<ROUTE53_HOSTED_ZONE_DOMAIN> |
Route 53 Console de gestion AWS, choisissez Zones hébergées, puis sélectionnez le nom de zone hébergée privée utilisé pour ExternalDNS (par exemple, workspaces.internal) |
<SSH_PORT> |
Le port sshd écoute les modules internes de l'espace de travail. Par défaut 22. Utilisez un port non privilégié (par exemple, 2222) si votre groupe de sécurité ou votre politique d'entreprise restreint le port 22. La règle SG Inbound doit correspondre à cette valeur. |
DirectSSH et RemoteAccess s'excluent mutuellement
directSSHet remoteAccess s'excluent mutuellement. L'activation des deux causes helm upgrade échoue avec : « DirectSSH et RemoteAccess s'excluent mutuellement. Activez une seule option. » Désactivez remoteAccess avant d'activerdirectSSH.
Mettez à jour l'addon :
aws eks update-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name amazon-sagemaker-spaces \ --configuration-values file://addon-config.yaml \ --resolve-conflicts OVERWRITE \ --region <AWS_REGION>
Pour désactiver le SSH direct, consultezRévocation de l'accès SSH direct.
Étape 3 : Vérifiez que Direct SSH est actif
# Check addon status aws eks describe-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name amazon-sagemaker-spaces \ --region <AWS_REGION> # Check headless services created for workspaces kubectl get svc -l app.kubernetes.io/component=direct-ssh # Verify DNS record resolves (from within VPC) dig <workspace-name>.<namespace>.<ROUTE53_HOSTED_ZONE_DOMAIN>
Connectez-vous à votre espace de travail via Direct SSH
Suivez les procédures suivantes pour vous connecter à votre espace de travail à l'aide de Direct SSH, gérer vos clés SSH et résoudre les problèmes de connexion.
Comment fonctionne l'authentification SSH
Le SSH direct utilise l'authentification par clé publique standard. Chaque utilisateur génère sa propre paire de clés SSH et ajoute la clé publique à son espace de travail. Les clés privées ne quittent jamais la machine de l'utilisateur.
Voici quelques informations essentielles concernant l'accès SSH :
-
SSH donne le même accès que JupyterLab le terminal : même utilisateur (
sagemaker-user), même système de fichiers, mêmes outils. -
Les clés sont attribuées par espace de travail. La saisie d'une clé dans un espace de travail n'autorise pas l'accès aux autres espaces de travail.
-
Le script de démarrage d' SageMaker AI Spaces crée automatiquement le
.ssh/répertoire avec les autorisations appropriées. -
Les clés persistent lors du redémarrage de l'espace de travail (stockées sur PVC) et sont supprimées lors de la suppression de l'espace de travail.
Limitation actuelle
Le nom d'utilisateur SSH est toujours sagemaker-user valide, peu importe qui se connecte. Vous ne pouvez pas utiliser de nom d'utilisateur personnel. Toutes les sessions sont exécutées par le même utilisateur de l'espace de travail. Per-user les instructions d'identification dans le shell et les journaux d'audit ne sont pas disponibles dans la version actuelle.
Étape 1 : Générez une clé SSH sur votre machine cliente
Exécutez cette commande une fois pour créer votre paire de clés :
ssh-keygen -t ed25519 -f ~/.ssh/my-workspace-key
Cela crée :
-
~/.ssh/my-workspace-key— clé privée (garder secrète, ne jamais partager) -
~/.ssh/my-workspace-key.pub— clé publique (à ajouter à votre espace de travail)
Étape 2 : ajoutez votre clé publique à votre espace de travail
Utilisez l'une des méthodes suivantes pour ajouter votre clé publique. Il n'est pas nécessaire de faire les deux.
Ajoutez votre clé via l'accès au navigateur Web
-
Ouvrez votre espace de travail dans le navigateur (voirAccès au navigateur Web).
-
Ouvrez un terminal . Dans JupyterLab, choisissez Fichier, Nouveau, Terminal. Dans l'éditeur de code, choisissez Terminal, Nouveau terminal.
-
Copiez votre clé publique depuis votre machine locale :
cat ~/.ssh/my-workspace-key.pub -
Collez dans le terminal de l'espace de travail :
echo "ssh-ed25519 AAAA...your-key... user@machine" >> ~/.ssh/authorized_keys
Ajoutez votre clé via kubectl
POD=$(kubectl get pods -n <namespace> -l workspace.jupyter.org/workspace-name=<space-name> \ -o jsonpath='{.items[0].metadata.name}') cat ~/.ssh/my-workspace-key.pub | kubectl exec -n <namespace> -i $POD -c workspace -- \ bash -c "cat >> /home/sagemaker-user/.ssh/authorized_keys"
Étape 3 : Connectez-vous à votre espace de travail via SSH
ssh -p <SSH_PORT> -i ~/.ssh/my-workspace-key sagemaker-user@<space-name>.<namespace>.<domain>
Port SSH
Utilisez le port SSH que votre administrateur a configuré pour Direct SSH. Si votre administrateur a conservé le port par défaut (22), vous pouvez omettre -p cette option. S'ils ont configuré un port autre que celui par défaut (par exemple, 2222), vous devez l'inclure, -p <SSH_PORT> sinon la connexion échoue. Connection refused Contactez votre administrateur si vous ne savez pas quel port utiliser.
Exemple :
ssh -p 2222 -i ~/.ssh/my-workspace-key sagemaker-user@my-space.default.spaces.example.com
Étape 4 : configurer SSH pour un accès facile
Cette étape facultative simplifie les connexions futures. Ajoutez ce qui suit à ~/.ssh/config :
Host my-space HostName <space-name>.<namespace>.<domain> Port <SSH_PORT> User sagemaker-user IdentityFile ~/.ssh/my-workspace-key ServerAliveInterval 15 ServerAliveCountMax 3
Définissez Port le port configuré par votre administrateur. Vous pouvez omettre cette ligne si Direct SSH utilise le port par défaut (22). Connectez-vous ensuite à : ssh my-space
Étape 5 : connecter un IDE distant
Une fois que Direct SSH fonctionne depuis votre terminal (étape 3), tout IDE Remote-SSH compatible se connecte en utilisant la même ~/.ssh/config entrée. Vous n'avez pas besoin AWS de configuration supplémentaire pour cette connexion.
Installez l' Remote-SSH extension
| IDE | Extension |
|---|---|
| VS Code | Extensions, recherchez « Remote - SSH », choisissez Installer (par Microsoft) |
| Kiro | Extensions, recherchez « Remote - SSH », choisissez Installer |
| Curseur | Extensions, recherchez « Remote - SSH », choisissez Installer |
Connectez-vous depuis l'IDE
-
Ouvrez la palette de commandes, puis choisissez « Remote-SSH : Se connecter à l'hôte... »
-
Sélectionnez votre espace de travail dans la liste (utilisations
~/.ssh/configde l'étape 4). -
L'IDE installe son composant serveur sur l'espace de travail (une seule fois, environ 30 secondes).
-
Une fenêtre distante s'ouvre avec toutes les fonctionnalités de l'éditeur IntelliSense, notamment le terminal et l'explorateur de fichiers.
Ouvrez les fichiers de votre espace de travail dans VS Code
Dans VS Code, une fois la connexion établie, choisissez Fichier, Ouvrir un dossier, /home/sagemaker-user pour ouvrir directement les fichiers de votre espace de travail.
Gestion des clés et révocation
Vous gérez vos clés SSH. Les clés SSH sont des informations d'identification durables qui n'expirent pas automatiquement. Une clé permet d'accéder authorized_keys à votre espace de travail jusqu'à ce que vous le supprimiez explicitement.
Pour faire pivoter votre clé
Nous vous recommandons de changer régulièrement vos clés.
-
Générez une nouvelle paire de clés sur votre machine cliente :
ssh-keygen -t ed25519 -f ~/.ssh/my-workspace-key-new -
Ajoutez la nouvelle clé publique à votre espace de travail (étape 2). Les anciennes et les nouvelles clés fonctionnent simultanément.
-
Vérifiez que la nouvelle clé fonctionne :
ssh -p <SSH_PORT> -i ~/.ssh/my-workspace-key-new sagemaker-user@<hostname> -
Supprimez l'ancienne clé du terminal
authorized_keysde votre espace de travail :# List current keys with line numbers cat -n ~/.ssh/authorized_keys # Remove a specific line (for example, line 1) sed -i '1d' ~/.ssh/authorized_keys
Si votre clé privée est compromise
Agissez immédiatement. Une clé compromise permet d'accéder à l'intégralité de l'espace de travail jusqu'à ce que vous la supprimiezauthorized_keys.
-
Ouvrez votre espace de travail via un navigateur Web (JupyterLab ou un éditeur de code). Pour obtenir des instructions, veuillez consulter Accès au navigateur Web.
-
Supprimez la clé compromise de
authorized_keys:# View all authorized keys cat ~/.ssh/authorized_keys # Option A: Edit directly nano ~/.ssh/authorized_keys # Option B: Remove all keys and re-add only trusted ones > ~/.ssh/authorized_keys echo "ssh-ed25519 AAAA...new-trusted-key..." >> ~/.ssh/authorized_keys -
Vérifiez que la clé compromise ne fonctionne plus en essayant de vous y connecter. Tu devrais recevoir
Permission denied (publickey). -
Si vous ne pouvez pas accéder à l'espace de travail via un navigateur Web, contactez l'administrateur de votre cluster pour qu'il exécute l'opération dans le module et efface
authorized_keysdirectement.
Bonnes pratiques
| Pratique | Pourquoi |
|---|---|
| Utiliser les clés ed25519 | Plus court, plus rapide et plus sécurisé que RSA |
| Utilisez une phrase secrète sur votre clé privée | Protège contre le vol de clés. Même en cas de vol, la clé ne peut pas être utilisée sans le mot de passe. |
| Une clé par appareil | Il est plus facile de révoquer l'accès d'un seul appareil sans affecter les autres |
| Ne partagez jamais de clés privées | Chaque utilisateur et chaque appareil doivent disposer de leur propre paire de clés |
Réviser authorized_keys périodiquement |
Supprimer les clés des appareils que vous n'utilisez plus |
Révocation de l'accès SSH direct
Pour éviter de laisser une règle de groupe de sécurité ouverte après avoir désactivé Direct SSH, effectuez les trois étapes dans l'ordre. Ne sautez pas l'étape 2.
Avertissez vos utilisateurs avant de révoquer l'accès
Avertissez vos utilisateurs avant de révoquer l'accès. ExternalDNS supprime les enregistrements DNS dans les 30 secondes environ suivant l'étape 3, qui bloque les nouvelles connexions.
Étape 1 : Désactiver dans le graphique Helm
Supprimez complètement directSSH cette section du fichier de configuration de votre module complémentaire. Par défaut, Helm est directSSH.enabled activé false lorsque la clé est absente :
jupyter-k8s-aws-hyperpod: clusterWebUI: enabled: true domain: "<DOMAIN_NAME>" ... # directSSH section removed
Vous pouvez également définir explicitement enabled: false :
directSSH: enabled: false
Étape 2 : supprimer la règle entrante du groupe de sécurité
# Find the rule ID aws ec2 describe-security-group-rules \ --filters Name=group-id,Values=<SG_ID> \ --query 'SecurityGroupRules[?IpProtocol==`tcp` && FromPort==`<SSH_PORT>`].[SecurityGroupRuleId,CidrIpv4]' \ --output table \ --region <AWS_REGION> # Remove the rule aws ec2 revoke-security-group-ingress \ --group-id <SG_ID> \ --security-group-rule-ids <RULE_ID> \ --region <AWS_REGION>
Étape 3 : Appliquer au cluster
aws eks update-addon \ --cluster-name <CLUSTER_NAME> \ --addon-name amazon-sagemaker-spaces \ --configuration-values file://addon-config.yaml \ --resolve-conflicts OVERWRITE \ --region <AWS_REGION>
L'exécution de cette commande supprime les services headless pour tous les espaces de travail. ExternalDNS supprime ensuite les enregistrements de la Route 53 A dans un délai d'environ 30 secondes. Une fois qu'ExternalDNS a supprimé les enregistrements, les nouvelles connexions SSH ne peuvent plus résoudre le nom d'hôte de l'espace de travail.
Que se passe-t-il après la révocation
| Composant | État après révocation |
|---|---|
| Enregistrements DNS | ExternalDNS les supprime en 30 secondes environ. Les nouvelles connexions ne peuvent pas résoudre le nom d'hôte de l'espace de travail. |
| Règle entrante SG | Fermé après l'étape 2. Aucun chemin réseau n'atteint le port. |
| Nouvelles connexions SSH | Bloqué. Le nom d'hôte ne se résout plus et la règle SG ferme le port. |
| Données de l'espace de travail (PVC) | Non affecté. Le PVC conserve vos fichiers, les authorized_keys et la clé d'hôte. |
Résolution des problèmes
| Symptôme | Cause | Corriger |
|---|---|---|
NXDOMAIN |
Le DNS ne se résout pas | Vérifiez que la zone hébergée existe, qu'un VPC est associé, que le DNS externe est en cours d'exécution |
Connection timed out |
Blocage du SG : règle ajoutée au mauvais SG ou totalement absente | Vérifiez OverrideVpcConfig le groupe d'instances (étape d'administration 1). Vérifiez que la règle entrante TCP couvre votre CIDR source. |
Connection refused |
sshd ne fonctionne pas | Vérifiez que l'espace est en cours d'exécution et directSSH qu'il est activé |
Permission denied (publickey) |
La clé n'est pas entrée authorized_keys |
Ajouter une clé publique via l'accès au navigateur Web ou via kubectl (étape 2 pour l'utilisateur final) |
Host key changedavertissement |
L'espace a été recréé (nouveau pod, nouvelle clé d'hôte) | Sur votre machine cliente : ssh-keygen -R <hostname> puis reconnectez-vous |
Stale DNS records after space deletion |
ExternalDNS s'exécutant avec --policy=upsert-only |
Mettez à jour le déploiement ExternalDNS --policy=sync et ajoutez-le. --txt-owner-id=<cluster-name> Nettoyez manuellement les enregistrements périmés existants : aws route53 list-resource-record-sets --hosted-zone-id <ZONE_ID> |
| IDE : « Impossible d'établir la connexion » | sshd n'est pas encore prêt | Attendez 60 à 90 secondes après la création de l'espace de travail, puis réessayez |
| IDE : se bloque lors de « Installation de VS Code Server » | L'espace de travail n'a pas accès à Internet | Votre espace de travail télécharge le binaire du serveur VS Code depuis un hôte externe lors de la première connexion. Contactez votre administrateur si l'espace de travail est isolé. |
IDE : Permission denied |
IdentityFile inadéquation des chemins | Vérifiez d'abord que le terminal SSH fonctionne, puis IdentityFile enregistrez-vous ~/.ssh/config |
| IDE : la connexion est interrompue après une période d'inactivité | Aucun keepalive n'est configuré | Ajouter ServerAliveInterval 15 et ServerAliveCountMax 3 à ~/.ssh/config |
(Facultatif) Configuration des prérequis
Utilisez cette section uniquement si l'accès au navigateur Web n'est pas déjà activé, ou pour vérifier ou mettre à jour votre configuration ExternalDNS.
Installation à partir de zéro
Si l'accès au navigateur Web n'est pas encore configuré, vous devez disposer des éléments suivants avant d'activer Direct SSH :
-
Zone hébergée Route 53 : domaine ou sous-domaine dont vous êtes le propriétaire et enregistré dans Route 53
-
DNS externe : déployé via des modules complémentaires EKS, avec un rôle IAM doté d'autorisations Route 53
-
AWS Load Balancer Controller : obligatoire si vous utilisez un accès par navigateur Web (entrée ALB). Pour les notes HyperPod-specific d'installation, voirAWS Contrôleur d'équilibrage de charge : exigence HyperPod vPCID.
-
Connectivité VPC : VPN ou connexion directe des machines clientes au VPC
Pour les dépendances supplémentaires et les étapes de configuration de l'accès au navigateur Web, consultezInstallez SageMaker AI Spaces Add-on.
AWS Contrôleur d'équilibrage de charge : exigence HyperPod vPCID
La documentation d'installation standard du AWS Load Balancer Controller ne mentionne pas le vpcId paramètre. Sur les HyperPod clusters, l'omission vpcId entraîne l'échec de l'installation. Vous devez le fournir explicitement.
Obtenez votre identifiant VPC :
aws sagemaker describe-cluster \ --cluster-name <HYPERPOD_CLUSTER_NAME> \ --region <AWS_REGION> \ --query 'VpcConfig.VpcId' \ --output text
Installation avec les HyperPod paramètres requis :
helm install aws-load-balancer-controller eks/aws-load-balancer-controller \ -n kube-system \ --set clusterName=<EKS_CLUSTER_NAME> \ --set serviceAccount.create=false \ --set serviceAccount.name=aws-load-balancer-controller \ --set enableServiceMutatorWebhook=false \ --set vpcId=<VPC_ID>
| Paramètre | Pourquoi obligatoire sur HyperPod |
|---|---|
vpcId |
HyperPod Le VPC n'est pas détectable automatiquement par le contrôleur. L'installation échoue sans elle. |
enableServiceMutatorWebhook=false |
Le webhook mutant entre en conflit avec HyperPod la configuration du service |
serviceAccount.create=false |
Le compte de service doit être pré-créé avec l'annotation IRSA ou Pod Identity correcte avant l'installation |
Créez le compte de service (aws-load-balancer-controller) avec l'annotation de rôle IAM appropriée avant d'exécuter cette commande. Pour plus d'informations sur la politique IAM et les étapes de création de comptes de service, consultez la section Configuration de l'Amazon EKS Load Balancer Controller IRSA dans le guide de l'utilisateur Amazon EKS.
Configuration DNS externe
ExternalDNS synchronise les services Kubernetes avec les fournisseurs DNS. Configurez ExternalDNS avec les paramètres suivants lorsque vous l'utilisez avec Amazon Route 53 dans un environnement de production.
ExternalDNS nécessite la politique de synchronisation
Vous devez configurer ExternalDNS avec. --policy=sync
Par défaut, ExternalDNS utilise. --policy=upsert-only Cela crée et met à jour des enregistrements DNS mais ne les supprime jamais. Lorsque vous supprimez un espace de travail, les enregistrements A et TXT d'Amazon Route 53 restent obsolètes.
--policy=upsert-onlyUtilisez-le uniquement pour les tests et remplacez-le par --policy=sync pour la production. Vous devez également définir le --txt-owner-id drapeau, qui indique à ExternalDNS quels enregistrements il possède et quels enregistrements supprimer lors du nettoyage.
Configurez votre déploiement ExternalDNS avec les arguments suivants :
--provider=aws --source=service # watches Services (required for headless Services) --domain-filter=<ROUTE53_HOSTED_ZONE> # restricts ExternalDNS to your hosted zone only --policy=sync # enables deletion of stale records on space deletion --txt-owner-id=<CLUSTER_NAME> # identifies which records this ExternalDNS instance owns
Dans les arguments précédents, remplacez les valeurs suivantes :
-
<ROUTE53_HOSTED_ZONE>— votre domaine de zone hébergée privée Amazon Route 53 (par exemple,workspaces.internal) -
<CLUSTER_NAME>— le nom de votre cluster EKS (par exemple,my-hyperpod-cluster)
Pour vérifier votre politique ExternalDNS actuelle, exécutez la commande suivante :
kubectl get deployment -n kube-system external-dns \ -o jsonpath='{.spec.template.spec.containers[0].args}' | tr ',' '\n' | grep -E 'policy|owner|source|domain'