Siapkan repositori bagan Helm v3 di Amazon S3 - AWS Prescriptive Guidance

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

Siapkan repositori bagan Helm v3 di Amazon S3

Abhishek Sharma, Amazon Web Services

Ringkasan

Pemberitahuan: AWS CodeCommit tidak lagi tersedia untuk pelanggan baru. Pelanggan AWS yang sudah ada CodeCommit dapat terus menggunakan layanan seperti biasa. Pelajari selengkapnya

Pola ini membantu Anda mengelola bagan Helm v3 secara efisien dengan mengintegrasikan repositori Helm v3 ke dalam Amazon Simple Storage Service (Amazon S3) Service (Amazon S3) di Amazon Web Services (AWS) Cloud. Untuk menggunakan pola ini, Anda harus akrab dengan Kubernetes dan Helm, yang merupakan manajer paket Kubernetes. Menggunakan repositori Helm untuk menyimpan bagan dan versi bagan kontrol dapat meningkatkan mean time to restore (MTTR) selama pemadaman. 

Pola ini menggunakan AWS CodeCommit untuk pembuatan repositori Helm, dan menggunakan bucket S3 sebagai repositori bagan Helm, sehingga bagan dapat dikelola dan diakses secara terpusat oleh pengembang di seluruh organisasi.

Prasyarat dan batasan

Prasyarat

  • Akun AWS yang aktif

  • Python versi 2.7.12 atau yang lebih baru

  • pip

  • Virtual private cloud (VPC) dengan subnet dan instans Amazon Elastic Compute Cloud (Amazon) EC2 

  • Git diinstal pada EC2 instance

  • Akses AWS Identity and Access Management (IAM) untuk membuat bucket S3

  • Akses IAM (terprogram atau peran) ke Amazon S3 dari mesin klien

  • CodeCommit Repositori AWS

  • Antarmuka Baris Perintah AWS (AWS CLI)

Versi produk

  • Helm v3

  • Python versi 2.7.12 atau yang lebih baru

Arsitektur

Tumpukan teknologi target

  • Amazon S3

  • AWS CodeCommit

  • Helm

  • Kubectl

  • Python dan pip

  • Git

  • plugin helm-s3

Arsitektur target

Repositori helm di CodeCommit, EC2 misalnya dengan Helm, Git, dan helm-s3, bagan Helm di Amazon S3.

Otomatisasi dan skala

  • Anda dapat memasukkan Helm ke dalam alat otomatisasi integration/continuous pengiriman berkelanjutan (CI/CD) yang ada untuk mengotomatiskan pengemasan dan kontrol versi bagan Helm (di luar cakupan pola ini).

  • GitVersion atau nomor build Jenkins dapat digunakan untuk mengotomatiskan kontrol versi grafik.

Alat

  • Helm - Helm adalah manajer paket untuk Kubernetes yang membantu Anda menginstal dan mengelola aplikasi di klaster Kubernetes Anda.

  • Amazon S3 - Amazon Simple Storage Service (Amazon S3) Simple Storage Service adalah penyimpanan untuk internet. Anda dapat menggunakan Amazon S3 untuk menyimpan dan mengambil data sebanyak apa pun kapan pun, dari mana pun di web.

  • plugin helm-s3 - Plugin helm-s3 mendukung interaksi dengan Amazon S3. Ini dapat digunakan dengan Helm v2 atau Helm v3.

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Instal klien Helm v3.

Untuk mengunduh dan menginstal klien Helm di sistem lokal Anda, jalankan perintah berikut: sudo curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Administrator Cloud, DevOps Insinyur

Validasi instalasi Helm.

Untuk memvalidasi klien Helm, jalankan perintah berikut: helm version --short

Administrator Cloud, DevOps Insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Buat bucket S3 untuk bagan Helm.

Buat bucket S3 yang unik. Di ember, buat folder bernamastable/myapp. Contoh dalam pola ini digunakan s3://my-helm-charts/stable/myapp sebagai repositori grafik target.

Administrator Cloud, DevOps Insinyur

Instal plugin helm-s3 untuk Amazon S3.

Untuk menginstal plugin helm-s3 di mesin klien Anda, jalankan perintah berikut: helm plugin install https://github.com/hypnoglow/helm-s3.git

Administrator Cloud, DevOps Insinyur

Inisialisasi repositori Amazon S3 Helm.

Untuk menginisialisasi folder target sebagai repositori Helm, gunakan perintah berikut: helm s3 init s3://my-helm-charts/stable/myapp 

Perintah membuat index.yaml file di target untuk melacak semua informasi bagan yang disimpan di lokasi itu.

Administrator Cloud, DevOps Insinyur

Verifikasi repositori Helm yang baru dibuat.

Untuk memverifikasi bahwa index.yaml file telah dibuat, jalankan perintah berikut: aws s3 ls s3://my-helm-charts/stable/myapp/

Administrator Cloud, DevOps Insinyur

Tambahkan repositori Amazon S3 ke Helm di mesin klien.

Untuk menambahkan alias repositori target ke mesin klien Helm, gunakan perintah berikut: helm repo add stable-myapp s3://my-helm-charts/stable/myapp/

Administrator Cloud, DevOps Insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Kloning bagan Helm Anda.

Jika tidak ada bagan Helm lokal yang ada di CodeCommit repositori Anda, kloningnya dari GitHub repo Anda dengan menjalankan perintah berikut: git clone <url_of_your_helm_source_code>.git

Administrator Cloud, DevOps Insinyur

Package bagan Helm lokal.

Untuk mengemas bagan yang Anda buat atau kloning, gunakan perintah berikut: helm package ./my-app  

Sebagai contoh, pola ini menggunakan my-app grafik. Perintah mengemas semua isi folder my-app bagan ke dalam file arsip, yang diberi nama menggunakan nomor versi yang disebutkan dalam Chart.yaml file.

Administrator Cloud, DevOps Insinyur

Simpan paket lokal di repositori Amazon S3 Helm.

Untuk mengunggah paket lokal ke repositori Helm di Amazon S3, jalankan perintah berikut: helm s3 push ./my-app-0.1.0.tgz stable-myapp

Dalam perintah, my-app adalah nama folder bagan Anda, 0.1.0 adalah versi bagan yang disebutkan diChart.yaml, dan stable-myapp merupakan alias repositori target.

Administrator Cloud, DevOps Insinyur

Cari bagan Helm.

Untuk mengonfirmasi bahwa bagan muncul baik secara lokal maupun di repositori Helm Amazon S3, jalankan perintah berikut: helm search repo stable-myapp

Administrator Cloud, DevOps Insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Memodifikasi dan mengemas bagan.

Divalues.yaml, atur replicaCount nilainya ke1, lalu kemas bagan, kali ini ubah versi Chart.yaml menjadi0.1.1. Kontrol versi idealnya dicapai melalui otomatisasi dengan menggunakan alat seperti GitVersion atau Jenkins membangun nomor dalam CI/CD pipeline. Mengotomatiskan nomor versi berada di luar cakupan pola ini. Untuk mengemas bagan, jalankan perintah berikut: helm package ./my-app/

Administrator Cloud, DevOps Insinyur

Dorong versi baru ke repositori Helm di Amazon S3.

Untuk mendorong paket baru, versi 0.1.1, ke repositori my-helm-chartsHelm di Amazon S3, jalankan perintah berikut: helm s3 push ./my-app-0.1.1.tgz stable-myapp

Administrator Cloud, DevOps Insinyur

Verifikasi bagan Helm yang diperbarui.

Untuk mengonfirmasi bahwa bagan yang diperbarui muncul baik secara lokal maupun di repositori Helm Amazon S3, jalankan perintah berikut.

helm repo update

helm search repo stable-myapp

Administrator Cloud, DevOps Insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Cari semua versi bagan aplikasi saya.

Untuk melihat semua versi bagan yang tersedia, jalankan perintah berikut dengan --versions bendera: helm search repo my-app --versions 

Tanpa tanda, Helm secara default menampilkan versi bagan terbaru yang diunggah.

DevOps Insinyur

Instal bagan dari repositori Amazon S3 Helm.

Instalasi otomatis berada di luar cakupan untuk pola ini, tetapi Anda dapat menginstal secara manual. Hasil pencarian dari tugas sebelumnya menunjukkan beberapa versi my-app bagan. Untuk menginstal versi baru (0.1.1) dari repositori Amazon S3 Helm, gunakan perintah berikut: helm upgrade --install my-app-release stable-myapp/my-app --version 0.1.1 --namespace dev

DevOps Insinyur
TugasDeskripsiKeterampilan yang dibutuhkan

Tinjau detail untuk revisi tertentu.

Rollback otomatis berada di luar cakupan untuk pola ini, tetapi Anda dapat memutar kembali ke versi sebelumnya secara manual. Sebelum Anda beralih atau memutar kembali ke versi yang berfungsi, dan untuk lapisan validasi tambahan sebelum menginstal revisi, lihat nilai mana yang diteruskan ke setiap revisi dengan menggunakan perintah berikut: helm get values --revision=2 my-app-release

DevOps Insinyur

Gulung kembali ke versi sebelumnya.

Rollback otomatis berada di luar cakupan untuk pola ini. Untuk memutar kembali ke revisi sebelumnya secara manual, gunakan perintah berikut: helm rollback my-app-release 1 

Contoh ini bergulir kembali ke nomor revisi 1.

DevOps Insinyur

Sumber daya terkait