Bantu tingkatkan halaman ini
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
pertimbangan kro untuk EKS
Topik ini mencakup pertimbangan penting untuk menggunakan Kemampuan EKS untuk kro, termasuk kapan harus menggunakan komposisi sumber daya, pola RBAC, dan integrasi dengan kemampuan EKS lainnya.
Kapan menggunakan kro
kro dirancang untuk menciptakan pola infrastruktur yang dapat digunakan kembali dan kustom APIs yang menyederhanakan manajemen sumber daya yang kompleks.
Gunakan kro saat Anda perlu:
-
Buat platform swalayan dengan disederhanakan APIs untuk tim aplikasi
-
Standarisasi pola infrastruktur di seluruh tim (database+cadangan+pemantauan)
-
Kelola dependensi sumber daya dan berikan nilai antar sumber daya
-
Membangun abstraksi kustom yang menyembunyikan kompleksitas implementasi
-
Tulis beberapa sumber daya ACK ke dalam blok bangunan tingkat yang lebih tinggi
-
Aktifkan GitOps alur kerja untuk tumpukan infrastruktur yang kompleks
Jangan gunakan kro saat:
-
Mengelola sumber daya yang sederhana dan mandiri (gunakan sumber daya ACK atau Kubernetes secara langsung)
-
Anda memerlukan logika runtime dinamis (kro bersifat deklaratif, bukan imperatif)
-
Sumber daya tidak memiliki dependensi atau konfigurasi bersama
kro unggul dalam menciptakan “jalur beraspal” - pola yang berpendirian dan dapat digunakan kembali yang memudahkan tim untuk menerapkan infrastruktur kompleks dengan benar.
Pola RBAC
kro memungkinkan pemisahan kekhawatiran antara tim platform yang membuat ResourceGraphDefinitions dan tim aplikasi yang membuat instance.
Tanggung jawab tim platform
Tim platform membuat dan memelihara ResourceGraphDefinitions (RGDs) yang mendefinisikan kustom APIs.
Izin yang dibutuhkan:
-
Buat, perbarui, hapus ResourceGraphDefinitions
-
Mengelola jenis sumber daya yang mendasarinya (Penerapan, Layanan, sumber daya ACK)
-
Akses ke semua ruang nama tempat RGDs akan digunakan
Contoh ClusterRole untuk tim platform:
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: platform-kro-admin rules: - apiGroups: ["kro.run"] resources: ["resourcegraphdefinitions"] verbs: ["*"] - apiGroups: ["*"] resources: ["*"] verbs: ["get", "list", "watch"]
Untuk konfigurasi RBAC mendetail, lihat. Konfigurasikan izin kro
Tanggung jawab tim aplikasi
Tim aplikasi membuat contoh sumber daya khusus yang ditentukan oleh RGDs tanpa perlu memahami kompleksitas yang mendasarinya.
Izin yang dibutuhkan:
-
Membuat, memperbarui, menghapus contoh sumber daya kustom
-
Baca akses ke namespace mereka
-
Tidak ada akses ke sumber daya yang mendasarinya atau RGDs
Manfaat:
-
Tim menggunakan sederhana, tingkat tinggi APIs
-
Tim platform mengontrol detail implementasi
-
Mengurangi risiko kesalahan konfigurasi
-
Orientasi lebih cepat untuk anggota tim baru
Integrasi dengan kemampuan EKS lainnya
Menyusun sumber daya ACK
kro sangat kuat bila dikombinasikan dengan ACK untuk menciptakan pola infrastruktur.
Pola umum:
-
Aplikasi dengan penyimpanan: ember S3+antrian SQS+konfigurasi notifikasi
-
Tumpukan basis data: contoh RDS+grup parameter+grup keamanan+Rahasia Secrets Manager
-
Jaringan: VPC+subnet+tabel rute+grup keamanan+gateway NAT
-
Hitung dengan penyimpanan: EC2 instance+volume EBS+profil instans IAM
kro menangani urutan ketergantungan, meneruskan nilai antara sumber daya (seperti ARNs dan string koneksi), dan mengelola siklus hidup penuh sebagai satu unit.
Untuk contoh penyusunan sumber daya ACK, lihatKonsep ACK.
GitOps dengan Argo CD
Gunakan Kemampuan EKS untuk Argo CD untuk menyebarkan keduanya RGDs dan instance dari repositori Git.
Organisasi repositori:
-
Platform repo: Berisi ResourceGraphDefinitions dikelola oleh tim platform
-
Repo aplikasi: Berisi contoh sumber daya khusus yang dikelola oleh tim aplikasi
-
Repo bersama: Berisi keduanya RGDs dan instance untuk organisasi yang lebih kecil
Pertimbangan:
-
Terapkan RGDs sebelum instance (Gelombang sinkronisasi CD Argo dapat membantu)
-
Gunakan Proyek CD Argo terpisah untuk tim platform dan aplikasi
-
Tim platform mengontrol akses repositori RGD
-
Tim aplikasi memiliki akses hanya-baca ke definisi RGD
Untuk informasi lebih lanjut tentang Argo CD, lihatBekerja dengan Argo CD.
Pengorganisasian ResourceGraphDefinitions
Atur RGDs berdasarkan tujuan, kompleksitas, dan kepemilikan.
Dengan tujuan:
-
Infrastruktur: Tumpukan basis data, jaringan, penyimpanan
-
Aplikasi: Aplikasi web, APIs, pekerjaan batch
-
Platform: Layanan bersama, pemantauan, pencatatan
Dengan kompleksitas:
-
Sederhana: 2-3 sumber daya dengan dependensi minimal
-
Sedang: 5-10 sumber daya dengan beberapa dependensi
-
Kompleks: 10+ sumber daya dengan dependensi kompleks
Konvensi penamaan:
-
Gunakan nama deskriptif:
webapp-with-database,s3-notification-queue -
Sertakan versi dalam nama untuk melanggar perubahan:
webapp-v2 -
Gunakan awalan yang konsisten untuk terkait RGDs:,
platform-app-
Strategi namespace:
-
RGDs memiliki cakupan cluster (bukan namespaced)
-
Instance diberi namespaced
-
Gunakan pemilih namespace RGDs untuk mengontrol tempat instance dapat dibuat
Pembuatan versi dan pembaruan
Rencanakan evolusi RGD dan migrasi instans.
Pembaruan RGD:
-
Perubahan yang tidak melanggar: Perbarui RGD di tempat (tambahkan bidang opsional, sumber daya baru dengan IncludeWhen)
-
Perubahan yang melanggar: Buat RGD baru dengan nama berbeda (webapp-v2)
-
Penghentian: Tandai lama RGDs dengan anotasi, komunikasikan garis waktu migrasi
Migrasi contoh:
-
Buat instance baru dengan RGD yang diperbarui
-
Validasi instance baru bekerja dengan benar
-
Hapus instance lama
-
kro menangani pembaruan sumber daya yang mendasarinya secara otomatis
Praktik terbaik:
-
Uji perubahan RGD di lingkungan non-produksi terlebih dahulu
-
Gunakan versi semantik dalam nama RGD untuk perubahan besar
-
Perubahan pemecahan dokumen dan jalur migrasi
-
Berikan contoh migrasi untuk tim aplikasi
Validasi dan pengujian
Validasi RGDs sebelum menerapkan ke produksi.
Strategi validasi:
-
Validasi skema: kro memvalidasi struktur RGD secara otomatis
-
Instance dry-run: Buat instance pengujian di ruang nama pengembangan
-
Tes integrasi: Verifikasi sumber daya yang disusun bekerja bersama
-
Penegakan kebijakan: Gunakan pengontrol penerimaan untuk menegakkan standar organisasi
Masalah umum untuk diuji:
-
Ketergantungan dan pemesanan sumber daya
-
Nilai yang lewat di antara sumber daya (ekspresi CEL)
-
Inklusi sumber daya bersyarat (IncludeWhen)
-
Perbanyakan status dari sumber daya yang mendasarinya
-
Izin RBAC untuk pembuatan contoh
Dokumentasi hulu
Untuk informasi rinci tentang penggunaan kro:
-
Memulai dengan kro - Creating
ResourceGraphDefinitions -
Ekspresi CEL
- Menulis ekspresi CEL -
Panduan kro
- Pola komposisi lanjutan -
Pemecahan masalah - Pemecahan
masalah dan debugging
Langkah selanjutnya
-
Konfigurasikan izin kro- Konfigurasikan RBAC untuk tim platform dan aplikasi
-
konsep kro- Memahami konsep kro dan siklus hidup sumber daya
-
Memecahkan masalah dengan kemampuan kro- Memecahkan masalah kro
-
Konsep ACK- Pelajari tentang sumber daya ACK untuk komposisi
-
Bekerja dengan Argo CD- Menyebarkan RGDs dan contoh dengan GitOps