View a markdown version of this page

Menyebarkan cluster Amazon EKS pada AWS Outposts - Amazon EKS

Bantu meningkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menyebarkan cluster Amazon EKS pada AWS Outposts

Topik ini memberikan gambaran umum tentang apa yang harus dipertimbangkan saat menjalankan cluster lokal di Outpost. Topik ini juga memberikan petunjuk tentang cara menyebarkan cluster lokal di pos terdepan.

penting
  • Pertimbangan ini tidak direplikasi dalam dokumentasi Amazon EKS terkait. Jika topik dokumentasi Amazon EKS lainnya bertentangan dengan pertimbangan di sini, ikuti pertimbangan di sini.

  • Pertimbangan ini dapat berubah dan mungkin sering berubah. Jadi, kami sarankan Anda meninjau topik ini secara teratur.

  • Banyak pertimbangan berbeda dari pertimbangan untuk membuat cluster di AWS Cloud.

  • Cluster lokal hanya mendukung rak Pos Terdepan. Satu cluster lokal dapat berjalan di beberapa rak pos terdepan fisik yang terdiri dari satu pos terdepan logis. Satu cluster lokal tidak dapat berjalan di beberapa pos terdepan logis. Setiap pos terdepan logis memiliki satu pos terdepan ARN.

  • Cluster lokal menjalankan dan mengelola pesawat kontrol Kubernetes di akun Anda di Outpost. Anda tidak dapat menjalankan beban kerja pada instance bidang kontrol Kubernetes atau memodifikasi komponen bidang kontrol Kubernetes. Node ini dikelola oleh layanan Amazon EKS. Perubahan pada bidang kontrol Kubernetes tidak bertahan melalui tindakan manajemen Amazon EKS otomatis, seperti tambalan.

  • Cluster lokal mendukung add-on yang dikelola sendiri dan grup node Amazon Linux yang dikelola sendiri. Plugin Amazon VPC CNI untuk add-on Kubernetes, kube-proxy, dan CoreDNS secara otomatis diinstal pada cluster lokal.

  • Cluster lokal memerlukan penggunaan Amazon EBS di Pos Terdepan. Pos Terdepan Anda harus memiliki Amazon EBS yang tersedia untuk penyimpanan pesawat kontrol Kubernetes. Pos terdepan hanya mendukung gp2 volume Amazon EBS.

  • Kubernetes yang didukung Amazon EBS PersistentVolumes didukung menggunakan driver Amazon EBS CSI.

  • Instance bidang kontrol cluster lokal diatur dalam topologi ber tumpuk yang sangat tersedia. Dua dari tiga contoh bidang kontrol harus sehat setiap saat untuk mempertahankan kuorum. Jika kuorum hilang, hubungi AWS dukungan, karena beberapa tindakan sisi layanan akan diperlukan untuk mengaktifkan instans terkelola baru.

Prasyarat

Saat cluster Amazon EKS lokal dibuat, prinsip IAM yang membuat cluster ditambahkan secara permanen. Prinsip secara khusus ditambahkan ke tabel otorisasi Kubernetes RBAC sebagai administrator. Entitas ini memiliki system:masters izin. Identitas entitas ini tidak terlihat dalam konfigurasi cluster Anda. Jadi, penting untuk mencatat entitas yang membuat cluster dan memastikan bahwa Anda tidak pernah menghapusnya. Awalnya, hanya prinsipal yang membuat server yang dapat melakukan panggilan ke server API Kubernetes menggunakan. kubectl Jika Anda menggunakan konsol untuk membuat cluster, pastikan kredentif IAM yang sama ada di rantai kredensi AWS SDK saat Anda menjalankan kubectl perintah di cluster Anda. Setelah cluster Anda dibuat, Anda dapat memberikan akses kepada prinsipal IAM lainnya ke cluster Anda.

Membuat cluster lokal Amazon EKS

Anda dapat membuat cluster lokal dengan alat berikut yang dijelaskan di halaman ini:

Anda juga dapat menggunakan AWS CLI, API Amazon EKS, AWS SDK , AWS CloudFormation atau Terraform untuk membuat cluster di Outpost.

eksctl

Untuk membuat cluster lokal dengan eksctl

  1. Instal versi 0.215.0 atau yang lebih baru dari alat baris eksctl perintah di perangkat Anda atau AWS CloudShell. Untuk menginstal atau memperbaruieksctl, lihat Instal eksctl asi di dokumentasi.

  2. Salin konten berikut ke perangkat Anda. Ganti nilai-nilai berikut dan kemudian jalankan perintah yang dimodifikasi untuk membuat outpost-control-plane.yaml file:

    • Ganti region-code dengan Wil AWS ayah yang didukung tempat Anda ingin membuat cluster Anda.

    • Ganti my-cluster dengan nama untuk cluster Anda. Nama hanya dapat berisi karakter alfanumerik (peka huruf besar) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik dalam Wil AWS ayah dan AWS akun tempat Anda membuat cluster.

    • Ganti vpc-ExampleID1 dan subnet-ExampleID1 dengan ID VPC dan subnet yang ada. VPC dan subnet harus memenuhi persyaratan di Buat VPC dan subnet untuk cluster Amazon EKS di Outpost. AWS

    • Ganti uniqueid dengan ID Pos Terdepan Anda.

    • Ganti m5.large dengan jenis instance yang tersedia di Outpost Anda. Sebelum memilih jenis instance, lihatPilih jenis instans dan grup penempatan untuk klaster Amazon EKS AWS Outposts berdasarkan pertimbangan kapasitas. Tiga contoh pesawat kontrol dikerahkan. Anda tidak dapat mengubah nomor ini.

      cat >outpost-control-plane.yaml <<EOF apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: "1.37" vpc: clusterEndpoints: privateAccess: true id: "vpc-vpc-ExampleID1" subnets: private: outpost-subnet-1: id: "subnet-subnet-ExampleID1" outpost: controlPlaneOutpostARN: arn:aws: outposts:region-code:111122223333:outpost/op-uniqueid controlPlaneInstanceType: m5.large EOF

      Untuk daftar lengkap semua opsi dan default yang tersedia, lihat skema file Dukungan dan Konfigurasi AWS Outposts dalam dokumentasieksctl.

  3. Buat cluster menggunakan file konfigurasi yang Anda buat pada langkah sebelumnya. eksctlmembuat VPC dan satu subnet di Outpost Anda untuk menyebarkan cluster.

    eksctl create cluster -f outpost-control-plane.yaml

    Penyediaan klaster memerlukan waktu beberapa menit. Saat cluster sedang dibuat, beberapa baris output muncul. Baris terakhir output mirip dengan baris contoh berikut.

    [✓] EKS cluster "my-cluster" in "region-code" region is ready
    Tip

    Untuk melihat sebagian besar opsi yang dapat Anda tentukan saat membuat clustereksctl, gunakan eksctl create cluster --help perintah. Untuk melihat semua opsi yang tersedia, Anda dapat menggunakan config file. Untuk informasi selengkapnya, lihat Menggunakan file config dan skema file config di dokumentasi eksctl. Anda dapat menemukan contoh file konfigurasi di GitHub.

    Per eksctl intah secara otomatis membuat entri akses untuk prinsipal IAM (pengguna atau peran) yang membuat cluster dan memberikan izin administrator utama IAM ke objek Kubernetes di cluster. Jika Anda tidak ingin pembuat cluster memiliki akses administrator ke objek Kubernetes di cluster, tambahkan teks berikut ke file konfigurasi sebelumnya: bootstrapClusterCreatorAdminPermissions: false (pada tingkat yang sama denganmetadata,vpc, dan). outpost Jika Anda menambahkan opsi, maka setelah pembuatan cluster, Anda perlu membuat entri akses untuk setidaknya satu prinsipal IAM, atau tidak ada prinsipal IAM yang akan memiliki akses ke objek Kubernetes di cluster.

Konsol Manajemen AWS

Untuk membuat cluster Anda dengan Konsol Manajemen AWS

  1. Anda memerlukan VPC dan subnet yang sudah ada yang memenuhi persyaratan Amazon EKS. Untuk informasi selengkapnya, lihat Buat VPC dan subnet untuk kluster Amazon EKS AWS Outposts.

  2. Jika Anda sudah memiliki peran IAM cluster lokal, atau Anda akan membuat cluster Andaeksctl, maka Anda dapat melewati langkah ini. Secara default, eksctl membuat peran untuk Anda.

    1. Jalankan perintah berikut untuk membuat file JSON kebijakan kepercayaan IAM.

      { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
    2. Buat peran IAM cluster Amazon EKS. Untuk membuat peran IAM, prinsi pal IAM yang membuat peran harus diberi iam:CreateRole tindakan (izin).

      aws iam create-role --role-name myAmazonEKSLocalClusterRole --assume-role-policy-document file://"eks-local-cluster-role-trust-policy.json"
    3. Lampirkan kebijakan terkelola Amazon EKS yang dinam AmazonEKSLocalOutpostClusterPolicy ai ke peran tersebut. Untuk melampirkan kebijakan IAM ke prinsi pal IAM, prinsipal yang melampirkan kebijakan harus diberi salah satu tindakan IAM berikut (izin): atau. iam:AttachUserPolicy iam:AttachRolePolicy

      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSLocalOutpostClusterPolicy --role-name myAmazonEKSLocalClusterRole
  3. Buka konsol Amazon EKS.

  4. Di bagian atas layar konsol, pastikan Anda telah memilih Wilayah yang didukung AWS.

  5. Pilih Tambah cluster dan kemudian pilih Buat.

  6. Pada halaman Konfigurasi cluster, masukkan atau pilih nilai untuk bidang berikut:

    • Kubernetes mengontrol lokasi pesawat — Pilih Pos Terdepan. AWS

    • ID pos ter depan — Pilih ID Pos Terdepan tempat Anda ingin membuat pesawat kontrol Anda.

    • Jenis instans — Pilih jenis instans. Hanya jenis instans yang tersedia di Outpost Anda yang ditampilkan. Dalam daftar dropdown, setiap jenis instance menjelaskan berapa banyak node yang direkomendasikan untuk jenis instance. Sebelum memilih jenis instance, lihatPilih jenis instans dan grup penempatan untuk klaster Amazon EKS AWS Outposts berdasarkan pertimbangan kapasitas. Semua replika digunakan menggunakan jenis instance yang sama. Anda tidak dapat mengubah jenis instans setelah cluster Anda dibuat. Tiga contoh pesawat kontrol dikerahkan. Anda tidak dapat mengubah nomor ini.

    • Nama — Nama untuk cluster Anda. Itu harus unik di AWS akun Anda. Nama hanya dapat berisi karakter alfanumerik (peka huruf besar/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik dalam Wil AWS ayah dan AWS akun tempat Anda membuat cluster.

    • Versi Kubernetes — Pilih versi Kubernetes yang ingin Anda gunakan untuk cluster Anda. Sebaiknya pilih versi terbaru, kecuali jika Anda perlu menggunakan versi sebelumnya.

    • Peran layanan cluster — Pilih peran IAM cluster Amazon EKS yang Anda buat pada langkah sebelumnya untuk mengizinkan bidang kontrol Kubernetes mengelola sumber daya. AWS

    • Akses administrator cluster Kubernetes — Jika Anda ingin prinsipal IAM (peran atau pengguna) yang membuat cluster memiliki akses administrator ke objek Kubernetes di cluster, terima default (izinkan). Amazon EKS membuat entri akses untuk prinsipal IAM dan memberikan izin administrator cluster ke entri akses. Untuk informasi selengkapnya tentang entri akses, lihatBerikan akses kepada pengguna IAM ke Kubernetes dengan entri akses EKS.

      Jika Anda ingin prinsip IAM yang berbeda dari prinsipal yang membuat cluster untuk memiliki akses administrator ke objek cluster Kubernetes, pilih opsi disallow. Setelah pembuatan cluster, setiap prinsipal IAM yang memiliki izin IAM untuk membuat entri akses dapat menambahkan entri akses untuk setiap prinsipal IAM yang memerlukan akses ke objek cluster Kubernetes. Untuk informasi selengkapnya tentang izin IAM yang diperlukan, lihat Tindakan yang ditentukan oleh Layanan Kubernetes Amazon Elastic di Referensi Otorisasi Layanan. Jika Anda memilih opsi disallow dan tidak membuat entri akses apa pun, maka tidak ada prinsipal IAM yang akan memiliki akses ke objek Kubernetes di cluster.

    • Tanda — (Opsional) Tambahkan tanda apapun ke klaster Anda. Untuk informasi selengkapnya, lihat Mengorganisasi sumber daya Amazon EKS dengan tanda. Setelah selesai dengan halaman ini, pilih Ber ikutnya.

  7. Pada halaman Tentukan jaringan, pilih nilai untuk kolom berikut:

    • VPC — Pilih VPC yang ada. VPC harus memiliki jumlah alamat IP yang cukup tersedia untuk cluster, node apa pun, dan sumber daya Kubernetes lainnya yang ingin Anda buat. VPC Anda harus memenuhi persyaratan dalam persyaratan dan per timbangan VPC.

    • Subnet — Secara default, semua subnet yang tersedia di VPC yang ditentukan di bidang sebelumnya telah dipilih sebelumnya. Subnet yang Anda pilih harus memenuhi persyaratan dalam Persyaratan dan per timbangan Subnet.

    • Grup keamanan — (Opsional) Tentukan satu atau beberapa grup keamanan yang ingin Anda kaitkan Amazon EKS ke antarmuka jaringan yang dibuatnya. Amazon EKS secara otomatis membuat grup keamanan yang memungkinkan komunikasi antara cluster Anda dan VPC Anda. Amazon EKS mengaitkan grup keamanan ini, dan apa pun yang Anda pilih, ke antarmuka jaringan yang dibuatnya. Untuk informasi selengkapnya tentang grup keamanan cluster yang dibuat Amazon EKS, lihatLihat persyaratan grup keamanan Amazon EKS untuk cluster. Anda dapat mengubah aturan dalam grup keamanan cluster yang dibuat Amazon EKS. Jika Anda memilih untuk menambahkan grup keamanan Anda sendiri, Anda tidak dapat mengubah grup yang Anda pilih setelah pembuatan cluster. Agar host lokal dapat berkomunikasi dengan titik akhir cluster, Anda harus mengizinkan lalu lintas masuk dari grup keamanan cluster. Untuk cluster yang tidak memiliki koneksi internet masuk dan keluar (juga dikenal sebagai cluster pribadi), Anda harus melakukan salah satu hal berikut:

      • Tambahkan grup keamanan yang terkait dengan titik akhir VPC yang diperlukan. Untuk informasi selengkapnya tentang titik akhir yang diperlukan, lihat Menggunakan VPC endpoint antarmuka di Akses subnet ke AWS layanan.

      • Ubah grup keamanan yang dibuat Amazon EKS untuk mengizinkan lalu lintas dari grup keamanan yang terkait dengan titik akhir VPC. Setelah selesai dengan halaman ini, pilih Ber ikutnya.

  8. Pada halaman Konfigurasi observabilitas, Anda dapat secara opsional memilih opsi pen catatan bidang Metrik dan Kontrol yang ingin Anda aktifkan. Secara default, setiap jenis log dimatikan.

  9. Pada halaman Tinjau dan buat, tinjau informasi yang Anda masukkan atau pilih pada halaman sebelumnya. Jika Anda perlu membuat perubahan, pilih Edit. Ketika Anda puas, pilih Buat. Bid ang Status menunjukkan CRE ATING saat cluster disediakan.

    Penyediaan klaster memerlukan waktu beberapa menit.

Melihat cluster lokal Amazon EKS Anda

  1. Setelah cluster dibuat, Anda dapat melihat instans bidang kontrol Amazon EC2 yang dibuat.

    aws ec2 describe-instances --query 'Reservations[*].Instances[*].{Name:Tags[?Key==`Name`]|[0].Value}' | grep my-cluster-control-plane

    Contoh output adalah sebagai berikut.

    "Name": "my-cluster-control-plane-id1" "Name": "my-cluster-control-plane-id2" "Name": "my-cluster-control-plane-id3"

    Setiap instance tercemar node-role.eks-local.amazonaws.com/control-plane sehingga tidak ada beban kerja yang pernah dijadwalkan pada instans bidang kontrol. Untuk informasi selengkapnya tentang noda, lihat T aints and Tolerations dalam dokumentasi Kubernetes. Amazon EKS terus memantau keadaan cluster lokal. Kami melakukan tindakan manajemen otomatis, seperti patch keamanan dan memperbaiki instans yang tidak sehat. Ketika cluster lokal terputus dari cloud, kami menyelesaikan tindakan untuk memastikan bahwa cluster diperbaiki ke keadaan sehat setelah terhubung kembali.

  2. Jika Anda membuat cluster menggunakaneksctl, maka Anda dapat melewati langkah ini. eksctlmenyelesaikan langkah ini untuk Anda. Akti kubectl fkan untuk berkomunikasi dengan cluster Anda dengan menambahkan konteks baru ke kubectl config file. Untuk petunjuk tentang cara membuat dan memperbarui file, lihatHubungkan kubectl ke cluster EKS dengan membuat file kubeconfig.

    aws eks update-kubeconfig --region region-code --name my-cluster

    Contoh output adalah sebagai berikut.

    Added new context arn:aws: eks:region-code:111122223333:cluster/my-cluster to /home/username/.kube/config
  3. Untuk menyambung ke server API Kubernetes cluster lokal Anda, miliki akses ke gateway lokal untuk subnet, atau sambungkan dari dalam VPC. Untuk informasi selengkapnya tentang menghubungkan rak Outpost ke jaringan lokal Anda, lihat Cara kerja gateway lokal untuk rak di Panduan Pengguna Pos Luar AWS . Jika Anda menggunakan Direct VPC Routing dan subnet Outpost memiliki rute ke gateway lokal Anda, alamat IP pribadi dari instance pesawat kontrol Kubernetes secara otomatis disiarkan melalui jaringan lokal Anda. Titik akhir server Kubernetes API cluster lokal di-host di Amazon Route 53 (Route 53). Titik akhir layanan API dapat diselesaikan oleh server DNS publik ke alamat IP pribadi server API Kubernetes.

    Instans bidang kontrol Kubernetes cluster lokal dikonfigurasi dengan antarmuka jaringan elastis statis dengan alamat IP pribadi tetap yang tidak berubah sepanjang siklus hidup cluster. Mesin yang berinteraksi dengan server API Kubernetes mungkin tidak memiliki konektivitas ke Route 53 selama jaringan terputus. Jika ini masalahnya, kami sarankan mengonfigurasi /etc/hosts dengan alamat IP pribadi statis untuk operasi lanjutan. Kami juga merekomendasikan menyiapkan server DNS lokal dan menghubungkannya ke Outpost Anda. Untuk informasi selengkapnya, lihat dokument asi AWS Outposts. Jalankan perintah berikut untuk mengonfirmasi bahwa komunikasi telah dibuat dengan cluster Anda.

    kubectl get svc

    Contoh output adalah sebagai berikut.

    NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 28h
  4. (Opsional) Uji otentikasi ke cluster lokal Anda saat berada dalam keadaan terputus dari AWS Cloud. Untuk petunjuk, lihat Siapkan cluster Amazon EKS lokal di AWS Outposts untuk pemutusan jaringan.

Sumber daya internal

Amazon EKS membuat sumber daya berikut di cluster Anda. Sumber daya untuk penggunaan internal Amazon EKS. Agar kluster berfungsi dengan baik, jangan mengedit atau memodifikasi sumber daya ini.

  • Pod cermin berikut:

    • aws-iam-authenticator-node-hostname

    • eks-certificates-controller-node-hostname

    • etcd-node-hostname

    • kube-apiserver-node-hostname

    • kube-controller-manager-node-hostname

    • kube-scheduler-node-hostname

  • Add-on yang dikelola sendiri berikut:

    • kube-system/coredns

    • kube-system/kube-proxy(tidak dibuat sampai Anda menambahkan simpul pertama Anda)

    • kube-system/aws-node(tidak dibuat sampai Anda menambahkan node pertama Anda). Cluster lokal menggunakan plugin Amazon VPC CNI untuk plugin Kubernetes untuk jaringan cluster. Jangan mengubah konfigurasi untuk instance bidang kontrol (bernama Podaws-node-controlplane-*). Ada variabel konfigurasi yang dapat Anda gunakan untuk mengubah nilai default ketika plugin membuat antarmuka jaringan baru. Untuk informasi lebih lanjut, lihat dokumentasi di GitHub.

  • Layanan berikut:

    • default/kubernetes

    • kube-system/kube-dns

  • Sebuah PodSecurityPolicy bernama eks.system

  • Sebuah ClusterRole bernama eks:system:podsecuritypolicy

  • Sebuah ClusterRoleBinding bernama eks:system

  • Selain grup keamanan cluster, Amazon EKS membuat grup keamanan di AWS akun Anda yang diberi namaeks-local-internal-do-not-use-or-edit-cluster-name-uniqueid . Grup keamanan ini memungkinkan lalu lintas mengalir bebas antara komponen Kubernetes yang berjalan pada instance bidang kontrol.

Langkah selanjutnya yang disarankan: