Membuat cluster lokal di Outpost - Amazon EKS

Bantu tingkatkan halaman ini

Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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

Membuat cluster lokal di Outpost

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

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

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

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

  • Cluster lokal hanya mendukung rak Outpost. Sebuah cluster lokal tunggal dapat berjalan di beberapa rak Outpost fisik yang terdiri dari satu pos logis. Satu cluster lokal tidak dapat berjalan di beberapa Outposts logis. Setiap Outpost logis memiliki ARN Outpost tunggal.

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

  • Cluster lokal mendukung add-on yang dikelola sendiri dan grup node Amazon Linux yang dikelola sendiri. The Amazon VPC CNI plugin for Kubernetes, kube-proxy, dan CoreDNSadd-on secara otomatis diinstal pada cluster lokal.

  • Cluster lokal memerlukan penggunaan Amazon EBS di Outposts. Pos Luar Anda harus memiliki Amazon EBS yang tersedia untuk penyimpanan pesawat Kubernetes kontrol.

  • Cluster lokal menggunakan Amazon EBS di Outposts. Pos Luar Anda harus memiliki Amazon EBS yang tersedia untuk penyimpanan pesawat Kubernetes kontrol. Outposts hanya mendukung volume Amazon EBSgp2.

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

Prasyarat

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

Untuk membuat kluster lokal Amazon EKS lokal

Anda dapat membuat cluster lokal denganeksctl,, Amazon EKS API AWS CLI, AWS SDK, AWS CloudFormationatau Terraform. AWS Management Console

  1. Buat cluster lokal.

    eksctl
    Prasyarat

    Versi 0.183.0 atau yang lebih baru dari alat baris eksctl perintah yang diinstal pada perangkat Anda atau AWS CloudShell. Untuk menginstal atau memperbaruieksctl, lihat Instalasi dalam eksctl dokumentasi.

    Untuk membuat cluster Anda dengan eksctl
    1. 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 Wilayah AWS 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 Wilayah AWS dan Akun AWS tempat Anda membuat cluster. Nama harus unik di dalam Wilayah AWS dan Akun AWS tempat Anda membuat cluster.

      • Ganti vpc-ExampleID1 dan subnet-ExampleID1 dengan ID VPC dan subnet Anda yang ada. VPC dan subnet harus memenuhi persyaratan di. Persyaratan dan pertimbangan VPC klaster lokal dan subnet Amazon EKS

      • Ganti uniqueid dengan ID Outpost Anda.

      • Ganti m5.large dengan jenis instance yang tersedia di Outpost Anda. Sebelum memilih jenis instance, lihatPertimbangan 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 Skema file Support AWS Outposts dan Config dalam dokumentasi. eksctl

    2. 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 diGitHub.

    Eksctlsecara otomatis membuat entri akses untuk prinsipal IAM (pengguna atau peran) yang membuat cluster dan memberikan izin administrator utama IAM ke Kubernetes objek di cluster. Jika Anda tidak ingin pembuat klaster memiliki akses administrator ke Kubernetes objek di 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 prinsipal IAM, atau tidak ada prinsipal IAM yang memiliki akses ke Kubernetes objek di cluster.

    AWS Management Console
    Prasyarat

    VPC dan subnet yang ada yang memenuhi persyaratan Amazon EKS. Untuk informasi selengkapnya, lihat Persyaratan dan pertimbangan VPC klaster lokal dan subnet Amazon EKS.

    Untuk membuat cluster Anda dengan AWS Management Console
    1. Jika Anda sudah memiliki peran IAM 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 file JSON kebijakan kepercayaan IAM.

        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 peran IAM cluster Amazon EKS. Untuk membuat peran IAM, prinsipal 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 diberi nama AmazonEKSLocalOutpostClusterPolicyke peran tersebut. Untuk melampirkan kebijakan IAM ke kepala sekolah IAM, prinsipal yang melampirkan kebijakan harus diberikan 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
    2. Buka konsol Amazon EKS di https://console.aws.amazon.com/eks/home#/clusters.

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

    4. Pilih Add cluster dan kemudian pilih Create.

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

      • Kuberneteskontrol 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, lihatPertimbangan 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 klaster Anda. Itu harus unik dalam diri Anda Akun AWS. 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 Wilayah AWS dan Akun AWS tempat Anda membuat cluster. Nama harus unik di dalam Wilayah AWS dan Akun AWS tempat Anda membuat cluster.

      • Kubernetesversi — 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 peran IAM klaster Amazon EKS yang Anda buat pada langkah sebelumnya untuk memungkinkan bidang Kubernetes kontrol mengelola AWS sumber daya.

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

        Jika Anda menginginkan prinsipal IAM yang berbeda dari prinsipal yang membuat cluster untuk memiliki akses administrator ke objek Kubernetes cluster, 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 Amazon Elastic Kubernetes Service di Referensi Otorisasi Layanan. Jika Anda memilih opsi larangan dan tidak membuat entri akses apa pun, maka tidak ada prinsipal IAM yang akan memiliki akses ke objek di cluster. Kubernetes

      • Tanda — (Opsional) Tambahkan tanda apapun ke klaster Anda. Untuk informasi selengkapnya, lihat Menandai sumber daya Amazon EKS Anda.

      Setelah selesai dengan halaman ini, pilih Berikutnya.

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

      • VPC — Pilih VPC yang ada. VPC harus memiliki cukup banyak alamat IP yang tersedia untuk cluster, node apa pun, dan Kubernetes sumber daya lain yang ingin Anda buat. VPC Anda harus memenuhi persyaratan di. Persyaratan dan pertimbangan 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 diPersyaratan dan pertimbangan 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 klaster 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 klaster yang dibuat Amazon EKS, lihatPersyaratan dan pertimbangan grup keamanan Amazon EKS. Anda dapat mengubah aturan di grup keamanan klaster yang dibuat Amazon EKS. 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 titik akhir VPC yang diperlukan. Untuk informasi selengkapnya tentang titik akhir yang diperlukan, lihat titik akhir VPC antarmuka di. Akses subnet ke Layanan AWS

        • Ubah grup keamanan yang dibuat Amazon EKS untuk memungkinkan lalu lintas dari grup keamanan yang terkait dengan titik akhir VPC.

      Setelah selesai dengan halaman ini, pilih Berikutnya.

    7. 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.

      Setelah selesai dengan halaman ini, pilih Berikutnya.

    8. 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 menunjukkan CREATING saat cluster disediakan.

      Penyediaan klaster memerlukan waktu beberapa menit.

  2. Setelah klaster 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 dicemari node-role.eks-local.amazonaws.com/control-plane sehingga tidak ada beban kerja yang dijadwalkan pada instance bidang kontrol. Untuk informasi selengkapnya tentang taints, lihat Taints 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 kluster lokal terputus dari cloud, kami menyelesaikan tindakan untuk memastikan bahwa klaster diperbaiki ke keadaan sehat setelah tersambung kembali.

  3. 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, lihatMembuat atau memperbarui kubeconfig file untuk kluster Amazon EKS.

    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
  4. Untuk terhubung ke server Kubernetes API cluster lokal Anda, dapatkan akses ke gateway lokal untuk subnet, atau sambungkan dari dalam VPC. Untuk informasi selengkapnya tentang menghubungkan rak Outpost ke jaringan lokal, lihat Cara kerja gateway lokal untuk rak di Panduan Pengguna. AWS Outposts Jika Anda menggunakan Direct VPC Routing dan subnet Outpost memiliki rute ke gateway lokal Anda, alamat IP pribadi dari instance pesawat Kubernetes kontrol secara otomatis disiarkan melalui jaringan lokal Anda. Titik akhir server Kubernetes API cluster lokal di-host di Amazon Route 53 (Route 53). Endpoint layanan API dapat diselesaikan oleh server DNS publik ke alamat IP pribadi server Kubernetes API.

    Instans bidang Kubernetes kontrol kluster lokal dikonfigurasi dengan antarmuka jaringan elastis statis dengan alamat IP pribadi tetap yang tidak berubah sepanjang siklus hidup cluster. Mesin yang berinteraksi dengan server Kubernetes API 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 server DNS lokal dan menghubungkannya ke Outpost Anda. Untuk informasi lebih lanjut, lihat dokumentasi 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
  5. (Opsional) Uji otentikasi ke klaster lokal Anda saat berada dalam keadaan terputus dari. AWS Cloud Untuk petunjuk, lihat Mempersiapkan pemutusan jaringan.

Sumber daya internal

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

  • Cermin berikutPods:

    • 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

  • PodSecurityKebijakan default

  • Selain grup keamanan cluster, Amazon EKS membuat grup keamanan di nama Anda Akun AWS eks-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: