Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menerapkan cluster CockroachDB di Amazon EKS dengan menggunakan Terraform
Sandip Gangapadhyay dan Kalyan Senthilnathan, Amazon Web Services
Ringkasan
Pola ini menyediakan modul HashiCorp Terraform untuk menerapkan cluster CockroachDB multi-node di Amazon Elastic Kubernetes
Audiens yang dituju
Untuk menerapkan pola ini, kami sarankan Anda terbiasa dengan hal-hal berikut:
HashiCorp Konsep dan infrastruktur Terraform sebagai praktik kode (IAc)
Layanan AWS, khususnya Amazon EKS
Dasar-dasar Kubernetes, termasuk, operator StatefulSets, dan konfigurasi layanan
Database SQL terdistribusi
Konsep keamanan, seperti manajemen sertifikat TLS.
DevOps praktik, CI/CD alur kerja, dan otomatisasi infrastruktur
Prasyarat dan batasan
Prasyarat
Aktif Akun AWS
Izin untuk menyebarkan sumber daya di klaster Amazon EKS
Cluster Amazon EKS versi v1.23 atau yang lebih baru, dengan node berlabel
node=cockroachdbAmazon Elastic Block Store Container Storage Interface (CSI) Driver
versi 1.19.0 atau yang lebih baru, diinstal di cluster Amazon EKS Git, diinstal
AWS Command Line Interface (AWS CLI) versi 2.9.18 atau yang lebih baru, diinstal dan dikonfigurasi
Batasan
Operator CockroachDB Kubernetes tidak mendukung beberapa klaster Kubernetes untuk penerapan Multi-region. Untuk batasan lebih lanjut, lihat Orchestrate CockroachDB Across Multiple Kubernetes Clusters (dokumentasi CockroachDB) dan CockroachDB Kubernetes Operator
(). GitHub Pemangkasan otomatis klaim volume persisten (PVCs) saat ini dinonaktifkan secara default. Ini berarti bahwa setelah menonaktifkan dan menghapus node, operator tidak akan menghapus volume persisten yang dipasang ke podnya. Untuk informasi lebih lanjut, lihat Pemangkasan PVC otomatis dalam dokumentasi
CockroachDB.
Versi produk
CockroachDB versi 22.2.2
Arsitektur
Arsitektur target
Diagram berikut menunjukkan penyebaran CockroachDB yang sangat tersedia di tiga AWS Availability Zone dalam virtual private cloud (VPC). Pod CockroachDB dikelola melalui Amazon EKS. Arsitektur menggambarkan bagaimana pengguna mengakses database melalui Network Load Balancer, yang mendistribusikan lalu lintas ke pod CockroachDB. Pod berjalan di instans Amazon Elastic Compute Cloud (Amazon EC2) di setiap Availability Zone, yang memberikan ketahanan dan toleransi kesalahan.

Sumber daya dibuat
Menerapkan modul Terraform yang digunakan dalam pola ini menciptakan sumber daya berikut:
Network Load Balancer - Sumber daya ini berfungsi sebagai titik masuk untuk permintaan klien dan mendistribusikan lalu lintas secara merata di seluruh instance CockroachDB.
CockroachDB StatefulSet — StatefulSet Mendefinisikan keadaan yang diinginkan dari penyebaran CockroachDB dalam cluster Amazon EKS. Ini mengelola penyebaran, penskalaan, dan pembaruan pod CockroachDB yang dipesan.
Pod CockroachDB — Pod ini adalah contoh dari CockroachDB yang berjalan sebagai kontainer di dalam pod Kubernetes. Pod ini menyimpan dan mengelola data di seluruh cluster terdistribusi.
Database CockroachDB — Ini adalah database terdistribusi yang dikelola oleh CockroachDB, mencakup beberapa pod. Ini mereplikasi data untuk ketersediaan tinggi, toleransi kesalahan, dan kinerja.
Alat
Layanan AWS
AWS Command Line Interface (AWS CLI) adalah alat open source yang membantu Anda berinteraksi Layanan AWS melalui perintah di shell baris perintah Anda.
Amazon Elastic Kubernetes Service (Amazon EKS) membantu Anda menjalankan AWS Kubernetes tanpa perlu menginstal atau memelihara control plane atau node Kubernetes Anda sendiri.
Alat-alat lainnya
HashiCorp Terraform
adalah alat infrastruktur sebagai kode (IAc) yang membantu Anda menggunakan kode untuk menyediakan dan mengelola infrastruktur dan sumber daya cloud. kubectl
adalah antarmuka baris perintah yang membantu Anda menjalankan perintah terhadap klaster Kubernetes.
Repositori kode
Kode untuk pola ini tersedia di cluster GitHub Deploy a CockroachDB di Amazon EKS menggunakan repositori Terraform
modulesfolder - Folder ini berisi modul Terraform untuk CockroachDBmainfolder - Folder ini berisi modul root yang memanggil modul anak CockroachDB untuk membuat cluster database CockroachDB.
Praktik terbaik
Jangan mengurangi hingga kurang dari tiga node. Ini dianggap sebagai anti-pola pada CockroachDB dan dapat menyebabkan kesalahan. Untuk informasi selengkapnya, lihat Penskalaan Cluster dalam dokumentasi
CockroachDB. Terapkan penskalaan otomatis Amazon EKS dengan menggunakan Karpernter atau Cluster Autoscaler. Hal ini memungkinkan cluster CockroachDB untuk skala horizontal dan node baru secara otomatis. Untuk informasi selengkapnya, lihat Komputasi klaster skala dengan Karpenter dan Cluster Autoscaler di dokumentasi Amazon EKS.
catatan
Karena aturan penjadwalan
podAntiAffinityKubernetes, hanya satu pod CockroachDB yang dapat dijadwalkan dalam satu node Amazon EKS.Untuk praktik terbaik keamanan Amazon EKS, lihat Praktik Terbaik untuk Keamanan dalam dokumentasi Amazon EKS.
Untuk praktik terbaik kinerja SQL untuk CockroachDB, lihat Praktik Terbaik Kinerja SQL
dalam dokumentasi CockroachDB. Untuk informasi selengkapnya tentang menyiapkan backend jarak jauh Amazon Simple Storage Service (Amazon S3) untuk file status Terraform, lihat Amazon
S3 di dokumentasi Terraform.
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Kloning repositori kode. | Masukkan perintah berikut untuk mengkloning repositori:
| DevOps insinyur, Git |
Perbarui variabel Terraform. |
| DevOps insinyur, Terraform |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Menyebarkan infrastruktur. |
| DevOps insinyur, Terraform |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Verifikasi pembuatan sumber daya. |
| DevOps insinyur |
(Opsional) Skala naik atau turun. |
| DevOps insinyur, Terraform |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Hapus infrastruktur. | Menskalakan node ke
| Terraform |
Pemecahan masalah
| Isu | Solusi |
|---|---|
Kesalahan memvalidasi kredensyal penyedia | Saat Anda menjalankan Terraform
Kesalahan ini disebabkan oleh kedaluwarsa token keamanan untuk kredensil yang digunakan dalam konfigurasi mesin lokal Anda. Untuk petunjuk tentang cara mengatasi kesalahan, lihat Mengatur dan melihat pengaturan konfigurasi dalam AWS CLI dokumentasi. |
Pod CockroachDB dalam status tertunda |
|
Sumber daya terkait
Lampiran
Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip