View a markdown version of this page

Tutorial: Terapkan ke Amazon EKS dengan CodePipeline - AWS CodePipeline

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

Tutorial: Terapkan ke Amazon EKS dengan CodePipeline

Tutorial ini membantu Anda membuat tindakan penerapan CodePipeline yang menerapkan kode Anda ke cluster yang telah Anda konfigurasikan di Amazon EKS.

Tindakan EKS mendukung klaster EKS publik dan swasta. Cluster pribadi adalah jenis yang direkomendasikan oleh EKS; Namun, kedua jenis didukung.

catatan

Sebagai bagian dari pembuatan pipeline di konsol, bucket artefak S3 akan digunakan oleh CodePipeline untuk artefak. (Ini berbeda dari bucket yang digunakan untuk aksi sumber S3.) Jika bucket artefak S3 berada di akun yang berbeda dari akun untuk pipeline Anda, pastikan bucket artefak S3 dimiliki oleh Akun AWS itu aman dan dapat diandalkan.

catatan

Tindakan ini menggunakan CodePipeline CodeBuild komputasi terkelola untuk menjalankan perintah di lingkungan build. Menjalankan tindakan perintah akan dikenakan biaya terpisah. AWS CodeBuild

catatan

T EKS indakan penerapan hanya tersedia untuk pipeline tipe V2.

Prasyarat

Ada beberapa sumber daya yang harus Anda miliki sebelum Anda dapat menggunakan tutorial ini untuk membuat pipeline CD Anda. Berikut adalah hal-hal yang Anda butuhkan untuk memulai:

catatan

Semua sumber daya ini harus dibuat dalam Wilayah yang sama AWS .

  • Repositori kontrol sumber (tutorial ini menggunakan GitHub) di mana Anda akan menambahkan deployment.yaml file sampel.

  • Anda harus menggunakan peran CodePipeline layanan yang ada yang akan Anda perbarui dengan izin untuk tindakan ini menggunakan Langkah 3: Memperbarui kebijakan peran CodePipeline layanan di IAM di bawah ini. Izin yang diperlukan didasarkan pada jenis cluster yang Anda buat. Untuk informasi selengkapnya, lihat Izin kebijakan peran layanan.

  • Tag gambar dan repositori yang berfungsi yang telah Anda dorong ke ECR atau repositori gambar Anda.

Setelah Anda memenuhi prasyarat ini, Anda dapat melanjutkan dengan tutorial dan membuat pipeline CD Anda.

Langkah 1: (Opsional) Buat cluster di Amazon EKS

Anda dapat memilih untuk membuat cluster EKS dengan titik akhir publik atau pribadi.

Dalam langkah-langkah berikut, Anda membuat cluster publik atau pribadi di EKS. Langkah ini opsional jika Anda telah membuat cluster Anda.

Buat cluster publik di Amazon EKS

Pada langkah ini, Anda membuat cluster di EKS.

Buat cluster publik
  1. Buka konsol EKS, lalu pilih Buat cluster.

  2. Di Nama, beri nama cluster Anda. Pilih Berikutnya.

  3. Pilih Buat.

Buat cluster pribadi di Amazon EKS

Jika Anda memilih untuk membuat cluster dengan titik akhir pribadi, pastikan untuk melampirkan subnet pribadi saja, dan pastikan mereka memiliki koneksi internet.

Ikuti lima sub-langkah berikutnya untuk membuat cluster dengan titik akhir pribadi.

Buat VPC di konsol
  1. Buka konsol VPC, lalu pilih Buat V PC.

  2. Di bawah pengaturan VPC, pilih VPC dan lainnya.

  3. Pilih untuk membuat satu subnet publik dan 4 subnet pribadi. Pilih Buat VPC.

  4. Pada halaman subnet, pilih Pri badi.

Tentukan subnet pribadi di VPC Anda
  1. Arahkan ke VPC Anda dan pilih ID VPC untuk membuka halaman detail VPC.

  2. Pada halaman detail VPC, pilih tab Peta sumber daya.

  3. Lihat diagram dan catat subnet pribadi Anda. Subnet ditampilkan dengan label untuk menunjukkan status publik atau pribadi, dan setiap subnet dipetakan ke tabel rute.

    Diagram konsol yang menunjukkan subnet dan peta sumber daya untuk VPC.

    Perhatikan bahwa cluster pribadi akan memiliki semua subnet pribadi.

  4. Buat subnet publik untuk meng-host gateway NAT. Anda dapat melampirkan hanya satu gateway internet untuk satu VPC pada suatu waktu.

Buat gateway NAT di subnet publik
  1. Di subnet publik, buat gateway NAT. Arahkan ke konsol VPC, lalu pilih gateway Internet. Pilih Buat gateway internet.

  2. Di Nama, masukkan nama untuk gateway internet Anda. Pilih Buat gateway internet.

Perbarui tabel rute untuk subnet pribadi untuk mengarahkan lalu lintas ke gateway NAT.

Menambahkan gateway NAT ke tabel rute untuk subnet pribadi
  1. Arahkan ke konsol VPC, lalu pilih Su bnets.

  2. Untuk setiap subnet pribadi, pilih dan kemudian pilih tabel rute untuk subnet itu di halaman detail. Pilih Edit tabel rute.

  3. Perbarui tabel rute untuk subnet pribadi untuk mengarahkan lalu lintas internet ke gateway NAT. Pilih Tambahkan rute. Pilih NAT gateway dari opsi untuk ditambahkan. Pilih gateway internet yang Anda buat.

  4. Untuk subnet publik, buat tabel rute khusus. Verifikasi bahwa daftar kontrol akses jaringan (ACL) untuk subnet publik Anda memungkinkan lalu lintas masuk dari subnet pribadi.

  5. Pilih Simpan perubahan.

Pada langkah ini, Anda membuat cluster di EKS.

Buat cluster pribadi
  1. Buka konsol EKS, lalu pilih Buat cluster.

  2. Di Nama, beri nama cluster Anda. Pilih Berikutnya.

  3. Tentukan VPC Anda dan informasi konfigurasi lainnya. Pilih Buat.

Cluster EKS Anda dapat berupa cluster publik atau pribadi. Langkah ini untuk cluster yang HANYA memiliki titik akhir pribadi. Pastikan bahwa jika cluster Anda bersifat pribadi.

Langkah 2: Konfigurasikan klaster pribadi Anda di Amazon EKS

Langkah ini hanya berlaku jika Anda telah membuat cluster pribadi. Langkah ini untuk cluster yang HANYA memiliki titik akhir pribadi.

Konfigurasikan cluster Anda
  1. Lampirkan subnet pribadi hanya di cluster EKS di bawah tab Jaringan. Lampirkan subnet pribadi yang ditangkap di bagian T entukan subnet pribadi di VPC Anda di bawah. Langkah 1: (Opsional) Buat cluster di Amazon EKS

  2. Pastikan subnet pribadi memiliki akses ke internet karena CodePipeline menyimpan dan mengambil artefak dari bucket artefak S3 untuk pipeline Anda.

Langkah 3: Memperbarui kebijakan peran CodePipeline layanan di IAM

Pada langkah ini, Anda akan memperbarui peran CodePipeline layanan yang ada, seperticp-service-role, dengan izin yang diperlukan CodePipeline untuk terhubung dengan cluster Anda. Jika Anda tidak memiliki peran yang ada, buat yang baru.

Perbarui peran CodePipeline layanan Anda dengan langkah-langkah berikut.

Untuk memperbarui kebijakan peran CodePipeline layanan Anda
  1. Buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Dari dasbor konsol, pilih Per an.

  3. Cari peran CodePipeline layanan Anda, seperticp-service-role.

  4. Tambahkan kebijakan sebaris baru.

  5. Di editor Kebijakan, masukkan yang berikut ini.

    • Untuk cluster publik, tambahkan izin berikut.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "EksClusterPolicy", "Effect": "Allow", "Action": "eks:DescribeCluster", "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster" }, { "Sid": "EksVpcClusterPolicy", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": [ "*" ] } ] }
    • Untuk cluster pribadi, tambahkan izin berikut. Cluster pribadi akan memerlukan izin tambahan untuk VPC Anda, jika berlaku.

      JSON
      { "Version":"2012-10-17", "Statement": [ { "Sid": "EksClusterPolicy", "Effect": "Allow", "Action": "eks:DescribeCluster", "Resource": "arn:aws:eks:us-east-1:111122223333:cluster/my-cluster" }, { "Sid": "EksVpcClusterPolicy", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": "ec2:CreateNetworkInterface", "Resource": "*", "Condition": { "StringEqualsIfExists": { "ec2:Subnet": [ "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-03ebd65daeEXAMPLE", "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0e377f6036EXAMPLE", "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE", "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE" ] } } }, { "Effect": "Allow", "Action": "ec2:CreateNetworkInterfacePermission", "Resource": "*", "Condition": { "ArnEquals": { "ec2:Subnet": [ "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-03ebd65daeEXAMPLE", "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-0e377f6036EXAMPLE", "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-0db658ba1cEXAMPLE", "arn:aws:ec2:us-east-1:111122223333:subnet/subnet-0db658ba1cEXAMPLE" ] } } }, { "Effect": "Allow", "Action": "ec2:DeleteNetworkInterface", "Resource": "*", "Condition": { "StringEqualsIfExists": { "ec2:Subnet": [ "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-03ebd65daeEXAMPLE", "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0e377f6036EXAMPLE", "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE", "arn:aws:ec2:us-east-1:ACCOUNT-ID:subnet/subnet-0db658ba1cEXAMPLE" ] } } } ] }
  6. Pilih Perbarui kebijakan.

Langkah 4: Buat entri akses untuk peran CodePipeline layanan

Pada langkah ini, Anda membuat entri akses pada cluster Anda yang akan menambahkan peran CodePipeline layanan yang Anda perbarui di Langkah 3, bersama dengan kebijakan akses terkelola.

  1. Buka konsol EKS dan navigasikan ke cluster Anda.

  2. Pilih tab Akses.

  3. Di bawah entri akses IAM, pilih Buat entr i akses.

  4. Di ARN utama IAM, masukkan peran yang baru saja Anda perbarui untuk tindakan tersebut, seperticp-service-role. Pilih Berikutnya.

  5. Pada halaman Langkah 2: Tambahkan kebijakan akses, di Nama kebijakan, pilih kebijakan terkelola untuk akses, sepertiAmazonEKSClusterAdminPolicy. Pilih Tambahkan kebijakan. Pilih Berikutnya.

    catatan

    Ini adalah kebijakan yang digunakan CodePipeline tindakan untuk berbicara dengan Kubernetes. Sebagai praktik terbaik, untuk mengurangi izin dalam kebijakan Anda dengan hak istimewa paling sedikit daripada kebijakan administratif, lampirkan kebijakan khusus sebagai gantinya.

  6. Pada halaman ulasan, pilih Buat.

Langkah 5: Buat repositori sumber dan tambahkan file konfigurasi bagan Helm

Pada langkah ini, Anda membuat file konfigurasi yang sesuai untuk tindakan Anda (file manifes Kubernetes atau bagan Helm) dan menyimpan file konfigurasi di repositori sumber Anda. Gunakan file yang sesuai untuk konfigurasi Anda. Untuk informasi selengkapnya, lihat https://kubernetes.io/docs/reference/kubectl/quick-reference/ atau https://helm.sh/docs/topics/charts/.

  • Untuk Kubernetes, gunakan file manifes.

  • Untuk Helm, gunakan bagan Helm.

  1. Buat atau gunakan GitHub repositori yang ada.

  2. Buat struktur baru di repositori Anda untuk file bagan Helm Anda seperti yang ditunjukkan pada contoh di bawah ini.

    mychart |-- Chart.yaml |-- charts |-- templates | |-- NOTES.txt | |-- _helpers.tpl | |-- deployment.yaml | |-- ingress.yaml | `-- service.yaml `-- values.yaml
  3. Tambahkan file ke tingkat root repositori Anda.

Langkah 6: Membuat pipeline Anda

Gunakan CodePipeline wizard untuk membuat tahapan pipeline Anda dan menghubungkan repositori sumber Anda.

Untuk membuat alur Anda
  1. Buka CodePipeline konsol di https://console.aws.amazon.com/codepipeline/.

  2. Pada halaman Selamat Datang, halaman Mem ulai, atau halaman Pipelines, pilih Buat pipeline.

  3. Pada Langkah 1: Pilih halaman opsi pembuatan, di bawah Opsi pembuatan, pilih opsi Build custom pipeline. Pilih Berikutnya.

  4. Di Langkah 2: Pilih pengaturan pipa, di Nama Pipeline, masukkanMyEKSPipeline.

  5. CodePipeline menyediakan pipa tipe V1 dan V2, yang berbeda dalam karakteristik dan harga. Jenis V2 adalah satu-satunya jenis yang dapat Anda pilih di konsol. Untuk informasi selengkapnya, lihat Jenis jalur. Untuk informasi tentang penetapan harga untuk CodePipeline, lihat Harga.

  6. Di Peran layanan, pilih peran layanan yang Anda perbarui di Langkah 3.

  7. Biarkan pengaturan di bawah Peng aturan lanj utan pada defaultnya, lalu pilih Ber ikutnya.

  8. Pada Langkah 3: Tambahkan halaman tahap sumber, untuk Penye dia Sumber, pilih untuk membuat koneksi ke GitHub repositori Anda.

  9. Pada Langkah 4: Tambahkan halaman tahap pembuatan, pilih Le wati.

  10. Pada Langkah 5: Tambahkan halaman tahap penerapan, pilih Amazon EKS.

    Terapkan formulir konfigurasi dengan Helm dipilih, menampilkan bidang untuk nama rilis, lokasi bagan, dan opsi lainnya.
    1. Di bawah Jenis konfigurasi Deplo y, pilih Helm.

    2. Di lokasi bagan Helm, masukkan nama rilis, sepertimy-release. Untuk lokasi bagan Helm, masukkan jalur untuk file bagan Helm Anda, sepertimychart.

    3. Pilih Berikutnya.

  11. Pada halaman Langkah 6: Tinjau, tinjau konfigurasi pipeline Anda dan pilih Buat pipeline untuk membuat pipeline.

    Diagram konsol yang menunjukkan proses pipeline yang berhasil dengan tindakan penerapan ditambahkan ke pipeline Anda.
  12. Setelah pipeline berjalan dengan sukses, pilih Lihat detail untuk melihat log pada tindakan untuk melihat output tindakan.