Dokumen ini membantu Anda merencanakan, merancang, dan mengimplementasikan migrasi dari lingkungan Kubernetes yang dikelola sendiri ke Google Kubernetes Engine (GKE). Jika tidak dilakukan dengan benar, memindahkan aplikasi dari satu lingkungan ke lingkungan lain dapat menjadi tugas yang menantang, sehingga Anda perlu merencanakan dan menjalankan migrasi dengan hati-hati.
Dokumen ini adalah bagian dari rangkaian multi-bagian tentang migrasi ke Google Cloud. Jika Anda tertarik dengan ringkasan seri ini, lihat Bermigrasi ke Google Cloud: Memilih jalur migrasi Anda.
Dokumen ini adalah bagian dari rangkaian yang membahas cara memigrasikan container ke Google Cloud:
- Migrasikan container ke Google Cloud: Memigrasikan Kubernetes ke GKE (dokumen ini)
- Memigrasikan container ke Google Cloud: Migrasikan ke lingkungan GKE baru
- Memigrasikan container ke Google Cloud: Bermigrasi dari OpenShift ke GKE Enterprise
Dokumen ini berguna jika Anda berencana bermigrasi dari lingkungan Kubernetes yang dikelola sendiri ke GKE. Lingkungan Anda mungkin berjalan di lingkungan lokal, di lingkungan hosting pribadi, atau di penyedia cloud lainnya. Dokumen ini juga berguna jika Anda mengevaluasi peluang untuk bermigrasi dan ingin mempelajari kemungkinan tampilannya
Dengan menggunakan GKE, Anda akan mendapatkan manfaat berikut:
- Anda tidak perlu mengelola node bidang kontrol (master).
- Anda dapat menggunakan keahlian Google untuk keamanan, jaringan, upgrade Kubernetes, dan penyediaan otomatis node.
- Anda dapat menskalakan cluster secara otomatis dengan menambahkan node atau dengan menyesuaikan batas permintaan CPU dan memori untuk Pod.
Diagram berikut menggambarkan jalur perjalanan migrasi Anda.
Selama setiap langkah migrasi, Anda akan mengikuti fase yang ditentukan dalam Migrate to Google Cloud: Get started:
- Menilai dan menemukan workload Anda.
- Merencanakan dan membangun fondasi.
- Men-deploy workload Anda
- Mengoptimalkan lingkungan Anda.
Evaluasi lingkungan Anda
Pada fase penilaian, Anda akan menentukan persyaratan dan dependensi untuk memigrasikan lingkungan Kubernetes yang dikelola sendiri ke GKE:
- Buat inventaris aplikasi yang komprehensif.
- Buat katalog aplikasi Anda sesuai dengan properti dan dependensinya.
- Latih dan ajari tim Anda di Google Cloud.
- Buat eksperimen dan bukti konsep di Google Cloud.
- Hitung total biaya kepemilikan (TCO) lingkungan target.
- Pilih beban kerja yang ingin Anda migrasikan terlebih dahulu.
Bagian berikut bergantung pada Bermigrasi ke Google Cloud: Menilai dan menemukan workload Anda.
Membangun inventaris
Untuk menentukan cakupan migrasi, Anda harus memahami lingkungan Kubernetes saat ini. Pertama-tama, kumpulkan informasi tentang cluster, lalu fokuskan pada workload yang di-deploy di cluster tersebut dan dependensi workload Anda. Pada akhir fase penilaian, Anda memiliki dua inventaris: satu untuk cluster Anda, dan satu untuk workload yang di-deploy di cluster tersebut.
Untuk mem-build inventaris cluster Anda, pertimbangkan hal berikut untuk setiap cluster:
- Jumlah dan jenis node. Setelah mengetahui jumlah node dan karakteristik setiap node yang Anda miliki di lingkungan saat ini, Anda dapat menyesuaikan ukuran cluster saat berpindah ke GKE. Node di lingkungan baru Anda mungkin berjalan pada generasi arsitektur hardware yang berbeda dengan yang Anda gunakan di lingkungan. Performa setiap pembuatan arsitektur akan berbeda, sehingga jumlah node yang Anda perlukan di lingkungan baru mungkin berbeda dari lingkungan Anda. Evaluasi semua jenis hardware yang Anda gunakan di node, seperti perangkat penyimpanan, GPU, dan TPU berperforma tinggi.
- Cluster internal atau eksternal. Evaluasi aktor mana, baik dari internal ke lingkungan Anda atau eksternal, yang terpapar oleh setiap klaster. Untuk mendukung kasus penggunaan Anda, evaluasi ini mencakup workload yang berjalan di cluster, dan antarmuka yang berinteraksi dengan cluster Anda.
- Multi-tenancy. Jika Anda mengelola cluster multi-tenant di lingkungan Anda, nilai apakah cluster tersebut berfungsi di lingkungan Google Cloud yang baru. Sekarang adalah saat yang tepat untuk mengevaluasi cara meningkatkan cluster multi-tenant Anda karena strategi multi-tenancy Anda memengaruhi cara Anda membangun fondasi di Google Cloud.
- Versi Kubernetes. Kumpulkan informasi tentang versi Kubernetes dari cluster Anda untuk menilai apakah ada ketidakcocokan antara versi tersebut dan yang tersedia di GKE. Jika menjalankan versi yang lebih lama atau yang baru dirilis, Anda mungkin menggunakan fitur yang tidak tersedia di GKE. Fitur tersebut mungkin tidak digunakan lagi, atau versi Kubernetes yang mengirimkannya belum tersedia di GKE.
- Siklus upgrade Kubernetes. Untuk mempertahankan lingkungan yang andal, pahami cara Anda menangani upgrade Kubernetes dan hubungan siklus upgrade Anda dengan upgrade GKE.
- Kumpulan Node. Jika menggunakan bentuk pengelompokan node apa pun, Anda mungkin perlu mempertimbangkan cara pengelompokan ini dipetakan ke konsep kumpulan node di GKE karena kriteria pengelompokan Anda mungkin tidak sesuai untuk GKE.
- Inisialisasi node. Lakukan penilaian terhadap cara Anda menginisialisasi setiap node sebelum menandainya sebagai tersedia untuk menjalankan workload, sehingga Anda dapat mentransfer prosedur inisialisasi tersebut ke GKE.
Item berikut yang Anda nilai dalam inventaris berfokus pada keamanan infrastruktur dan cluster Kubernetes Anda:
- Namespaces. Jika Anda menggunakan Namespaces Kubernetes di cluster Anda untuk memisahkan resource secara logis dengan menilai, resource mana yang ada di setiap Namespace, dan pahami alasan Anda membuat pemisahan ini. Misalnya, Anda mungkin menggunakan Namespace sebagai bagian dari strategi multi-tenancy. Anda mungkin memiliki beban kerja yang di-deploy di Namespace yang dicadangkan untuk komponen sistem Kubernetes, dan Anda mungkin tidak memiliki banyak kontrol di GKE.
- Kontrol akses berbasis peran (RBAC). Jika Anda menggunakan otorisasi RBAC di cluster, cantumkan deskripsi semua ClusterRoles dan ClusterRoleBindings yang Anda konfigurasi di cluster Anda.
- Kebijakan jaringan. Catat semua kebijakan jaringan yang Anda konfigurasi di cluster, dan pahami cara kerja kebijakan jaringan di GKE.
- Konteks keamanan pod. Catat informasi tentang yang konteks keamanan Pod telah Anda konfigurasi di cluster dan pelajari cara kerjanya di GKE.
- Akun layanan. Jika ada proses di cluster Anda yang berinteraksi dengan server Kubernetes API, ambil informasi tentang akun layanan yang mereka gunakan.
Setelah menyelesaikan inventaris cluster Kubernetes dan menilai keamanan lingkungan Anda, bangun inventaris workload yang di-deploy di cluster tersebut. Saat mengevaluasi beban kerja, kumpulkan informasi tentang aspek-aspek berikut:
- Pod dan pengontrol. Untuk mengukur cluster di lingkungan baru Anda, nilai jumlah instance dari setiap beban kerja yang telah di-deploy, dan apakah Anda menggunakan Kuota resource dan menghitung batas konsumsi resource. Kumpulkan informasi tentang beban kerja yang berjalan di node bidang kontrol setiap cluster dan pengontrol yang digunakan oleh setiap beban kerja. Untuk contoh, berapa banyak Deployments yang Anda gunakan? Berapa banyak DaemonSets yang Anda gunakan?
- Tugas dan CronJobs. Cluster dan beban kerja Anda mungkin perlu menjalankan Tugas atau CronJobs sebagai bagian dari prosedur inisialisasi atau operasinya. Menilai jumlah instance Lowongan dan CronJobs yang telah Anda deploy, serta kriteria penyelesaian dan tanggung jawab untuk setiap instance.
- Autoscaler Kubernetes. Untuk memigrasikan kebijakan penskalaan otomatis di lingkungan baru, pelajari cara Autoscaler Pod Horizontal, Autoscaler Pod Vertikal, dan Autoscaler Pod Multidimensi di GKE.
- Workload stateful dan stateless. Workload stateless tidak menyimpan data atau status dalam cluster atau ke penyimpanan persisten. Aplikasi stateful menyimpan data untuk digunakan nanti. Untuk setiap beban kerja, nilai komponen mana yang stateless dan stateful, karena memigrasikan stateful workloads biasanya lebih sulit daripada memigrasikan workload stateless.
- Fitur Kubernetes. Dari inventaris cluster, Anda tahu versi Kubernetes mana yang dijalankan oleh setiap cluster. Tinjau catatan rilis setiap versi Kubernetes untuk mengetahui fitur mana yang dikirimkan dan fitur mana yang tidak digunakan lagi. Kemudian nilai workload Anda berdasarkan fitur Kubernetes yang Anda perlukan. Tujuan tugas ini adalah untuk mengetahui apakah Anda menggunakan fitur yang tidak digunakan lagi atau fitur yang belum tersedia di GKE. Jika Anda menemukan fitur yang tidak tersedia, beralihlah dari fitur yang tidak digunakan lagi dan gunakan fitur baru saat tersedia di GKE.
- Penyimpanan. Untuk workload stateful, nilai apakah workload tersebut menggunakan PersistenceVolumeClaims. Mencantumkan semua persyaratan penyimpanan, seperti ukuran dan mode akses, serta cara PersistenceVolumeClaims ini dipetakan ke PersistenceVolumes. Untuk memperhitungkan pertumbuhan di masa mendatang, nilai apakah Anda perlu memperluas PersistenceVolumeClaim.
- Konfigurasi dan injeksi secret. Untuk menghindari mem-build ulang artefak yang dapat di-deploy setiap kali ada perubahan dalam konfigurasi lingkungan Anda, masukkan konfigurasi dan secret ke dalam Pod menggunakan ConfigMaps and Secrets. Untuk setiap beban kerja, nilai ConfigMaps dan Rahasia mana yang digunakan workload, dan cara Anda mengisi objek tersebut.
- dependensi berurutan. Workload Anda mungkin tidak bekerja secara isolasi. Komponen tersebut mungkin memiliki dependensi, baik dari internal ke cluster, maupun dari sistem eksternal. Untuk setiap beban kerja, catat dependensinya, dan apakah beban kerja Anda memiliki toleransi saat dependensi tidak tersedia. Misalnya, dependensi umum meliputi sistem file terdistribusi, database, platform distribusi rahasia, sistem pengelolaan akses dan identitas, mekanisme penemuan layanan, dan sistem eksternal lainnya.
- Kubernetes Services. Untuk mengekspos workload Anda ke klien internal dan eksternal, gunakan Layanan. Untuk setiap Layanan, Anda perlu mengetahui jenisnya. Untuk layanan yang diekspos secara eksternal, nilai cara layanan tersebut berinteraksi dengan seluruh infrastruktur Anda. Misalnya, bagaimana infrastruktur Anda mendukung layanan LoadBalancer dan Objek Ingress? Bagian mana Ingress controllers yang Anda deploy di cluster?
- Mesh Layanan. Jika menggunakan mesh layanan di lingkungan Anda, Anda akan menilai cara layanan tersebut dikonfigurasikan. Anda juga perlu mengetahui jumlah cluster yang dicakupnya, layanan mana yang merupakan bagian dari mesh, dan cara Anda memodifikasi topologi mesh. Misalnya, apakah Anda menggunakan injeksi file bantuan otomatis untuk menambahkan file bantuan secara otomatis ke pod Kubernetes?
- Taint dan toleransi serta afinitas dan anti-afinitas. Untuk setiap Pod dan Node, nilai apakah Anda mengonfigurasi taint Node, toleransi Pod, atau afinitas untuk menyesuaikan penjadwalan Pod di cluster Kubernetes. Properti ini juga dapat memberi Anda insight tentang kemungkinan konfigurasi Node atau Pod non-homogen, dan dapat berarti bahwa Pod, Node, atau keduanya perlu dinilai dengan fokus dan perhatian khusus. Misalnya, jika Anda mengonfigurasi kumpulan Pod tertentu untuk dijadwalkan hanya pada Node tertentu di cluster Kubernetes, itu mungkin berarti bahwa Pod memerlukan resource khusus yang hanya tersedia di Node tersebut.
Setelah menilai cluster dan workload-nya, evaluasi layanan dan aspek pendukung lainnya dalam infrastruktur Anda, seperti berikut:
- StorageClass dan PersistentVolumes. Nilai cara infrastruktur Anda mendukung PersistentVolumeClaims dengan mencantumkan StorageClasses untuk dynamic provisioning, dan statically provisioned PersistentVolumes. Untuk setiap PersistentVolume, pertimbangkan hal berikut: kapasitas, mode volume mode akses, class, kebijakan klaim kembali, opsi pemasangan, dan afinitas node.
- VolumeSnapshots dan VolumeSnapshotContents. Untuk setiap PersistentVolume, nilai apakah Anda mengonfigurasi VolumeSnapshot, dan apakah Anda perlu memigrasikan VolumeSnapshotContents yang ada.
- Driver Container Storage Interface (CSI). Jika di-deploy di cluster Anda, periksa apakah driver ini kompatibel dengan GKE, dan apakah Anda perlu menyesuaikan konfigurasi volume agar dapat digunakan dengan driver CSI yang kompatibel dengan GKE.
- Penyimpanan Data. Jika Anda mengandalkan sistem eksternal untuk menyediakan PersistentVolume, berikan cara bagi workload di lingkungan GKE Anda untuk menggunakan sistem tersebut. Lokalitas data berdampak pada performa workload stateful, karena latensi antara sistem eksternal dan lingkungan GKE Anda sebanding dengan jarak antar-sistem. Untuk setiap sistem penyimpanan data eksternal, pertimbangkan jenisnya, seperti volume blok, penyimpanan file, atau penyimpanan objek, serta persyaratan performa dan ketersediaan yang perlu dipenuhi.
- Logging, pemantauan, dan pelacakan. Catat informasi di sistem pemantauan, logging, dan pelacakan Anda. Anda dapat mengintegrasikan sistem dengan Kemampuan Observasi Google Cloud, atau menggunakan Kemampuan Observasi Google Cloud sebagai satu-satunya alat pemantauan, logging, dan pelacakan. Misalnya, Anda dapat mengintegrasikan Kemampuan Observasi Google Cloud dengan layanan lain, menyiapkan antarmuka logging untuk bahasa pemrograman pilihan, dan menggunakan agen Cloud Logging di VM Anda. GKE terintegrasi dengan Google Cloud Observability dan Cloud Audit Logs. Anda juga dapat menyesuaikan log Cloud Logging untuk GKE dengan Fluentd lalu memproses log dalam skala besar menggunakan Dataflow.
- Resource kustom dan add-on Kubernetes. Kumpulkan informasi tentang resource Kubernetes kustom dan add-on Kubernetes yang mungkin telah Anda deploy di cluster, karena resource tersebut mungkin tidak berfungsi di GKE, atau Anda mungkin perlu memodifikasinya. Misalnya, jika resource kustom berinteraksi dengan sistem eksternal, Anda akan menilai apakah resource tersebut berlaku untuk lingkungan Google Cloud Anda.
Selesaikan penilaian
Setelah membangun inventaris yang terkait dengan cluster dan workload Kubernetes, selesaikan aktivitas fase penilaian lainnya di bagian Migrate to Google Cloud: Assess and discover your workload.
Rencanakan dan bangun fondasi Anda
Pada fase perencanaan dan pembuatan, Anda akan menyediakan dan mengonfigurasi infrastruktur dan layanan cloud yang mendukung workload di Google Cloud:
- Buat hierarki resource.
- Mengonfigurasi pengelolaan akses dan identitas.
- Menyiapkan penagihan.
- Menyiapkan konektivitas jaringan.
- Memperketat keamanan Anda.
- Menyiapkan pemantauan dan pemberitahuan.
Jika sudah mengadopsi infrastruktur sebagai kode untuk mengelola workload di lingkungan Kubernetes, Anda dapat menerapkan proses yang sama ke lingkungan Google Cloud. Anda menganalisis deskriptor Kubernetes karena beberapa resource Google Cloud yang disediakan GKE secara otomatis dapat dikonfigurasi menggunakan Kubernetes label dan anotasi. Misalnya, Anda dapat menyediakan load balancer internal, bukan eksternal dengan menambahkan anotasi ke Layanan LoadBalancer.
Bagian berikut bergantung pada Memigrasikan ke Google Cloud: Bangun moddel dasar Anda.
Membuat hierarki resource
Untuk mendesain hierarki resource yang efisien, pertimbangkan cara struktur bisnis dan organisasi Anda dipetakan ke Google Cloud seperti yang dijelaskan dalam Memigrasikan ke Google Cloud: Bangun foundation Anda.
Misalnya, jika memerlukan lingkungan multi-tenant di GKE, Anda dapat memilih di antara opsi berikut:
- Membuat satu project Google Cloud untuk setiap tenant.
- Membagikan satu project di antara tenant yang berbeda, dan menyediakan beberapa cluster GKE.
- Menggunakan namespace Kubernetes.
Pilihan Anda bergantung pada kebutuhan isolasi, kompleksitas, dan skalabilitas Anda. Untuk Misalnya, memiliki satu project per tenant akan mengisolasi tenant dari satu sama lain, etapi hierarki resource menjadi lebih kompleks untuk dikelola karena banyaknya jumlah project. Namun, meskipun mengelola Namespace Kubernetes relatif lebih mudah daripada hierarki resource yang kompleks, opsi ini tidak menjamin banyak isolasi. Misalnya, bidang kontrol mungkin dibagikan kepada tenant.
Konfigurasikan pengelolaan akses dan identitas
Identity and Access Management menyediakan berbagai alat untuk mengonfigurasi kontrol akses yang sangat terperinci ke resource cloud secara terpusat. Untuk informasi selengkapnya, lihat Identity and Access Management.
Tinjau cara RBAC Kubernetes berinteraksi dengan pengelolaan akses dan identitas di Google Cloud, serta konfigurasikan RBAC sesuai dengan kebutuhan yang Anda kumpulkan pada fase penilaian.
Siapkan penagihan
Sebelum menyediakan resource Google Cloud, konfigurasikan Penagihan Cloud dan pahami model hargaGKE. Untuk informasi selengkapnya, lihat billing.
Menyiapkan konektivitas jaringan
Konfigurasi jaringan adalah aspek mendasar dari lingkungan Anda. Pertimbangkan model jaringan GKE dan persyaratan konektivitas workload Anda. Kemudian, Anda dapat mulai merencanakan konfigurasi jaringan. Untuk informasi selengkapnya, lihat konektivitas dan jaringan.
Perketat keamanan Anda
Memahami perbedaan antara model keamanan lingkungan Anda dan Model Google Cloud dan cara memperkuat keamanan cluster GKE Anda sangat penting untuk melindungi aset penting Anda. Untuk informasi selengkapnya, lihat keamanan.
Menyiapkan pemantauan dan pemberitahuan
Memiliki gambaran yang jelas tentang performa infrastruktur dan workload Anda adalah kunci untuk menemukan area peningkatan. GKE memiliki integrasi mendalam dengan Kemampuan Observasi Google Cloud, sehingga Anda mendapatkan informasi logging dan pemantauan tentang cluster GKE dan workload di dalam cluster tersebut. Untuk informasi selengkapnya, lihat pemantauan dan pemberitahuan.
Men-deploy workload Anda
Pada fase deployment, lakukan hal berikut:
- Menyediakan dan mengonfigurasi lingkungan GKE Anda.
- Konfigurasikan cluster GKE Anda.
- Migrasikan data dari lingkungan sumber Anda ke Google Cloud.
- Deploy workload Anda di lingkungan GKE.
- Validasi beban kerja Anda.
- Mengekspos workload yang berjalan di GKE.
- Mengalihkan traffic dari lingkungan sumber ke lingkungan GKE.
- Penghentian lingkungan sumber.
Menyediakan dan mengonfigurasi platform dan lingkungan runtime
Sebelum memindahkan beban kerja apa pun ke lingkungan Google Cloud yang baru, Anda harus menyediakan cluster GKE.
Setelah fase penilaian, sekarang Anda tahu cara menyediakan cluster GKE di lingkungan Google Cloud baru untuk memenuhi kebutuhan Anda. Anda dapat menyediakan hal berikut:
- Jumlah cluster, jumlah node per cluster, jenis cluster, konfigurasi setiap cluster, dan setiap node, serta rencana skalabilitas setiap cluster.
- Mode operasi setiap cluster. GKE menawarkan dua mode operasi untuk cluster: GKE Autopilot dan GKE Standard.
- Jumlah cluster pribadi.
- Pilihan antara jaringan berbasis VPC atau jaringan berbasis router.
- Versi dan saluran rilis Kubernetes yang Anda perlukan di cluster GKE.
- Kumpulan node untuk mengelompokkan node dalam cluster GKE secara logis, dan jika Anda perlu membuat kumpulan node secara otomatis dengan penyediaan otomatis node.
- Prosedur inisialisasi yang dapat Anda pindahkan dari lingkungan Anda ke lingkungan GKE serta prosedur baru yang dapat Anda terapkan. Misalnya, Anda dapat secara otomatis melakukan bootstrap node GKE dengan menerapkan satu atau beberapa, yang pada akhirnya dilindungi, prosedur inisialisasi untuk setiap kumpulan node atau kumpulan node di cluster Anda.
- Rencana skalabilitas untuk setiap cluster
- Fitur GKE tambahan yang Anda perlukan, seperti Anthos Service Mesh, dan add-on GKE, seperti Pencadangan untuk GKE.
Untuk informasi selengkapnya tentang penyediaan cluster GKE, lihat:
- Tentang pilihan konfigurasi cluster.
- Buat berbagai jenis cluster GKE.
- Mengelola, mengonfigurasi, dan men-deploy cluster GKE.
- Memahami keamanan GKE.
- Perketat keamanan cluster Anda.
Mengonfigurasi cluster Anda
Setelah menyediakan cluster GKE dan sebelum men-deploy berbagai workload atau memigrasikan data, konfigurasikan namespace, RBAC, kebijakan jaringan, Kuota resource, serta objek Kubernetes dan GKE lainnya untuk masing-masing cluster GKE.
Untuk mengonfigurasi objek Kubernetes dan GKE di cluster GKE, sebaiknya Anda:
- Pastikan Anda memiliki kredensial dan izin yang diperlukan untuk mengakses kedua cluster di lingkungan sumber, dan di lingkungan GKE Anda.
- Lakukan penilaian apakah objek di cluster Kubernetes atau lingkungan sumber Anda kompatibel dengan GKE, dan bagaimana implementasi yang mendukung objek ini berbeda dengan lingkungan sumber dan GKE.
- Faktorkan ulang objek yang tidak kompatibel agar kompatibel dengan GKE, atau hentikan.
- Migrasikan objek ini ke cluster GKE Anda.
- Konfigurasikan objek tambahan apa pun yang dibutuhkan di cluster GKE Anda.
Memigrasikan konfigurasi cluster
Untuk memigrasikan konfigurasi cluster Kubernetes Anda dari lingkungan sumber to your GKE Anda dapat menggunakan pendekatan berikut:
Jika Anda menerapkan proses infrastruktur sebagai kode untuk mengonfigurasi objek di cluster Kubernetes di lingkungan sumber, Anda dapat:
- Migrasikan objek yang kompatibel dengan GKE hanya dengan sedikit perubahan metadata, seperti nama objek, lokasi, atau namespace menggunakan alat Kubernetes (kubectl), atau layanan terkelola (Config Sync)
- Memfaktorkan ulang atau menghentikan penggunaan objek yang tidak kompatibel dengan GKE.
Jika tidak mengadopsi proses infrastruktur sebagai kode, Anda dapat:
Migrasikan data
Untuk memigrasikan data yang diperlukan oleh workload stateful dari lingkungan sumber Anda ke lingkungan GKE, sebaiknya rancang paket migrasi data dengan mengikuti panduan dalam Bermigrasi ke Google Cloud: Transfer besar.
Anda menyediakan semua infrastruktur penyimpanan yang diperlukan sebelum memindahkan data. Jika Anda menggunakan penyedia StorageClass, Anda perlu mengonfigurasinya di cluster baru.
For more information about the data storage options that you have on GKE, see konfigurasi penyimpanan. Misalnya, Anda dapat menggunakan Persistent disk Compute Engine , baik zonal maupun direplikasi ke seluruh wilayah , atau Anda dapat menggunakan Filestore singkat ini.
Setelah menyediakan StorageClasses, Anda harus menyediakan semua PersistentVolumes yang diperlukan untuk menyimpan data yang akan dimigrasikan. Kemudian, migrasikan data dari lingkungan sumber ke PersistentVolume ini. Detail migrasi data ini bergantung pada karakteristik lingkungan sumber. Misalnya, Anda dapat:
- Menyediakan instance Compute Engine.
- Instal persistent disk ke instance Compute Engine.
- Salin data dari lingkungan sumber ke persistent disk.
- Nonaktifkan instance Compute Engine.
- Lepaskan persistent disk dari instance Compute Engine.
- Mengonfigurasi persistent disk sebagai PersistentVolume GKE.
- Penghentian instance Compute Engine.
Untuk mengetahui informasi selengkapnya tentang Compute Engine persistent disks as GKE PersistentVolumes, see Using pre-existing persistent disks as PersistentVolumes.
Men-deploy workload Anda
Untuk men-deploy workload Anda, kami merekomendasikan salah satu pendekatan berikut:
- Mengimplementasikan proses deployment di Google Cloud.
- Faktorkan ulang proses deployment Anda yang ada untuk men-deploy workload di lingkungan GKE Anda.
Fase deployment juga merupakan kesempatan untuk memodernisasi proses deployment dan workload Anda. Misalnya, jika Anda menggunakan Pod apa pun di lingkungan, pertimbangkan untuk memigrasikan workload tersebut ke Deployment Kubernetes.
Untuk informasi selengkapnya tentang proses pemfaktoran ulang deployment, lihat Bermigrasi ke Google Cloud: Bermigrasi dari deployment manual ke container dan otomatisasi. Panduan ini berisi panduan untuk bermigrasi dari deployment manual ke otomatisasi dan alat orkestrasi container.
Jika proses deployment sudah siap, Anda dapat dmen-deploy workload ke GKE.
Mengimplementasikan proses deployment di Google Cloud
Untuk menerapkan proses deployment Anda di Google Cloud, gunakan skalabilitas, operasi terkelola, dan keamanan dari desain produk Google Cloud.
Untuk informasi selengkapnya tentang cara mengimplementasikan proses deployment di Google Cloud, lihat:
- Migrasi ke Google Cloud: Men-deploy workload Anda
- Ringkasan Cloud Build
- Menyimpan artefak build di Artifact Registry
- Ringkasan Cloud Deploy
Memfaktorkan ulang proses deployment yang ada
Meskipun tidak mutlak diperlukan untuk keberhasilan yang sukses, Anda juga dapat memfaktorkan ulang proses deployment selama migrasi. Misalnya, Anda dapat memodernisasi dan mengotomatiskan proses deployment yang ada, kemudian menerapkannya di Google Cloud.
Memigrasikan proses deployment ke Google Cloud secara bersamaan dengan memigrasikan workload, bisa menjadi hal yang kompleks, dan dapat meningkatkan risiko kegagalan migrasi. Untuk migrasi yang sangat kompleks, Anda juga dapat mempertimbangkan memigrasikan proses deployment untuk kedua kalinya, dan terus menggunakan proses saat ini untuk men-deploy workload di lingkungan GKE Anda. Pendekatan ini membantu Anda mengurangi kompleksitas migrasi. Dengan terus menggunakan proses deployment yang ada, Anda dapat menyederhanakan proses migrasi.
Memvalidasi workload Anda
Setelah men-deploy workload di lingkungan GKE, tetapi sebelum Anda mengekspos beban kerja ini kepada pengguna, sebaiknya lakukan validasi dan pengujian yang ekstensif. Pengujian ini dapat membantu Anda memverifikasi bahwa workload Anda berperilaku seperti yang diharapkan. Sebagai contoh, Anda dapat:
- Lakukan pengujian integrasi, pengujian beban, pengujian kepatuhan, pengujian keandalan, dan prosedur verifikasi lainnya yang membantu Anda memastikan bahwa workload Anda beroperasi dalam parameter yang diharapkan, dan sesuai dengan spesifikasinya.
- Periksa log, metrik, dan laporan error di Kemampuan Observasi Google Cloud untuk mengidentifikasi potensi masalah, dan untuk menemukan tren guna mengantisipasi masalah sebelum terjadi.
Untuk mengetahui informasi selengkapnya tentang validasi workload, lihat Menguji keandalan.
Mengekspos workload Anda
Setelah menyelesaikan pengujian validasi beban kerja yang berjalan di lingkungan GKE Anda, ekspos workload agar dapat dijangkau.
Untuk mengekspos workload yang berjalan di lingkungan GKE, Anda dapat menggunakan Layanan Kubernetes dan mesh layanan.
Untuk informasi selengkapnya tentang cara GKE mendukung layanan Kubernetes, lihat Layanan.
Untuk mengetahui informasi selengkapnya tentang mengekspos workload yang berjalan di GKE, lihat:
- Mengekspos aplikasi menggunakan layanan
- Tentang Gateway
- GKE Masuk untuk Load Balancer Aplikasi eksternal
- Dari tepi ke mesh: Mengekspos aplikasi mesh layanan melalui GKE Ingress
Mengalihkan traffic ke lingkungan Google Cloud
Setelah memastikan bahwa workload berjalan di lingkungan GKE, Anda, dan setelah mengeksposnya kepada klien, Anda akan mengalihkan traffic dari lingkungan sumber ke lingkungan GKE. Untuk membantu Anda menghindari migrasi berskala besar dan semua risiko terkait, sebaiknya alihkan traffic secara bertahap dari lingkungan sumber ke GKE Anda.
Bergantung pada cara Anda mendesain lingkungan GKE, Anda memiliki beberapa opsi untuk menerapkan mekanisme load balancing yang secara bertahap mengalihkan traffic dari lingkungan sumber ke lingkungan target Anda. Misalnya, Anda dapat menerapkan kebijakan resolusi DNS yang menyelesaikan data DNS sesuai dengan kebijakan tertentu untuk menyelesaikan persentase permintaan tertentu ke alamat IP milik lingkungan GKE Anda. Atau, Anda dapat menerapkan mekanisme load balancing menggunakan alamat IP virtual dan load balancing jaringan.
Setelah mulai mengalihkan traffic ke lingkungan GKE secara bertahap, sebaiknya pantau perilaku workload Anda seiring dengan bertambahnya beban kerja.
Terakhir, Anda akan melakukan cutover, yang terjadi saat Anda mengalihkan semua traffic dari lingkungan sumber ke lingkungan GKE.
Untuk mengetahui informasi selengkapnya tentang load balancing, lihat Load balancing di frontend
Menghentikan lingkungan sumber
Setelah beban kerja di lingkungan GKE Anda melayani permintaan dengan benar, lingkungan sumber Anda akan dinonaktifkan.
Sebelum mulai menghentikan resource di lingkungan sumber, sebaiknya lakukan hal berikut:
- Cadangkan data apa pun untuk membantu Anda memulihkan resource di lingkungan sumber.
- Beri tahu pengguna Anda sebelum menonaktifkan lingkungan.
Untuk menonaktifkan lingkungan sumber, lakukan hal berikut:
- Hentikan workload yang berjalan di cluster di lingkungan sumber Anda.
- Hapus cluster di lingkungan sumber.
- Hapus resource yang terkait dengan cluster ini, seperti grup keamanan, load balancing, dan jaringan virtual.
Agar tidak meninggalkan resource usang, urutan penonaktifan resource di lingkungan sumber harus dilakukan. Misalnya, Penyedia tertentu mengharuskan Anda menonaktifkan Layanan Kubernetes yang menyebabkan pembuatan load balancer sebelum dapat menonaktifkan jaringan virtual yang berisi load balancer tersebut.
Mengoptimalkan lingkungan Anda
Pengoptimalan adalah fase terakhir dari migrasi Anda. Pada fase ini, Anda membuat lingkungan lebih efisien daripada sebelumnya. Pada fase ini, Anda menjalankan beberapa iterasi dari loop berulang hingga lingkungan Anda memenuhi persyaratan pengoptimalan. Langkah-langkah dari loop berulang ini adalah sebagai berikut:
- Menilai lingkungan, tim, dan loop pengoptimalan Anda saat ini.
- Menetapkan persyaratan dan sasaran pengoptimalan Anda.
- Mengoptimalkan lingkungan dan tim Anda.
- Menyesuaikan loop pengoptimalan.
Bagian berikut bergantung pada Migrasi ke Google Cloud: Mengoptimalkan lingkungan Anda.
Menilai lingkungan, tim, dan loop pengoptimalan Anda saat ini
Meskipun penilaian pertama berfokus pada migrasi dari lingkungan Anda ke GKE, penilaian ini disesuaikan untuk fase pengoptimalan.
Menetapkan persyaratan pengoptimalan
Tinjau persyaratan pengoptimalan berikut untuk lingkungan GKE Anda:
- Menerapkan proses deployment lanjutan. Proses seperti deployment canary atau deployment biru/hijau memberi Anda fleksibilitas tambahan dan dapat meningkatkan keandalan lingkungan, memperluas pengujian, dan mengurangi dampak masalah apa pun bagi pengguna Anda.
- Mengonfigurasi mesh layanan. Dengan memperkenalkan mesh layanan ke lingkungan Anda, gunakan fitur seperti kemampuan observasi, pengelolaan traffic, dan autentikasi timbal balik untuk layanan Anda, dan mengurangi beban di tim DevOps Anda. Anda dapat men-deploy multi-cluster mesh layanan untuk mengelompokkan beban kerja dengan lebih baik atau mesh layanan yang diperluas untuk mendukung migrasi Anda ke lingkungan baru.
- Menyiapkan penskalaan otomatis. Anda memiliki, berbagai opsi pelengkap untuk menskalakan lingkungan GKE secara otomatis. Anda dapat secara otomatis menskalakan cluster dan workload di dalam setiap cluster. Dengan mengonfigurasi autoscaler cluster, Anda dapat secara otomatis mengubah ukuran cluster GKE berdasarkan permintaan workload, dengan menambah atau menghapus node pekerja ke cluster tersebut. Jika ingin menskalakan workload secara otomatis, sesuaikan CPU dan memori permintaan dan batas konsumsi dengan Autoscaler Pod vertikal. Saat menggunakan autoscaler, Anda tidak perlu memikirkan nilai yang akan ditentukan untuk setiap permintaan CPU dan memori container. Anda juga dapat mengekspor metrik yang disediakan oleh autoscaler ke workload GKE yang sesuai dalam skala besar.
- Mengurangi biaya dengan preemptible virtual machine (VM). Jika beberapa workload Anda toleran terhadap lingkungan runtime tanpa jaminan ketersediaan, pertimbangkan untuk men-deploy beban kerja tersebut di kumpulan node yang terdiri dari preemptible VM. Preemptible VM memiliki harga lebih rendah daripada VM Compute Engine standar, sehingga Anda dapat mengurangi biaya cluster.
- Mengintegrasikan GKE dengan produk lain. Beberapa produk Google Cloud dapat diintegrasikan dengan GKE untuk memperkuat keamanan lingkungan Anda. Misalnya, Anda dapat menganalisis container untuk mencari kerentanan atau gunakan image dasar terkelola di Container Registry.
- Rancang cluster GKE Anda agar mudah digunakan. Dengan mempertimbangkan cluster Anda sebagai fungible dan dengan mengotomatiskan penyediaan dan konfigurasinya, Anda dapat menyederhanakan dan menggeneralisasi proses operasional untuk mempertahankannya dan juga menyederhanakan migrasi dan upgrade cluster GKE mendatang. Misalnya, jika perlu mengupgrade cluster GKE yang dapat dialihkan ke versi GKE baru, Anda dapat secara otomatis menyediakan dan mengonfigurasi cluster baru yang telah diupgrade, men-deploy workload di cluster baru secara otomatis, dan menonaktifkan cluster GKE yang sudah usang.
Merancang lingkungan multi-cluster. Dengan menerapkan lingkungan multi-cluster di GKE, Anda:
- Kurangi kemungkinan terjadinya titik tunggal kegagalan dalam arsitektur.
- Manfaatkan fleksibilitas yang lebih besar untuk kemungkinan dari pengujian konfigurasi pada subset cluster GKE Anda.
- Distribusikan workload di seluruh cluster GKE.
Meskipun Anda dapat memenuhi beberapa persyaratan pengoptimalan ini di lingkungan Kubernetes, akan lebih mudah di GKE karena Anda tidak perlu menghabiskan upaya untuk menjaga cluster tetap berjalan. Sebaliknya, Anda dapat fokus pada pengoptimalan itu sendiri.
Selesaikan pengoptimalan
Setelah mengisi daftar persyaratan pengoptimalan, Anda menyelesaikan aktivitas fase pengoptimalan lainnya.
Langkah selanjutnya
- Baca tentang cara memulai migrasi ke Google Cloud.
- Pahami cara memperkuat keamanan cluster Anda dan baca ringkasan keamanan GKE.
- bootstrap secara otomatis GKE nodes dengan DaemonSets.
- Temukan bantuan untuk migrasi Anda ke Google Cloud.
- Pelajari arsitektur referensi, diagram, dan praktik terbaik tentang Google Cloud. Lihat Cloud Architecture Center kami.