Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
SSH langsung
Pemberitahuan keamanan
Direct SSH membuka port TCP inbound pada pod cluster Anda. Kami merekomendasikan Akses jarak jauh menggunakan SSH melalui SSM karena tidak memerlukan port masuk terbuka. Hanya aktifkan SSH Langsung jika akses jarak jauh melalui SSM tidak dapat memenuhi kebutuhan Anda (misalnya, tidak ada akses internet, atau perkakas SSH standar yang diperlukan).
Sebelum mengaktifkan, tinjau hal-hal berikut:
- Cluster-wide dampak
-
directSSH.enabled: truemembuka port yang dikonfigurasi pada semua pod ruang kerja di seluruh cluster, bukan hanya ruang kerja atau pengguna yang dipilih. - Ruang lingkup kelompok keamanan
-
Batasi aturan masuk ke blok Classless Inter-Domain Routing (CIDR) sumber yang paling sempit. Jangan pernah gunakan
0.0.0.0/0. Audit secara teratur menggunakan aturan AWS terkelola Config restricted-ssh. - Siklus hidup kunci SSH
-
Anda mengelola siklus hidup kunci SSH. Kunci SSH adalah kredensil berumur panjang. Tanpa kebijakan rotasi, kunci yang dikompromikan memberikan akses terus-menerus. Buat kebijakan rotasi kunci SSH, dan putar kunci secara berkala, sebelum diluncurkan ke tim Anda.
- Isolasi jaringan VPC
-
Anda mengelola isolasi jaringan VPC. Saat Anda mengaktifkan Direct SSH, sshd dimulai di pod, dan grup keamanan VPC Anda serta kontrol perutean yang dapat mencapainya. Pastikan hanya sumber jaringan tepercaya (subnet VPN, Direct Connect CIDR, atau jangkauan jaringan perusahaan) yang dapat mencapai port yang dikonfigurasi. Direct SSH mengekspos port SSH pada alamat IP pribadi pod di dalam VPC Anda. Klien dapat mencapainya hanya jika memiliki konektivitas jaringan ke VPC itu, melalui VPC yang sama, VPC peering, VPN, atau Direct Connect.
Prasyarat
Direct SSH memerlukan ExternalDNS, Amazon Route 53 Private Hosted Zone, konektivitas VPC dari mesin klien, dan (opsional) Load Balancer Controller. AWS Untuk daftar lengkap prasyarat, lihat. Prasyarat untuk SSH Langsung
Jika akses browser web sudah diaktifkan di cluster Anda, semua prasyarat sudah ada. Sebelum Anda melanjutkan, verifikasi ExternalDNS Anda dikonfigurasi dengan. --policy=sync Lihat perinciannya di Konfigurasi ExternalDNS.
Jika akses browser web belum dikonfigurasi, lihat(Opsional) Menyiapkan prasyarat. Untuk informasi selengkapnya tentang mengaktifkan akses browser web, lihatInstalasi EKS Addon - Jupyter K8s dengan WebUI.
Konfigurasikan Direct SSH untuk klaster Anda
Cluster-wide ruang lingkup
directSSH.enabled: truememulai sshd pada port yang dikonfigurasi di semua pod ruang kerja di seluruh cluster. SSH menyediakan akses yang sama dengan JupyterLab terminal: user yang sama (sagemaker-user), sistem file yang sama.
Langkah 1: Tambahkan aturan grup keamanan untuk SSH
Akses browser web menggunakan HTTPS (443) melalui Application Load Balancer (ALB). Karena Direct SSH terhubung langsung ke IP pod pada port yang dikonfigurasi, Anda perlu menambahkan aturan masuk grup keamanan.
Konfigurasi VPC adalah tanggung jawab Anda
Anda harus mengonfigurasi VPC dengan benar, termasuk grup keamanan, perutean, dan kontrol akses jaringan. SSH langsung memulai sshd pada pod. VPC Anda menentukan siapa yang bisa mencapainya. Batasi akses hanya ke CIDR yang dapat SSH ke ruang kerja (misalnya, jangkauan jaringan perusahaan Anda, subnet terowongan VPN, atau Direct Connect CIDR). Jangan gunakan 0.0.0.0/0.
Verifikasi grup keamanan yang benar sebelum memodifikasi
HyperPod grup instance dapat mengganti konfigurasi VPC di tingkat grup, termasuk grup OverrideVpcConfig keamanan. Grup keamanan yang benar untuk dimodifikasi bergantung pada apakah grup instans ruang kerja Anda memiliki penggantian. Menambahkan aturan ke grup keamanan yang salah menghasilkan Connection timed out kesalahan diam.
Periksa apakah grup instans ruang kerja Anda memiliki penggantian SG:
aws sagemaker describe-cluster \ --cluster-name <HYPERPOD_CLUSTER_NAME> \ --region <AWS_REGION> \ --query 'InstanceGroups[*].{Name:InstanceGroupName, OverrideSGs:OverrideVpcConfig.SecurityGroupIds}'
Opsi A: Grup instance memiliki penggantian grup keamanan
Jika OverrideSGs non-null, tambahkan aturan ke Grup Keamanan tersebut:
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>
Opsi B: Grup instance tidak memiliki penggantian grup keamanan
Jika OverrideSGs nol, gunakan Grup Keamanan tingkat cluster dari konfigurasi VPC cluster SageMaker HyperPod :
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>
Tabel berikut menunjukkan di mana untuk menemukan setiap nilai placeholder.
| Placeholder | Dimana mendapatkannya |
|---|---|
<HYPERPOD_CLUSTER_NAME> |
Di dalam SageMaker Konsol Manajemen AWS, pilih HyperPod Cluster. Atau lariaws sagemaker list-clusters. |
<SSH_PORT> |
Port yang Anda konfigurasikan directSSH.port (defaultnya adalah 22). Itu harus sesuai dengan aturan masuk grup keamanan. |
<AWS_REGION> |
AWS Wilayah tempat cluster Anda HyperPod dan EKS dikerahkan. |
<SOURCE_CIDR> |
CIDR jaringan tepercaya Anda: VPN tunnel subnet, Direct Connect CIDR, atau jangkauan jaringan perusahaan (misalnya, 10.192.16. 0/24). Tidak boleh 0.0.0. 0/0. |
Langkah 2: Aktifkan SSH Langsung
Tambahkan directSSH ke konfigurasi addon Anda di sampingclusterWebUI:
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>"
Tabel berikut menunjukkan di mana untuk menemukan setiap nilai placeholder.
| Placeholder | Dimana mendapatkannya |
|---|---|
<DOMAIN_NAME> |
Domain yang Anda konfigurasikan saat mengaktifkan akses browser web (misalnya, spaces.example.com). Untuk informasi selengkapnya, lihat Instalasi EKS Addon - Jupyter K8s dengan WebUI. |
<ACM_CERTIFICATE_ARN> |
AWS Certificate Manager (ACM) Konsol Manajemen AWS, pilih Certificates, lalu pilih sertifikat wildcard ARN |
<ROUTE53_HOSTED_ZONE_DOMAIN> |
Route 53 Konsol Manajemen AWS, pilih Zona yang Dihosting, lalu pilih nama Private Hosted Zone yang digunakan untuk ExternalDNS (misalnya, workspaces.internal) |
<SSH_PORT> |
Port sshd mendengarkan di dalam pod ruang kerja. Default 22. Gunakan port yang tidak memiliki hak istimewa (misalnya, 2222) jika grup keamanan atau kebijakan perusahaan Anda membatasi port 22. Aturan masuk SG harus cocok dengan nilai ini. |
DirectSSH dan RemoteAccess saling eksklusif
directSSHdan remoteAccess saling eksklusif. Mengaktifkan kedua penyebab helm upgrade gagal dengan: “DirectSSH dan RemoteAccess saling eksklusif. Aktifkan hanya satu.” Nonaktifkan remoteAccess sebelum mengaktifkandirectSSH.
Perbarui 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>
Untuk menonaktifkan Direct SSH, lihatMencabut akses SSH Langsung.
Langkah 3: Verifikasi Direct SSH aktif
# 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>
Connect ke ruang kerja Anda menggunakan Direct SSH
Gunakan prosedur berikut untuk terhubung ke ruang kerja Anda menggunakan Direct SSH, mengelola kunci SSH Anda, dan memecahkan masalah koneksi.
Cara kerja otentikasi SSH
Direct SSH menggunakan otentikasi kunci publik standar. Setiap pengguna menghasilkan key pair SSH mereka sendiri dan menambahkan kunci publik ke ruang kerja mereka. Kunci pribadi tidak pernah meninggalkan mesin pengguna.
Berikut ini adalah fakta-fakta kunci tentang akses SSH:
-
SSH memberikan akses yang sama dengan JupyterLab terminal: user yang sama (
sagemaker-user), sistem file yang sama, alat yang sama. -
Kunci adalah per-ruang kerja. Kunci dalam satu ruang kerja tidak memberikan akses ke ruang kerja lain.
-
Skrip startup SageMaker AI Spaces secara otomatis membuat
.ssh/direktori dengan izin yang benar. -
Kunci tetap ada di seluruh ruang kerja dimulai ulang (disimpan di PVC) dan dihapus saat ruang kerja dihapus.
Batasan saat ini
Nama pengguna SSH selalu sagemaker-user terlepas dari siapa yang terhubung. Anda tidak dapat menggunakan nama pengguna pribadi. Semua sesi berjalan sebagai pengguna ruang kerja yang sama. Per-user identitas dalam prompt shell dan log audit tidak tersedia dalam rilis saat ini.
Langkah 1: Buat kunci SSH di mesin klien Anda
Jalankan perintah ini sekali untuk membuat key pair Anda:
ssh-keygen -t ed25519 -f ~/.ssh/my-workspace-key
Ini menciptakan:
-
~/.ssh/my-workspace-key— kunci pribadi (merahasiakan, tidak pernah berbagi) -
~/.ssh/my-workspace-key.pub— kunci publik (tambahkan ke ruang kerja Anda)
Langkah 2: Tambahkan kunci publik Anda ke ruang kerja Anda
Gunakan salah satu metode berikut untuk menambahkan kunci publik Anda. Anda tidak perlu melakukan keduanya.
Tambahkan kunci Anda melalui akses browser web
-
Buka ruang kerja Anda di browser (lihatAkses browser web).
-
Buka terminal. Di JupyterLab, pilih File, Baru, Terminal. Di Editor Kode, pilih Terminal, Terminal Baru.
-
Salin kunci publik Anda dari mesin lokal Anda:
cat ~/.ssh/my-workspace-key.pub -
Tempel ke terminal ruang kerja:
echo "ssh-ed25519 AAAA...your-key... user@machine" >> ~/.ssh/authorized_keys
Tambahkan kunci Anda melalui 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"
Langkah 3: Connect ke ruang kerja Anda menggunakan SSH
ssh -p <SSH_PORT> -i ~/.ssh/my-workspace-key sagemaker-user@<space-name>.<namespace>.<domain>
Pelabuhan SSH
Gunakan port SSH yang dikonfigurasi administrator Anda untuk Direct SSH. Jika administrator Anda menyimpan port default (22), Anda dapat menghilangkan -p opsi. Jika mereka mengkonfigurasi port non-default (misalnya, 2222), Anda harus menyertakan -p <SSH_PORT> atau koneksi gagal. Connection refused Hubungi administrator Anda jika Anda tidak yakin port mana yang akan digunakan.
Contoh:
ssh -p 2222 -i ~/.ssh/my-workspace-key sagemaker-user@my-space.default.spaces.example.com
Langkah 4: Konfigurasikan SSH untuk akses mudah
Langkah opsional ini menyederhanakan koneksi future. Tambahkan berikut ini ke ~/.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
Setel Port ke port yang dikonfigurasi administrator Anda. Anda dapat menghilangkan baris ini jika Direct SSH menggunakan port default (22). Kemudian terhubung dengan: ssh my-space
Langkah 5: Hubungkan IDE jarak jauh
Setelah Direct SSH bekerja dari terminal Anda (Langkah 3), setiap IDE yang Remote-SSH mampu terhubung menggunakan ~/.ssh/config entri yang sama. Anda tidak memerlukan AWS konfigurasi tambahan untuk koneksi ini.
Instal Remote-SSH ekstensi
| IDE | Ekstensi |
|---|---|
| VS Code | Ekstensi, cari “Remote - SSH”, pilih Instal (oleh Microsoft) |
| Kiro | Ekstensi, cari “Remote - SSH”, pilih Instal |
| Kursor | Ekstensi, cari “Remote - SSH”, pilih Instal |
Connect dari IDE
-
Buka Command Palette, lalu pilih "Remote-SSH: Connect to Host...”
-
Pilih ruang kerja Anda dari daftar (gunakan
~/.ssh/configdari Langkah 4). -
IDE menginstal komponen servernya di ruang kerja (satu kali, sekitar 30 detik).
-
Jendela jarak jauh terbuka dengan fitur editor lengkap, termasuk IntelliSense, terminal, dan file explorer.
Buka file ruang kerja Anda di VS Code
Di VS Code, setelah menghubungkan, pilih File, Buka Folder, /home/sagemaker-user untuk membuka file ruang kerja Anda secara langsung.
Manajemen kunci dan pencabutan
Anda mengelola kunci SSH Anda. Kunci SSH adalah kredensil berumur panjang tanpa kedaluwarsa otomatis. Kunci dalam authorized_keys memberikan akses ke ruang kerja Anda sampai Anda menghapusnya secara eksplisit.
Untuk memutar kunci Anda
Kami merekomendasikan memutar kunci Anda secara berkala.
-
Buat key pair baru di mesin klien Anda:
ssh-keygen -t ed25519 -f ~/.ssh/my-workspace-key-new -
Tambahkan kunci publik baru ke ruang kerja Anda (Langkah 2). Kunci lama dan baru bekerja secara bersamaan.
-
Verifikasi kunci baru berfungsi:
ssh -p <SSH_PORT> -i ~/.ssh/my-workspace-key-new sagemaker-user@<hostname> -
Hapus kunci lama dari
authorized_keysterminal ruang kerja Anda:# 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
Jika kunci pribadi Anda dikompromikan
Bertindak segera. Kunci yang dikompromikan memberikan akses ruang kerja penuh hingga Anda menghapusnya. authorized_keys
-
Buka ruang kerja Anda melalui akses browser web (JupyterLab atau Editor Kode). Untuk petunjuk, lihat Akses browser web.
-
Hapus kunci yang disusupi dari
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 -
Verifikasi kunci yang disusupi tidak lagi berfungsi dengan mencoba terhubung dengannya. Anda harus menerima
Permission denied (publickey). -
Jika Anda tidak dapat mengakses ruang kerja melalui akses browser web, hubungi administrator klaster Anda untuk mengeksekusi ke pod dan mengosongkan
authorized_keyssecara langsung.
Praktik terbaik
| Berlatih | Mengapa |
|---|---|
| Gunakan tombol ed25519 | Lebih pendek, lebih cepat, lebih aman dari RSA |
| Gunakan frasa sandi pada kunci pribadi Anda | Melindungi dari pencurian kunci. Bahkan jika dicuri, kunci tidak dapat digunakan tanpa frasa sandi. |
| Satu kunci per perangkat | Lebih mudah untuk mencabut akses satu perangkat tanpa mempengaruhi orang lain |
| Jangan pernah berbagi kunci pribadi | Setiap pengguna dan perangkat harus memiliki key pair sendiri |
Tinjau authorized_keys secara berkala |
Hapus kunci untuk perangkat yang tidak lagi Anda gunakan |
Mencabut akses SSH Langsung
Untuk menghindari meninggalkan aturan grup keamanan terbuka setelah Anda menonaktifkan Direct SSH, selesaikan ketiga langkah secara berurutan. Jangan lewati Langkah 2.
Beri tahu pengguna Anda sebelum mencabut akses
Beri tahu pengguna Anda sebelum Anda mencabut akses. ExternalDNS menghapus catatan DNS dalam waktu sekitar 30 detik dari Langkah 3, yang memblokir koneksi baru.
Langkah 1: Nonaktifkan di bagan Helm
Hapus directSSH bagian dari file konfigurasi addon Anda sepenuhnya. Helm default false ketika kunci directSSH.enabled tidak ada:
jupyter-k8s-aws-hyperpod: clusterWebUI: enabled: true domain: "<DOMAIN_NAME>" ... # directSSH section removed
Atau, atur secara eksplisit: enabled: false
directSSH: enabled: false
Langkah 2: Hapus aturan masuk grup keamanan
# 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>
Langkah 3: Terapkan ke 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>
Menjalankan perintah ini menghapus Layanan tanpa kepala untuk semua ruang kerja. ExternalDNS kemudian menghapus catatan Route 53 A dalam waktu sekitar 30 detik. Setelah ExternalDNS menghapus catatan, koneksi SSH baru tidak dapat lagi menyelesaikan nama host ruang kerja.
Apa yang terjadi setelah pencabutan
| Komponen | Negara setelah pencabutan |
|---|---|
| Catatan DNS | ExternalDNS menghapusnya dalam waktu sekitar 30 detik. Koneksi baru tidak dapat menyelesaikan nama host ruang kerja. |
| Aturan masuk SG | Ditutup setelah Langkah 2. Tidak ada jalur jaringan yang mencapai port. |
| Koneksi SSH baru | Diblokir. Nama host tidak lagi diselesaikan, dan aturan SG menutup port. |
| Data ruang kerja (PVC) | Tidak terpengaruh. PVC menyimpan file Anda, authorized_keys, dan kunci host. |
Pemecahan masalah
| Gejala | Penyebab | Perbaiki |
|---|---|---|
NXDOMAIN |
DNS tidak menyelesaikan | Verifikasi zona yang dihosting ada, terkait VPC, ExternalDNS berjalan |
Connection timed out |
Pemblokiran SG: aturan ditambahkan ke SG yang salah atau hilang seluruhnya | Periksa grup OverrideVpcConfig instans (Langkah Admin 1). Verifikasi aturan masuk TCP mencakup CIDR sumber Anda. |
Connection refused |
sshd tidak berjalan | Periksa ruang dalam status Running dan directSSH diaktifkan |
Permission denied (publickey) |
Kunci tidak masuk authorized_keys |
Tambahkan kunci publik melalui akses browser web atau kubectl (Pengguna Akhir Langkah 2) |
Host key changedperingatan |
Spasi telah dibuat ulang (pod baru, kunci host baru) | Di mesin klien Anda: ssh-keygen -R <hostname> lalu sambungkan kembali |
Stale DNS records after space deletion |
ExternalDNS berjalan dengan --policy=upsert-only |
Perbarui penerapan ExternalDNS ke dan tambahkan. --policy=sync --txt-owner-id=<cluster-name> Bersihkan catatan basi yang ada secara manual: aws route53 list-resource-record-sets --hosted-zone-id <ZONE_ID> |
| IDE: “Tidak dapat membuat koneksi” | sshd belum siap | Tunggu 60-90 detik setelah pembuatan ruang kerja, lalu coba lagi |
| IDE: Bertahan di “Menginstal VS Code Server” | Workspace tidak memiliki akses internet | Ruang kerja Anda mengunduh biner server VS Code dari host eksternal pada koneksi pertama. Hubungi administrator Anda jika ruang kerja mengalami celah udara. |
IDE: Permission denied |
IdentityFile ketidakcocokan jalur | Verifikasi terminal SSH berfungsi terlebih dahulu, lalu check in IdentityFile ~/.ssh/config |
| IDE: Koneksi turun setelah idle | Tidak ada keepalive yang dikonfigurasi | Tambahkan ServerAliveInterval 15 dan ServerAliveCountMax 3 ke ~/.ssh/config |
(Opsional) Menyiapkan prasyarat
Gunakan bagian ini hanya jika akses browser web belum diaktifkan, atau untuk memverifikasi atau memperbarui konfigurasi ExternalDNS Anda.
Instalasi dari awal
Jika akses browser web belum dikonfigurasi, Anda memerlukan yang berikut ini sebelum mengaktifkan Direct SSH:
-
Route 53 zona host — domain atau subdomain yang Anda miliki, terdaftar di Route 53
-
DNS eksternal — digunakan melalui add-on EKS, dengan peran IAM memiliki izin Route 53
-
AWS Load Balancer Controller - diperlukan jika Anda menggunakan akses browser web (ALB ingress). Untuk catatan HyperPod-specific instalasi, lihatAWS Load Balancer Controller: persyaratan HyperPod vPCID.
-
Konektivitas VPC — VPN atau Direct Connect dari mesin klien ke VPC
Untuk dependensi tambahan dan langkah-langkah konfigurasi akses browser web, lihat. Instal SageMaker AI Spaces Add-on
AWS Load Balancer Controller: persyaratan HyperPod vPCID
Dokumentasi instalasi AWS Load Balancer Controller standar tidak menyebutkan parameternya. vpcId Pada HyperPod cluster, menghilangkan vpcId menyebabkan instalasi gagal. Anda harus memberikannya secara eksplisit.
Dapatkan ID VPC Anda:
aws sagemaker describe-cluster \ --cluster-name <HYPERPOD_CLUSTER_NAME> \ --region <AWS_REGION> \ --query 'VpcConfig.VpcId' \ --output text
Instal dengan HyperPod parameter yang diperlukan:
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>
| Parameter | Mengapa diperlukan pada HyperPod |
|---|---|
vpcId |
HyperPod VPC tidak dapat ditemukan secara otomatis oleh pengontrol. Instalasi gagal tanpanya. |
enableServiceMutatorWebhook=false |
Webhook yang bermutasi bertentangan dengan konfigurasi HyperPod layanan |
serviceAccount.create=false |
Akun layanan harus dibuat sebelumnya dengan anotasi IRSA atau Pod Identity yang benar sebelum menginstal |
Buat akun layanan (aws-load-balancer-controller) dengan anotasi peran IAM yang sesuai sebelum menjalankan perintah ini. Untuk informasi selengkapnya tentang kebijakan IAM dan langkah pembuatan akun layanan, lihat Pengaturan IRSA Pengontrol Load Balancer Amazon EKS di Panduan Pengguna Amazon EKS.
Konfigurasi ExternalDNS
ExternalDNS menyinkronkan Layanan Kubernetes dengan penyedia DNS. Konfigurasikan ExternalDNS dengan pengaturan berikut saat Anda menggunakannya dengan Amazon Route 53 di lingkungan produksi.
ExternalDNS memerlukan kebijakan sinkronisasi
Anda harus mengkonfigurasi ExternalDNS dengan. --policy=sync
Secara default, ExternalDNS menggunakan. --policy=upsert-only Ini membuat dan memperbarui catatan DNS tetapi tidak pernah menghapusnya. Saat Anda menghapus ruang kerja, catatan A dan TXT di Amazon Route 53 tetap sebagai entri basi.
Gunakan --policy=upsert-only hanya untuk pengujian, dan ubah menjadi --policy=sync untuk produksi. Anda juga harus menyetel --txt-owner-id bendera, yang memberi tahu ExternalDNS catatan mana yang dimilikinya dan catatan mana yang akan dihapus saat pembersihan.
Konfigurasikan penerapan ExternalDNS Anda dengan argumen berikut:
--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
Dalam argumen sebelumnya, ganti nilai-nilai berikut:
-
<ROUTE53_HOSTED_ZONE>— Domain zona host pribadi Amazon Route 53 Anda (misalnya,workspaces.internal) -
<CLUSTER_NAME>— nama cluster EKS Anda (misalnya,my-hyperpod-cluster)
Untuk memverifikasi kebijakan ExternalDNS Anda saat ini, jalankan perintah berikut:
kubectl get deployment -n kube-system external-dns \ -o jsonpath='{.spec.template.spec.containers[0].args}' | tr ',' '\n' | grep -E 'policy|owner|source|domain'