Mempersiapkan pemutusan jaringan - Amazon EKS

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

Mempersiapkan pemutusan jaringan

Jika jaringan lokal Anda kehilangan konektivitas denganAWS Cloud, Anda dapat terus menggunakan kluster Amazon EKS lokal Anda di Outpost. Topik ini mencakup bagaimana Anda dapat mempersiapkan cluster lokal Anda untuk pemutusan jaringan dan pertimbangan terkait.

Pertimbangan saat menyiapkan klaster lokal Anda untuk pemutusan jaringan:
  • Cluster lokal memungkinkan stabilitas dan operasi lanjutan selama pemutusan jaringan sementara yang tidak direncanakan. AWS Outpoststetap merupakan penawaran yang sepenuhnya terhubung yang bertindak sebagai perpanjangan dari AWS Cloud di pusat data Anda. Jika jaringan terputus antara Outpost Anda danAWS Cloud, kami sarankan untuk mencoba memulihkan koneksi Anda. Untuk instruksi, lihat daftar periksa pemecahan masalah jaringan AWS Outposts rak di Panduan Pengguna. AWS Outposts Untuk informasi selengkapnya tentang cara memecahkan masalah dengan kluster lokal, lihat. Memecahkan masalah kluster lokal untuk Amazon EKS di AWS Outposts

  • Outposts memancarkan ConnectedStatus metrik yang dapat Anda gunakan untuk memantau status konektivitas Outpost Anda. Untuk informasi selengkapnya, lihat Metrik Outposts di Panduan Pengguna. AWS Outposts

  • Cluster lokal menggunakan IAM sebagai mekanisme otentikasi default menggunakan authenticator untukAWS Identity and Access Management. Kubernetes IAM tidak tersedia selama pemutusan jaringan. Jadi, cluster lokal mendukung mekanisme otentikasi alternatif menggunakan x.509 sertifikat yang dapat Anda gunakan untuk terhubung ke cluster Anda selama pemutusan jaringan. Untuk informasi tentang cara mendapatkan dan menggunakan x.509 sertifikat untuk klaster Anda, lihatMengautentikasi ke cluster lokal Anda selama pemutusan jaringan.

  • Jika Anda tidak dapat mengakses Route 53 selama pemutusan jaringan, pertimbangkan untuk menggunakan server DNS lokal di lingkungan lokal Anda. Instans bidang Kubernetes kontrol menggunakan alamat IP statis. Anda dapat mengonfigurasi host yang Anda gunakan untuk terhubung ke cluster Anda dengan nama host endpoint dan alamat IP sebagai alternatif untuk menggunakan server DNS lokal. Untuk informasi selengkapnya, lihat DNS dalam Panduan Pengguna AWS Outposts.

  • Jika Anda mengharapkan peningkatan lalu lintas aplikasi selama pemutusan jaringan, Anda dapat menyediakan kapasitas komputasi cadangan di cluster Anda saat terhubung ke cloud. Instans Amazon EC2 sudah termasuk dalam harga. AWS Outposts Jadi, menjalankan instance cadangan tidak memengaruhi biaya AWS penggunaan Anda.

  • Selama pemutusan jaringan untuk mengaktifkan operasi pembuatan, pembaruan, dan skala untuk beban kerja, gambar kontainer aplikasi Anda harus dapat diakses melalui jaringan lokal dan cluster Anda harus memiliki kapasitas yang cukup. Cluster lokal tidak meng-host registri kontainer untuk Anda. Jika sebelumnya Pods telah berjalan pada node tersebut, gambar kontainer di-cache pada node. Jika Anda biasanya menarik gambar kontainer aplikasi Anda dari Amazon ECR di cloud, pertimbangkan untuk menjalankan cache atau registri lokal. Cache atau registri lokal sangat membantu jika Anda memerlukan operasi buat, perbarui, dan skala untuk sumber daya beban kerja selama pemutusan jaringan.

  • Cluster lokal menggunakan Amazon EBS sebagai kelas penyimpanan default untuk volume persisten dan driver Amazon EBS CSI untuk mengelola siklus hidup volume persisten Amazon EBS. Selama pemutusan jaringan, Pods yang didukung oleh Amazon EBS tidak dapat dibuat, diperbarui, atau diskalakan. Ini karena operasi ini memerlukan panggilan ke Amazon EBS API di cloud. Jika Anda menerapkan beban kerja stateful pada kluster lokal dan memerlukan operasi pembuatan, pembaruan, atau skala selama pemutusan jaringan, pertimbangkan untuk menggunakan mekanisme penyimpanan alternatif.

  • Snapshot Amazon EBS tidak dapat dibuat atau dihapus jika tidak AWS Outposts dapat mengakses API AWS dalam wilayah yang relevan (seperti API untuk Amazon EBS atau Amazon S3).

  • Saat mengintegrasikan ALB (Ingress) dengan AWS Certificate Manager (ACM), sertifikat didorong dan disimpan dalam memori instance ALB Compute. AWS Outposts Penghentian TLS saat ini akan terus beroperasi jika terjadi pemutusan sambungan dari. Wilayah AWS Operasi mutasi dalam konteks ini akan gagal (seperti definisi ingress baru, operasi API sertifikat berbasis ACM baru, skala komputasi ALB, atau rotasi sertifikat). Untuk informasi selengkapnya, lihat Memecahkan masalah perpanjangan sertifikat terkelola di Panduan Pengguna. AWS Certificate Manager

  • Log bidang kontrol Amazon EKS di-cache secara lokal pada instance bidang Kubernetes kontrol selama pemutusan jaringan. Setelah menyambung kembali, log dikirim ke CloudWatch Log di indukWilayah AWS. Anda dapat menggunakan Prometheus, Grafana, atau solusi mitra Amazon EKS untuk memantau kluster secara lokal menggunakan titik akhir metrik server Kubernetes API atau menggunakan Fluent Bit log.

  • Jika Anda menggunakan AWS Load Balancer Controller on Outposts untuk lalu lintas aplikasi, yang ada di Pods depan oleh AWS Load Balancer Controller terus menerima lalu lintas selama jaringan terputus. Baru Pods dibuat selama pemutusan jaringan tidak menerima lalu lintas sampai Outpost tersambung kembali ke. AWS Cloud Pertimbangkan untuk mengatur jumlah replika untuk aplikasi Anda saat terhubung ke AWS Cloud untuk mengakomodasi kebutuhan penskalaan Anda selama pemutusan jaringan.

  • Amazon VPC CNI plugin for KubernetesDefault ke mode IP sekunder. Ini dikonfigurasi dengan WARM_ENI_TARGET =1, yang memungkinkan plugin untuk menjaga “full elastic network interface” dari alamat IP yang tersedia. Pertimbangkan untuk mengubahWARM_ENI_TARGET,WARM_IP_TARGET, dan MINIMUM_IP_TARGET nilai sesuai dengan kebutuhan penskalaan Anda selama keadaan terputus. Untuk informasi selengkapnya, lihat readmefile untuk plugin di GitHub. Untuk daftar jumlah maksimum Pods yang didukung oleh setiap jenis instance, lihat eni-max-pods.txtfile di GitHub.

Mengautentikasi ke cluster lokal Anda selama pemutusan jaringan

AWS Identity and Access Management(IAM) tidak tersedia selama pemutusan jaringan. Anda tidak dapat mengautentikasi ke klaster lokal menggunakan kredensyal IAM saat terputus. Namun, Anda dapat terhubung ke cluster Anda melalui jaringan lokal Anda menggunakan x509 sertifikat saat terputus. Anda perlu mengunduh dan menyimpan X509 sertifikat klien untuk digunakan selama pemutusan sambungan. Dalam topik ini, Anda mempelajari cara membuat dan menggunakan sertifikat untuk mengautentikasi ke klaster Anda saat berada dalam keadaan terputus.

  1. Buat permintaan penandatanganan sertifikat.

    1. Buat permintaan penandatanganan sertifikat.

      openssl req -new -newkey rsa:4096 -nodes -days 365 \ -keyout admin.key -out admin.csr -subj "/CN=admin"
    2. Buat permintaan penandatanganan sertifikat diKubernetes.

      BASE64_CSR=$(cat admin.csr | base64 -w 0) cat << EOF > admin-csr.yaml apiVersion: certificates.k8s.io/v1 kind: CertificateSigningRequest metadata: name: admin-csr spec: signerName: kubernetes.io/kube-apiserver-client request: ${BASE64_CSR} usages: - client auth EOF
  2. Buat permintaan penandatanganan sertifikat menggunakankubectl.

    kubectl create -f admin-csr.yaml
  3. Periksa status permintaan penandatanganan sertifikat.

    kubectl get csr admin-csr

    Contoh output adalah sebagai berikut.

    NAME AGE REQUESTOR CONDITION admin-csr 11m kubernetes-admin Pending

    Kubernetesmembuat permintaan penandatanganan sertifikat.

  4. Menyetujui permintaan penandatanganan sertifikat.

    kubectl certificate approve admin-csr
  5. Periksa kembali status permintaan penandatanganan sertifikat untuk persetujuan.

    kubectl get csr admin-csr

    Contoh output adalah sebagai berikut.

    NAME AGE REQUESTOR CONDITION admin-csr 11m kubernetes-admin Approved
  6. Ambil dan verifikasi sertifikat.

    1. Ambil sertifikat.

      kubectl get csr admin-csr -o jsonpath='{.status.certificate}' | base64 --decode > admin.crt
    2. Verifikasi sertifikat.

      cat admin.crt
  7. Buat pengikatan peran klaster untuk admin pengguna.

    kubectl create clusterrolebinding admin --clusterrole=cluster-admin \ --user=admin --group=system:masters
  8. Hasilkan kubeconfig dengan cakupan pengguna untuk status terputus.

    Anda dapat membuat kubeconfig file menggunakan admin sertifikat yang diunduh. Ganti my-cluster dan apiserver-endpoint dalam perintah berikut.

    aws eks describe-cluster --name my-cluster \ --query "cluster.certificateAuthority" \ --output text | base64 --decode > ca.crt
    kubectl config --kubeconfig admin.kubeconfig set-cluster my-cluster \ --certificate-authority=ca.crt --server apiserver-endpoint --embed-certs
    kubectl config --kubeconfig admin.kubeconfig set-credentials admin \ --client-certificate=admin.crt --client-key=admin.key --embed-certs
    kubectl config --kubeconfig admin.kubeconfig set-context admin@my-cluster \ --cluster my-cluster --user admin
    kubectl config --kubeconfig admin.kubeconfig use-context admin@my-cluster
  9. Lihat kubeconfig file Anda.

    kubectl get nodes --kubeconfig admin.kubeconfig
  10. Jika Anda memiliki layanan yang sudah diproduksi di Outpost Anda, lewati langkah ini. Jika Amazon EKS adalah satu-satunya layanan yang berjalan di Outpost Anda dan Outpost saat ini tidak dalam produksi, Anda dapat mensimulasikan pemutusan jaringan. Sebelum Anda masuk ke produksi dengan cluster lokal Anda, simulasikan pemutusan untuk memastikan bahwa Anda dapat mengakses klaster Anda saat berada dalam keadaan terputus.

    1. Terapkan aturan firewall pada perangkat jaringan yang menghubungkan Outpost Anda ke. Wilayah AWS Ini memutus tautan layanan dari Outpost. Anda tidak dapat membuat instance baru. Saat ini instans yang sedang berjalan kehilangan konektivitas ke Wilayah AWS dan internet.

    2. Anda dapat menguji koneksi ke cluster lokal Anda saat terputus menggunakan x509 sertifikat. Pastikan untuk mengubah Anda kubeconfig ke admin.kubeconfig yang Anda buat pada langkah sebelumnya. Ganti my-cluster dengan nama cluster lokal Anda.

      kubectl config use-context admin@my-cluster --kubeconfig admin.kubeconfig

    Jika Anda melihat ada masalah dengan kluster lokal Anda saat berada dalam keadaan terputus, sebaiknya buka tiket dukungan.