Buat EKS cluster Amazon lokal di AWS Outposts untuk ketersediaan tinggi - Amazon EKS

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

Buat EKS cluster Amazon lokal di AWS Outposts untuk ketersediaan tinggi

Anda dapat menggunakan kluster lokal untuk menjalankan seluruh EKS kluster Amazon secara lokal di AWS Outposts. Ini membantu mengurangi risiko downtime aplikasi yang mungkin diakibatkan oleh pemutusan jaringan sementara ke cloud. Pemutusan ini dapat disebabkan oleh pemotongan serat atau peristiwa cuaca. Karena seluruh Kubernetes cluster berjalan secara lokal di Outposts, aplikasi tetap tersedia. Anda dapat melakukan operasi cluster selama pemutusan jaringan ke cloud. Untuk informasi selengkapnya, lihat Siapkan EKS kluster Amazon lokal di AWS Outposts untuk pemutusan jaringan. Diagram berikut menunjukkan penyebaran cluster lokal.

Kluster lokal pos terdepan

Cluster lokal umumnya tersedia untuk digunakan dengan rak Outposts.

AWS Wilayah yang Didukung

Anda dapat membuat cluster lokal di AWS Wilayah berikut: AS Timur (Ohio), AS Timur (Virginia N.), AS Barat (California N.), AS Barat (Oregon), Asia Pasifik (Seoul), Asia Pasifik (Singapura), Asia Pasifik (Sydney), Asia Pasifik (Tokyo), Kanada (Tengah), Eropa (Frankfurt), Eropa (Irlandia), Eropa (London), Timur Tengah (Bahrain), dan Amerika Selatan (São Paulo). Untuk informasi mendetail tentang fitur yang didukung, lihatMembandingkan opsi penerapan.

Topik

    Buat klaster EKS lokal Amazon

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

    Anda juga dapat menggunakan, Amazon AWS CLI, the EKS API AWS SDKs, AWS CloudFormationatau Terraform untuk membuat cluster di Outposts.

    eksctl

    Untuk membuat cluster lokal dengan eksctl

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

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

      • Ganti region-code dengan AWS Wilayah 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/kecil) dan tanda hubung. Itu harus dimulai dengan karakter alfanumerik dan tidak boleh lebih dari 100 karakter. Nama harus unik di dalam AWS Wilayah dan AWS akun tempat Anda membuat klaster. Nama harus unik di dalam AWS Wilayah dan AWS akun tempat Anda membuat klaster.

      • Ganti vpc-ExampleID1 and subnet-ExampleID1 dengan yang IDs ada VPC dan subnet Anda. Subnet VPC dan harus memenuhi persyaratan di Buat VPC dan subnet untuk EKS cluster Amazon di Outposts. 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 EKS klaster Amazon di AWS Outposts berdasarkan pertimbangan kapasitas. Tiga instance 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.24" 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 AWS Outposts Support dan skema file Config dalam dokumentasi. eksctl

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

      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.

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

    AWS Management Console

    Untuk membuat cluster Anda dengan AWS Management Console

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

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

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

        cat >eks-local-cluster-role-trust-policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] } EOF
      2. Buat IAM peran EKS cluster Amazon. Untuk membuat IAM peran, kepala IAMsekolah 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 EKS terkelola Amazon bernama A mazonEKSLocal OutpostClusterPolicy ke peran. Untuk melampirkan IAM kebijakan ke IAMkepala sekolah, kepala sekolah yang melampirkan kebijakan harus diberikan salah satu IAM tindakan berikut (izin): iam:AttachUserPolicy atau. iam:AttachRolePolicy

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

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

    5. Pilih Add cluster dan kemudian pilih Create.

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

      • Kubernetes kontrol lokasi pesawat — Pilih AWS Outposts.

      • Outpost ID - Pilih ID Outpost tempat Anda ingin membuat pesawat kontrol Anda.

      • Jenis instans - Pilih jenis instance. 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 EKS klaster Amazon di AWS Outposts berdasarkan pertimbangan kapasitas. Semua replika digunakan menggunakan jenis instance yang sama. Anda tidak dapat mengubah jenis instance setelah cluster Anda dibuat. Tiga instance 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 di dalam AWS Wilayah dan AWS akun tempat Anda membuat klaster. Nama harus unik di dalam AWS Wilayah dan AWS akun tempat Anda membuat klaster.

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

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

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

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

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

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

      • VPC— Pilih yang sudah adaVPC. VPCHarus memiliki jumlah alamat IP yang cukup tersedia untuk cluster, node apa pun, dan lainnya Kubernetes sumber daya yang ingin Anda buat. Anda VPC harus memenuhi persyaratan dalam VPCpersyaratan dan pertimbangan.

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

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

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

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

    8. Pada halaman Konfigurasi observabilitas, Anda dapat secara opsional memilih opsi pencatatan bidang Metrik dan Kontrol mana 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 melakukan perubahan, pilih Edit. Saat Anda puas, pilih Buat. Bidang Status ditampilkan CREATINGsaat klaster disediakan.

      Penyediaan klaster memerlukan waktu beberapa menit.

    Lihat kluster EKS lokal Amazon Anda

    1. Setelah klaster dibuat, Anda dapat melihat instance bidang EC2 kontrol Amazon 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 dicemari node-role.eks-local.amazonaws.com/control-plane sehingga tidak ada beban kerja yang dijadwalkan pada instance bidang kontrol. Untuk informasi lebih lanjut tentang noda, lihat Taints and Tolerations in the Kubernetes dokumentasi. Amazon EKS terus memantau keadaan cluster lokal. Kami melakukan tindakan manajemen otomatis, seperti patch keamanan dan memperbaiki instans yang tidak sehat. Ketika kluster lokal terputus dari cloud, kami menyelesaikan tindakan untuk memastikan bahwa klaster diperbaiki ke keadaan sehat setelah tersambung kembali.

    2. Jika Anda membuat cluster Anda menggunakaneksctl, maka Anda dapat melewati langkah ini. eksctlmenyelesaikan langkah ini untuk Anda. Aktifkan kubectl untuk berkomunikasi dengan cluster Anda dengan menambahkan konteks baru ke kubectl config file. Untuk petunjuk tentang cara membuat dan memperbarui file, lihatConnect kubectl ke EKS cluster 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 terhubung ke klaster lokal Anda Kubernetes APIserver, memiliki akses ke gateway lokal untuk subnet, atau terhubung dari dalam. VPC Untuk informasi selengkapnya tentang menghubungkan rak Outpost ke jaringan lokal, lihat Cara kerja gateway lokal untuk rak di Panduan Pengguna Outposts. AWS Jika Anda menggunakan Direct VPC Routing dan subnet Outpost memiliki rute ke gateway lokal Anda, alamat IP pribadi Kubernetes instance control plane secara otomatis disiarkan melalui jaringan lokal Anda. Cluster lokal Kubernetes APItitik akhir server di-host di Amazon Route 53 (Rute 53). Endpoint API layanan dapat diselesaikan oleh DNS server publik ke alamat IP pribadi server Kubernetes. API

      Cluster lokal ' Kubernetes instance bidang kontrol dikonfigurasi dengan antarmuka jaringan elastis statis dengan alamat IP pribadi tetap yang tidak berubah sepanjang siklus hidup cluster. Mesin yang berinteraksi dengan Kubernetes APIserver mungkin tidak memiliki konektivitas ke Route 53 selama pemutusan jaringan. Jika ini masalahnya, kami sarankan untuk mengonfigurasi /etc/hosts dengan alamat IP pribadi statis untuk operasi lanjutan. Kami juga merekomendasikan untuk menyiapkan DNS server lokal dan menghubungkannya ke Outpost Anda. Untuk informasi selengkapnya, lihat AWS dokumentasi 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 klaster lokal Anda saat berada dalam status terputus dari Cloud. AWS Untuk petunjuk, silakan lihat Siapkan EKS kluster Amazon lokal di AWS Outposts untuk pemutusan jaringan.

    Sumber daya internal

    Amazon EKS membuat sumber daya berikut di klaster Anda. Sumber dayanya untuk penggunaan EKS internal Amazon. Agar klaster 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

    • Pengaya yang dikelola sendiri berikut ini:

      • kube-system/coredns

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

      • kube-system/aws-node(tidak dibuat sampai Anda menambahkan node pertama Anda). Cluster lokal menggunakan Amazon VPC CNI plugin for Kubernetes plugin untuk jaringan cluster. Jangan mengubah konfigurasi untuk instance control plane (Pod bernamaaws-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

    • Default PodSecurityPolicy

    • Selain grup keamanan klaster, 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 di antara Kubernetes komponen yang berjalan pada instance bidang kontrol.

    Langkah selanjutnya yang disarankan: