Akses aplikasi kontainer secara pribadi di Amazon EKS menggunakan AWS PrivateLink dan Network Load Balancer - AWS Prescriptive Guidance

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

Akses aplikasi kontainer secara pribadi di Amazon EKS menggunakan AWS PrivateLink dan Network Load Balancer

Kirankumar Chandrashekar, Amazon Web Services

Pola ini menjelaskan cara meng-host aplikasi kontainer Docker secara pribadi di Amazon Elastic Kubernetes Service (Amazon EKS) di belakang Network Load Balancer, dan mengakses aplikasi dengan menggunakan AWS. PrivateLink Anda kemudian dapat menggunakan jaringan pribadi untuk mengakses layanan dengan aman di Amazon Web Services (AWS) Cloud. 

Cluster Amazon EKS yang menjalankan aplikasi Docker, dengan Network Load Balancer di ujung depan, dapat dikaitkan dengan titik akhir virtual private cloud (VPC) untuk akses melalui AWS. PrivateLink Layanan endpoint VPC ini kemudian dapat dibagikan dengan orang lain VPCs dengan menggunakan titik akhir VPC mereka.

Pengaturan yang dijelaskan oleh pola ini adalah cara aman untuk berbagi akses aplikasi di antara VPCs dan akun AWS. Ini tidak memerlukan konektivitas khusus atau konfigurasi perutean, karena koneksi antara akun konsumen dan penyedia berada di tulang punggung AWS global dan tidak melintasi internet publik.

Prasyarat

  • Docker, diinstal dan dikonfigurasi di Linux, macOS, atau Windows.

  • Aplikasi yang berjalan di Docker.

  • Akun AWS yang aktif.

  • AWS Command Line Interface (AWS CLI) versi 2, diinstal dan dikonfigurasi di Linux, macOS, atau Windows.

  • Cluster Amazon EKS yang ada dengan subnet pribadi yang diberi tag dan dikonfigurasi untuk meng-host aplikasi. Untuk informasi selengkapnya, lihat Penandaan subnet di dokumentasi Amazon EKS. 

  • Kubectl, diinstal dan dikonfigurasi untuk mengakses sumber daya di klaster Amazon EKS Anda. Untuk informasi selengkapnya, lihat Menginstal kubectl di dokumentasi Amazon EKS. 

Gunakan PrivateLink dan Network Load Balancer untuk mengakses aplikasi dalam wadah Amazon EKS.

Tumpukan teknologi

  • Amazon EKS

  • AWS PrivateLink

  • Penyeimbang Beban Jaringan

Otomatisasi dan skala

  • Manifes Kubernetes dapat dilacak dan dikelola pada repositori berbasis GIT, dan digunakan dengan menggunakan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD) di AWS. CodePipeline 

  • Anda dapat menggunakan AWS CloudFormation untuk membuat pola ini dengan menggunakan infrastruktur sebagai kode (IAc).

  • AWS CLI — AWS Command Line Interface (AWS CLI) Command Line Interface (AWS CLI) adalah alat sumber terbuka yang memungkinkan Anda berinteraksi dengan layanan AWS menggunakan perintah di shell baris perintah Anda.

  • Elastic Load Balancing — Elastic Load Balancing mendistribusikan lalu lintas aplikasi atau jaringan yang masuk ke beberapa target, seperti instans Amazon Elastic Compute Cloud ( EC2Amazon), container, dan alamat IP, dalam satu atau beberapa Availability Zone.

  • Amazon EKS — Amazon Elastic Kubernetes Service (Amazon EKS) adalah layanan terkelola yang dapat Anda gunakan untuk menjalankan Kubernetes di AWS tanpa perlu menginstal, mengoperasikan, dan memelihara control plane atau node Kubernetes Anda sendiri.

  • Amazon VPC — Amazon Virtual Private Cloud (Amazon VPC) membantu Anda meluncurkan sumber daya AWS ke jaringan virtual yang telah Anda tentukan.

  • Kubectl — Kubectl adalah utilitas baris perintah untuk menjalankan perintah terhadap klaster Kubernetes.

TugasDeskripsiKeterampilan yang dibutuhkan

Buat file manifes penerapan Kubernetes.

Buat file manifes penyebaran dengan memodifikasi file contoh berikut sesuai dengan kebutuhan Anda.

apiVersion: apps/v1 kind: Deployment metadata: name: sample-app spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - name: nginx image: public.ecr.aws/z9d2n7e1/nginx:1.19.5 ports: - name: http containerPort: 80
catatan

Ini adalah file konfigurasi sampel NGINX yang digunakan dengan menggunakan image NGINX Docker. Untuk informasi selengkapnya, lihat Cara menggunakan image resmi NGINX Docker dalam dokumentasi Docker.

DevOps insinyur

Menerapkan file manifes penerapan Kubernetes.

Jalankan perintah berikut untuk menerapkan file manifes penerapan ke cluster Amazon EKS Anda:

kubectl apply –f <your_deployment_file_name> 

DevOps insinyur

Buat file manifes layanan Kubernetes.

Buat file manifes layanan dengan memodifikasi file contoh berikut sesuai dengan kebutuhan Anda.

apiVersion: v1 kind: Service metadata: name: sample-service annotations: service.beta.kubernetes.io/aws-load-balancer-type: nlb service.beta.kubernetes.io/aws-load-balancer-internal: "true" spec: ports: - port: 80 targetPort: 80 protocol: TCP type: LoadBalancer selector: app: nginx
penting

Pastikan Anda menyertakan yang berikut ini annotations untuk menentukan Network Load Balancer internal:

service.beta.kubernetes.io/aws-load-balancer-type: nlb service.beta.kubernetes.io/aws-load-balancer-internal: "true"
DevOps insinyur

Menerapkan file manifes layanan Kubernetes.

Jalankan perintah berikut untuk menerapkan file manifes layanan ke cluster Amazon EKS Anda:

kubectl apply -f <your_service_file_name>

DevOps insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Rekam nama Network Load Balancer.

Jalankan perintah berikut untuk mengambil nama Network Load Balancer:

kubectl get svc sample-service -o wide

Rekam nama Network Load Balancer, yang diperlukan untuk membuat titik PrivateLink akhir AWS.

DevOps insinyur

Buat PrivateLink titik akhir AWS.

Masuk ke AWS Management Console, buka konsol Amazon VPC, lalu buat titik akhir PrivateLink AWS. Kaitkan titik akhir ini dengan Network Load Balancer, ini membuat aplikasi tersedia secara pribadi bagi pelanggan. Untuk informasi selengkapnya, lihat layanan titik akhir VPC (AWS PrivateLink) di dokumentasi Amazon VPC.

penting

Jika akun konsumen memerlukan akses ke aplikasi, ID akun AWS akun konsumen harus ditambahkan ke daftar prinsipal yang diizinkan untuk konfigurasi titik akhir PrivateLink AWS. Untuk informasi selengkapnya, lihat Menambahkan dan menghapus izin untuk layanan endpoint Anda di dokumentasi Amazon VPC.

Administrator awan

Buat VPC endpoint

Di konsol Amazon VPC, pilih Endpoint Services, lalu pilih Create Endpoint Service. Buat titik akhir VPC untuk titik akhir AWS. PrivateLink

Nama domain (FQDN) yang sepenuhnya memenuhi syarat dari titik akhir VPC menunjuk ke FQDN untuk titik akhir AWS. PrivateLink Ini menciptakan sebuah elastic network interface ke layanan endpoint VPC yang dapat diakses oleh endpoint DNS. 

Administrator awan