Strategi upgrade node


Halaman ini membahas strategi upgrade node yang dapat Anda gunakan dengan cluster Google Kubernetes Engine (GKE).

Pada cluster GKE Standard, Anda dapat mengonfigurasi salah satu strategi upgrade node berikut untuk setiap node pool:

  • Upgrade lonjakan: Node diupgrade dalam satu jendela bergulir. Anda dapat mengontrol jumlah node yang dapat diupgrade sekaligus dan seberapa mengganggu upgrade pada workload.
  • Upgrade blue-green: Node yang sudah ada akan tetap tersedia untuk di-roll back saat beban kerja divalidasi pada konfigurasi node baru.

Dalam cluster Autopilot, GKE menggunakan upgrade lonjakan. Untuk mempelajari lebih lanjut, lihat bagian Upgrade lonjakan di halaman upgrade cluster Autopilot.

Dengan memilih strategi upgrade untuk kumpulan node cluster Standar, Anda dapat memilih proses dengan keseimbangan yang tepat antara kecepatan, gangguan workload, mitigasi risiko, dan pengoptimalan biaya. Untuk mempelajari lebih lanjut strategi upgrade node mana yang tepat untuk lingkungan Anda, lihat Memilih upgrade lonjakan dan Memilih upgrade blue-green.

Dengan kedua strategi tersebut, Anda dapat mengonfigurasi setelan upgrade untuk mengoptimalkan proses berdasarkan kebutuhan lingkungan. Untuk mempelajari lebih lanjut, lihat Mengonfigurasi strategi upgrade yang Anda pilih. Pastikan bahwa untuk strategi yang Anda pilih, Anda memiliki kuota, ketersediaan resource, atau kapasitas reservasi yang cukup untuk mengupgrade node menggunakan strategi tersebut. Untuk mengetahui informasi selengkapnya, lihat Memastikan resource untuk upgrade node.

Upgrade lonjakan

Upgrade lonjakan adalah strategi upgrade default, dan paling cocok untuk aplikasi yang dapat menangani perubahan inkremental. Upgrade Surge menggunakan metode berkelanjutan untuk mengupgrade node dalam urutan yang tidak ditentukan. Temukan keseimbangan optimal antara kecepatan dan gangguan untuk lingkungan Anda dengan memilih jumlah node lonjakan baru yang dapat dibuat, dengan maxSurge, dan jumlah node yang ada yang dapat terganggu sekaligus, dengan maxUnavailable.

Upgrade lonjakan juga berfungsi dengan autoscaler cluster untuk mencegah perubahan pada node yang sedang diupgrade.

Pilih upgrade lonjakan untuk lingkungan Anda

Jika pengoptimalan biaya penting bagi Anda dan workload dapat menoleransi penonaktifan dalam waktu kurang dari 60 menit, sebaiknya pilih upgrade lonjakan untuk node pool Anda.

Upgrade lonjakan optimal untuk skenario berikut:

  • jika ingin mengoptimalkan kecepatan upgrade.
  • jika workload lebih toleran terhadap gangguan, dengan penghentian halus hingga 60 menit dapat diterima.
  • jika Anda ingin mengontrol biaya dengan meminimalkan pembuatan node baru.

Kapan GKE menggunakan upgrade lonjakan

Jika diaktifkan, GKE akan menggunakan upgrade lonjakan saat jenis perubahan berikut terjadi:

Perubahan lainnya, termasuk menerapkan update pada label node dan taint dari node pool yang sudah ada, tidak menggunakan upgrade lonjakan karena tidak memerlukan pembuatan ulang node.

Memahami setelan upgrade lonjakan

Gunakan setelan upgrade lonjakan untuk memilih keseimbangan yang sesuai antara kecepatan dan gangguan untuk kumpulan node Anda selama pemeliharaan cluster menggunakan setelan lonjakan. Anda dapat mengubah jumlah upaya GKE node untuk melakukan upgrade sekaligus dengan mengubah parameter upgrade lonjakan di node pool Standard.

Perilaku upgrade lonjakan ditentukan oleh setelan maxSurge dan maxUnavailable, yang menentukan jumlah node yang diupgrade secara bersamaan dalam periode bergulir dengan langkah-langkah yang dijelaskan.

maxSurge: GKE membuat node lonjakan baru sebelum menghapus node yang ada

Tetapkan maxSurge untuk memilih jumlah maksimum node lonjakan tambahan yang dapat ditambahkan ke node pool selama upgrade, per zona, sehingga meningkatkan kemungkinan bahwa workload yang berjalan di node yang ada dapat segera dimigrasikan ke node baru. Defaultnya adalah satu. Untuk mengupgrade satu node, GKE melakukan langkah-langkah berikut:

  1. Sediakan node baru.
  2. Tunggu hingga node baru siap.
  3. Blokir node yang ada.
  4. Drain node yang ada, dengan mematuhi setelan PodDisruptionBudget dan GracefulTerminationPeriod hingga satu jam.
  5. Hapus node yang ada.

Agar GKE dapat membuat node lonjakan, project Anda harus memiliki resource untuk membuat node tambahan untuk sementara. Jika Anda tidak memiliki kapasitas tambahan, GKE tidak akan mulai mengupgrade node hingga resource tersedia. Untuk mempelajari lebih lanjut, lihat Referensi untuk upgrade puncak.

maxUnavailable: GKE membuat node yang ada tidak tersedia untuk membuatnya ulang

Tetapkan maxUnavailable untuk memilih jumlah maksimum node yang tidak dapat tersedia secara bersamaan selama upgrade, per zona. Default-nya adalah nol. Workload yang berjalan di node yang ada mungkin perlu menunggu node yang ada diupgrade, jika tidak ada node lain yang memiliki kapasitas. Untuk mengupgrade satu node, GKE melakukan langkah-langkah berikut:

  1. Blokir node yang ada.
  2. Drain node yang ada, dengan mematuhi setelan PodDisruptionBudget dan GracefulTerminationPeriod hingga satu jam.
  3. Buat ulang node yang ada dengan konfigurasi baru.
  4. Tunggu hingga node yang ada siap.
  5. Hapus pembatasan node yang sudah diupgrade.

Saat membuat ulang node yang ada, GKE akan melepaskan kapasitas node untuk sementara jika kapasitas tersebut bukan dari reservasi. Artinya, jika kapasitas terbatas, Anda berisiko kehilangan kapasitas yang ada. Jadi, jika lingkungan Anda memiliki keterbatasan resource, gunakan setelan ini hanya jika Anda menggunakan node yang dicadangkan. Untuk mempelajari lebih lanjut, lihat Mengupgrade di lingkungan dengan keterbatasan resource.

Contoh penggunaan setelan maxSurge dan maxUnavailable

Misalnya, cluster GKE memiliki node pool zona tunggal dengan 5 node dan konfigurasi upgrade lonjakan berikut: maxSurge=2;maxUnavailable=1.

Selama upgrade lonjakan dengan node pool ini, dalam periode bergulir, GKE membuat dua node yang diupgrade, dan mengganggu maksimal satu node yang ada dalam satu waktu. GKE menurunkan maksimal tiga node yang ada setelah node yang diupgrade siap. Selama proses upgrade, node pool akan mencakup antara empat hingga tujuh node.

Pertimbangan untuk setelan upgrade lonjakan

Pertimbangkan informasi berikut sebelum mengonfigurasi setelan upgrade lonjakan:

  • Node yang dibuat oleh upgrade lonjakan tunduk pada kuota resource, ketersediaan resource, dan kapasitas reservasi Google Cloud Anda, untuk kumpulan node dengan afinitas reservasi tertentu. Jika lingkungan Anda memiliki keterbatasan resource, lihat Mengupgrade di lingkungan yang memiliki keterbatasan resource.
  • Jumlah node yang diupgrade secara bersamaan oleh GKE adalah jumlah maxSurge dan maxUnavailable. Jumlah maksimum node yang diupgrade secara bersamaan dibatasi hingga 20. Upgrade lonjakan juga berfungsi dengan autoscaler cluster untuk mencegah perubahan pada node yang sedang diupgrade.
  • GKE mengupgrade kumpulan node multi-zona satu zona satu per satu. Parameter upgrade lonjakan hanya berlaku hingga jumlah node dalam zona. Jumlah maksimum node yang dapat diupgrade secara paralel tidak akan lebih tinggi dari jumlah maxSurge ditambah maxUnavailable, dan tidak lebih tinggi dari jumlah node dalam zona.
  • Jika node pool Anda menggunakan Spot VM, GKE akan membuat node surge dengan Spot VM, tetapi tidak menunggu Spot VM siap sebelum mengisolasi dan menghabiskan node yang ada. Untuk mempelajari lebih lanjut, lihat Mengupgrade node pool Standar menggunakan VM Spot.

Menyesuaikan setelan upgrade lonjakan untuk menyeimbangkan kecepatan dan gangguan

Tabel berikut menjelaskan empat profil upgrade yang berbeda sebagai contoh untuk membantu Anda memahami berbagai konfigurasi:

Deskripsi Konfigurasi Kasus penggunaan umum
Seimbang (Default), lebih lambat tetapi tidak terlalu mengganggu maxSurge=1 maxUnavailable=0 Sebagian besar workload
Cepat, tanpa resource lonjakan, paling mengganggu maxSurge=0 maxUnavailable=20 Node pool besar setelah tugas harus berjalan hingga selesai
Resource yang cepat, sebagian besar lonjakan dan tidak terlalu mengganggu maxSurge=20 maxUnavailable=0 Node pool besar
Paling lambat, mengganggu, tanpa resource lonjakan maxSurge=0 maxUnavailable=1 Node pool dengan keterbatasan resource dan reservasi

Seimbang (Default)

Cara termudah untuk memanfaatkan upgrade lonjakan adalah dengan menggunakan konfigurasi default, maxSurge=1;maxUnavailable=0. Dengan konfigurasi ini, upgrade berlangsung lambat, dengan hanya satu node lonjakan yang ditambahkan dalam satu waktu, yang berarti hanya satu node yang diupgrade dalam satu waktu. Pod dapat segera dimulai ulang di node surge baru. Konfigurasi ini hanya memerlukan resource untuk membuat satu node baru sementara.

Resource yang cepat dan tanpa lonjakan

Jika Anda memiliki node pool yang besar dan workload tidak sensitif terhadap gangguan (misalnya, tugas batch yang telah berjalan hingga selesai), gunakan konfigurasi berikut untuk memaksimalkan kecepatan tanpa menggunakan resource tambahan: maxSurge=0;maxUnavailable=20. Konfigurasi ini tidak memunculkan node lonjakan tambahan dan memungkinkan 20 node diupgrade secara bersamaan.

Cepat dan tidak terlalu mengganggu

Jika workload sensitif terhadap gangguan dan Anda telah menyiapkan PodDisruptionBudgets (PDB), tetapi tidak menggunakan externalTrafficPolicy: Local, yang tidak berfungsi dengan node paralel habis, Anda dapat meningkatkan kecepatan upgrade menggunakan maxSurge=20;maxUnavailable=0. Konfigurasi ini mengupgrade 20 node secara paralel, sedangkan PDB membatasi jumlah Pod yang dapat dikosongkan pada waktu tertentu. Meskipun konfigurasi PDB dapat bervariasi, jika Anda membuat PDB dengan maxUnavailable=1 untuk satu atau beberapa workload yang berjalan di node pool, hanya satu Pod dari workload tersebut yang dapat dikeluarkan pada satu waktu. Membatasi paralelisme dari seluruh upgrade. Konfigurasi ini memerlukan resource untuk sementara membuat 20 node baru.

Lambat, tetapi tidak ada resource lonjakan

Jika tidak dapat menggunakan resource tambahan, Anda dapat menggunakan maxSurge=0;maxUnavailable=1 untuk membuat ulang satu node dalam satu waktu.

Mengontrol upgrade lonjakan yang sedang berlangsung

Dengan upgrade lonjakan, saat upgrade sedang berlangsung, Anda dapat menggunakan perintah untuk menerapkan beberapa kontrol atas upgrade tersebut. Untuk kontrol lebih besar atas proses upgrade, sebaiknya gunakan upgrade blue-green.

Membatalkan (menjeda) upgrade lonjakan

Anda dapat membatalkan upgrade lonjakan yang sedang berlangsung kapan saja selama proses upgrade. Pembatalan akan menjeda upgrade, sehingga menghentikan GKE agar tidak mengupgrade node baru, tetapi tidak otomatis membatalkan upgrade node yang telah diupgrade. Setelah membatalkan upgrade, Anda dapat melanjutkan atau melakukan roll back.

Saat Anda membatalkan upgrade, GKE akan melakukan hal berikut dengan setiap node:

  • Node yang telah memulai upgrade akan menyelesaikannya.
  • Node yang belum memulai upgrade tidak akan melakukan upgrade.
  • Node yang telah berhasil menyelesaikan upgrade tidak akan terpengaruh dan tidak di-roll back.

Ini berarti node pool mungkin berakhir dalam status yaitu node menjalankan dua versi yang berbeda. Jika upgrade otomatis diaktifkan untuk node pool, kumpulan node dapat dijadwalkan untuk upgrade otomatis lagi, yang akan mengupgrade sisa node dalam kumpulan node yang menjalankan versi yang lebih lama.

Pelajari cara membatalkan upgrade node pool.

Melanjutkan upgrade lonjakan

Jika upgrade node pool dibatalkan dan dibiarkan diupgrade sebagian, Anda dapat melanjutkan upgrade untuk menyelesaikan proses upgrade untuk node pool. Tindakan ini akan mengupgrade node yang tersisa yang belum diupgrade dalam operasi asli. Pelajari cara melanjutkan upgrade node pool.

Me-roll back upgrade lonjakan

Jika node pool dibiarkan diupgrade sebagian, Anda dapat me-roll back node pool untuk mengembalikannya ke status sebelumnya. Anda tidak dapat me-roll back node pool setelah berhasil diupgrade. Node yang belum memulai upgrade tidak akan terpengaruh. Pelajari cara melakukan roll back upgrade node pool.

Jika Anda ingin men-downgrade node pool ke versi sebelumnya setelah upgrade selesai, lihat Men-downgrade node pool.

Upgrade blue-green

Upgrade blue-green adalah strategi upgrade alternatif dari strategi upgrade lonjakan default. Dengan upgrade blue-green, GKE terlebih dahulu membuat kumpulan resource node baru ("green" node) dengan konfigurasi node baru sebelum mengeluarkan workload apa pun pada resource asli ("blue" node). GKE menyimpan resource "blue", jika diperlukan, untuk melakukan roll back workload hingga waktu perendamannya terpenuhi. Anda dapat menyesuaikan kecepatan upgrade dan waktu perendaman berdasarkan kebutuhan lingkungan.

Dengan strategi ini, Anda memiliki kontrol lebih besar atas proses upgrade. Anda dapat me-roll back upgrade yang sedang berlangsung, jika perlu, karena lingkungan asli dipertahankan selama upgrade. Namun, strategi upgrade ini juga memerlukan resource yang lebih intensif. Saat lingkungan asli direplikasi, node pool menggunakan jumlah resource dua kali lipat selama upgrade.

Memilih upgrade blue-green untuk lingkungan Anda

Jika Anda memiliki workload produksi yang sangat tersedia, dan harus dapat melakukan roll back dengan cepat jika workload tidak menoleransi upgrade, dan kenaikan biaya sementara dapat diterima, sebaiknya pilih upgrade blue-green untuk node pool.

Upgrade blue-green optimal untuk skenario berikut:

  • jika menginginkan peluncuran bertahap dengan mitigasi risiko yang paling penting, yang memerlukan penghentian yang lancar lebih dari 60 menit.
  • jika workload tidak terlalu toleran terhadap gangguan.
  • jika kenaikan biaya sementara karena penggunaan sumber daya yang lebih tinggi dapat diterima.

Kapan GKE menggunakan upgrade blue-green

Untuk node GKE, ada berbagai jenis perubahan konfigurasi yang mengharuskan node dibuat ulang. Jika diaktifkan, GKE akan menggunakan upgrade blue-green saat jenis perubahan berikut terjadi:

Upgrade lonjakan akan digunakan untuk fitur lain yang mengharuskan node dibuat ulang. Untuk mempelajari lebih lanjut, lihat Kapan upgrade lonjakan digunakan.

Fase upgrade blue-green

Dengan upgrade blue-green, Anda dapat menyesuaikan dan mengontrol prosesnya dengan:

Bagian ini menjelaskan fase proses upgrade. Anda dapat menggunakan setelan upgrade untuk menyesuaikan cara kerja fase, dan perintah untuk mengontrol proses upgrade.

Fase 1: Membuat green pool

Pada fase ini, kumpulan baru grup instance terkelola (MIG) yang dikenal sebagai "green" pool dibuat untuk setiap zona dalam pool target dengan konfigurasi node baru (versi baru atau jenis image).

Kuota akan diperiksa sebelum mulai menyediakan resource green baru.

Pada fase ini, MIG asli—yang dikenal sebagai blue pool—autoscaler cluster akan berhenti meningkatkan atau menurunkan skalanya. Green pool hanya dapat ditingkatkan dalam fase ini.

Pada fase ini, Anda dapat membatalkan upgrade jika perlu. Jika Anda membatalkan upgrade blue-green, upgrade akan dijeda pada fase saat ini. Setelah membatalkannya, Anda dapat melanjutkan atau melakukan roll back. Pada fase ini, melakukan roll back akan menghapus green pool.

Fase 2: Menandai blue pool

Pada fase ini, semua node asli di blue pool (MIG yang ada) akan diberi batasan (ditandai sebagai tidak dapat dijadwalkan). Workload yang ada akan tetap berjalan, tetapi beban kerja baru tidak akan dijadwalkan pada node yang ada.

Pada fase ini, Anda dapat membatalkan upgrade jika perlu. Jika Anda membatalkan upgrade blue-green, upgrade akan dijeda pada fase saat ini. Setelah membatalkannya, Anda dapat melanjutkan atau melakukan roll back. Pada fase ini, melakukan roll back akan membatalkan penandaan blue pool dan menghapus green pool.

Fase 3: Menguras blue pool

Pada fase ini, node asli di blue pool (MIG yang ada) akan dikuras dalam batch. Saat Kubernetes menghabiskan satu node, permintaan penghapusan akan dikirim ke semua Pod yang berjalan di node tersebut. Pod akan dijadwalkan ulang. Untuk Pod yang memiliki pelanggaran PodDisruptionBudget atau terminationGracePeriodSeconds yang panjang selama penghentian, pod akan dihapus di Hapus blue pool saat node dihapus. Anda dapat menggunakan BATCH_SOAK_DURATION dan NODE_POOL_SOAK_DURATION, yang dijelaskan di sini dan di bagian berikutnya, untuk memperpanjang periode sebelum Pod dihapus.

Anda dapat mengontrol ukuran batch dengan salah satu setelan berikut:

  • BATCH_NODE_COUNT: jumlah node absolut yang akan dikosongkan dalam batch.
  • BATCH_PERCENT: persentase node yang akan dikosongkan dalam batch, dinyatakan sebagai desimal antara 0 dan 1, inklusif. GKE membulatkan ke bawah ke persentase node terdekat, ke nilai minimum 1 node, jika persentase bukan bilangan bulat node.

Jika salah satu setelan ini disetel ke nol, GKE akan melewati fase ini dan melanjutkan ke fase Rendam node pool.

Selain itu, Anda dapat mengontrol berapa lama setiap batch dikosongkan dengan BATCH_SOAK_DURATION. Durasi ini ditentukan dalam detik, dengan default adalah nol detik.

Pada fase ini, Anda masih dapat membatalkan upgrade jika perlu. Jika Anda membatalkan upgrade blue-green, upgrade tersebut akan dijeda pada fase saat ini. Setelah membatalkannya, Anda dapat melanjutkan atau melakukan roll back. Pada fase ini, melakukan roll back akan menghentikan pengurasan blue pool dan membatalkan pembatasan blue pool. Workload kemudian dapat dijadwalkan ulang pada blue pool (tidak dijamin), dan green pool akan dihapus.

Fase 4: Merendam node pool

Fase ini digunakan untuk memverifikasi kondisi workload setelah node blue pool dikuras.

Waktu rendam disetel dengan NODE_POOL_SOAK_DURATION, dalam detik. Secara default, nilainya disetel ke satu jam (3600 detik). Jika total durasi rendam mencapai 7 hari (604.800 detik), Fase Hapus blue pool akan segera dimulai.

Total durasi rendam adalah jumlah NODE_POOL_SOAK_DURATION, ditambah BATCH_SOAK_DURATION dikalikan dengan jumlah batch, yang ditentukan oleh BATCH_NODE_COUNT atau BATCH_PERCENT.

Pada fase ini, Anda dapat menyelesaikan upgrade dan melewati waktu tunggu yang tersisa dengan menyelesaikan upgrade. Tindakan ini akan segera memulai proses penghapusan node blue pool.

Anda tetap dapat membatalkan upgrade jika perlu. Jika Anda membatalkan upgrade blue-green, upgrade akan dijeda pada fase saat ini. Setelah membatalkannya, Anda dapat melanjutkan atau melakukan roll back.

Pada fase ini, autoscaler cluster kini dapat meningkatkan atau menurunkan skala green pool seperti biasa.

Fase 5: Menghapus blue pool

Setelah waktu perendaman berakhir, node blue pool akan dihapus dari pool target. Fase ini tidak dapat dijeda. Selain itu, fase ini tidak menggunakan pengeluaran dan sebagai gantinya, mencoba menghapus Pod. Tidak seperti penghapusan, penghapusan tidak mematuhi PDB dan menghapus Pod secara paksa. Penghapusan ini membatasi terminationGracePeriodSeconds Pod menjadi tidak lebih dari 60 menit. Setelah upaya terakhir ini dilakukan untuk menghapus Pod yang tersisa, node blue pool akan dihapus dari node pool.

Pada akhir fase ini, node pool hanya akan memiliki node baru dengan konfigurasi yang telah diupdate (versi atau jenis gambar).

Cara kerja autoscaler cluster dengan upgrade blue-green

Selama fase upgrade blue-green, "blue" pool asli tidak meningkatkan atau menurunkan skala. Saat "green" pool baru dibuat, pool tersebut hanya dapat ditingkatkan hingga fase Rendam node pool, yang dapat menskalakan atau menaikkan atau menurunkan skala. Jika upgrade di-roll back, "blue" pool asli mungkin ditingkatkan skalanya selama proses ini jika kapasitas tambahan diperlukan.

Mengontrol upgrade blue-green yang sedang berlangsung

Dengan upgrade blue-green, saat upgrade sedang berlangsung, Anda dapat menggunakan perintah untuk mengontrolnya. Ini memberi Anda kontrol tingkat tinggi atas proses jika Anda menentukan, misalnya, bahwa workload perlu di-roll back ke konfigurasi node lama.

Membatalkan (menjeda) upgrade blue-green

Jika membatalkan upgrade blue-green, Anda akan menjeda upgrade pada fase saat ini. Perintah ini dapat digunakan di semua fase, kecuali fase Hapus blue pool. Jika dibatalkan, node pool akan dijeda pada status menengah berdasarkan fase saat permintaan dikirimkan.

Pelajari cara membatalkan upgrade node pool.

Setelah upgrade dibatalkan, Anda dapat memilih salah satu dari dua jalur ke depan: lanjutkan atau roll back.

Melanjutkan upgrade blue-green

Jika telah memutuskan bahwa upgrade dapat dilanjutkan, Anda dapat melanjutkannya.

Jika melanjutkan, proses upgrade akan dilanjutkan pada fase menengah proses dijeda. Untuk mempelajari cara melanjutkan upgrade node pool, lihat Melanjutkan upgrade node pool.

Me-roll back upgrade blue-green

Jika telah memutuskan bahwa upgrade tidak boleh dilanjutkan dan ingin mengembalikan node pool ke kondisi awal, Anda dapat melakukan roll back. Untuk mempelajari cara me-roll back upgrade node pool, lihat melakukan roll back upgrade node pool.

Dengan alur kerja roll back, proses ini akan membalikkan dirinya sendiri untuk mengembalikan node pool ke status awal. Blue pool tidak akan terhubung sehingga workload dapat dijadwalkan ulang. Selama proses ini, autoscaler cluster dapat meningkatkan skala blue pool sesuai kebutuhan. Green pool akan dikuras dan dihapus.

Jika Anda ingin men-downgrade node pool ke versi sebelumnya setelah upgrade selesai, lihat Men-downgrade node pool.

Menyelesaikan upgrade blue-green

Selama fase Rendam, Anda dapat menyelesaikan upgrade jika telah menentukan bahwa workload tidak memerlukan validasi lebih lanjut pada konfigurasi node baru dan node lama dapat dihapus. Menyelesaikan upgrade akan melewati sisa fase Rendam dan melanjutkan ke fase Hapus blue pool.

Untuk mempelajari cara menggunakan perintah complete lebih lanjut, lihat Menyelesaikan upgrade node pool blue-green.

Langkah selanjutnya