Merotasi IP bidang kontrol


Halaman ini menjelaskan cara melakukan rotasi IP untuk bidang kontrol di cluster Google Kubernetes Engine (GKE).

Ringkasan

Anda dapat melakukan rotasi IP untuk mengubah alamat IP yang digunakan bidang kontrol Anda untuk melayani permintaan dari Kubernetes API. Alamat IP bidang kontrol bersifat statis dan tidak berubah kecuali Anda melakukan rotasi IP.

Rotasi IP mengubah sertifikat SSL dan cluster certificate authority (CA), yang membatasi kemampuan untuk menghubungkan alamat sebelumnya dengan alamat baru.

Rotasi IP juga terjadi sebagai bagian dari rotasi kredensial.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu lakukan inisialisasi gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Melakukan rotasi IP

Rotasi IP adalah proses multilangkah:

  1. Saat memulai rotasi IP, bidang kontrol mulai melayani di alamat IP baru sekaligus di alamat IP lama.
  2. GKE membuat ulang node pool Anda untuk menggunakan alamat IP baru, dengan mempertimbangkan ketersediaan pemeliharaan. Anda juga dapat membuat ulang node pool secara manual dengan melakukan upgrade versi node pool ke versi GKE yang sama dengan yang sudah dijalankan node.
  3. Setelah memulai rotasi, Anda harus memperbarui klien API cluster (seperti mesin pengembangan yang menggunakan antarmuka command line kubectl) agar mulai berkomunikasi dengan bidang kontrol melalui alamat IP yang baru.
  4. Saat Anda menyelesaikan rotasi, bidang kontrol akan berhenti melayani traffic dengan alamat IP sebelumnya.

Saat Anda memulai rotasi alamat IP, GKE akan membuat ulang node untuk Anda, dengan mempertimbangkan ketersediaan pemeliharaan. Selama peristiwa besar seperti Google Cloud Next, GKE mungkin menjeda pembuatan ulang node otomatis sehingga Anda tidak mengalami gangguan. Untuk mempelajari lebih lanjut pengaruh ketersediaan pemeliharaan terhadap rotasi IP, dan jenis gangguan yang dialami cluster Anda selama langkah-langkah rotasi, lihat baris untuk rotasi IP dalam tabel perubahan manual yang membuat ulang node menggunakan strategi upgrade node dan mematuhi kebijakan pemeliharaan. GKE bergantung pada ketersediaan resource untuk mengupdate node. Untuk mempelajari update node lebih lanjut, lihat Merencanakan gangguan update node.

Jika Anda tidak menyelesaikan rotasi alamat IP dalam waktu tujuh hari setelah memulainya, GKE akan mencoba menyelesaikan rotasi untuk Anda. Jika ada node dalam cluster Anda yang masih menggunakan alamat IP sebelumnya, operasi penyelesaian otomatis akan gagal, tetapi GKE akan terus mencoba menyelesaikan hingga node dibuat ulang dan operasi dapat diselesaikan.

Anda harus merencanakan untuk melacak dan menyelesaikan rotasi alamat IP secara manual setelah memulai rotasi. Anda dapat mengganti ketersediaan pemeliharaan dan memicu langkah-langkah tertentu secara manual untuk memastikan rotasi kredensial dapat diselesaikan. Jangan mengandalkan penyelesaian otomatis, yang merupakan upaya terbaik.

Memulai rotasi

  1. Untuk memulai rotasi IP, jalankan perintah berikut:

    gcloud container clusters update CLUSTER_NAME \
        --start-ip-rotation
    

    Ganti CLUSTER_NAME dengan nama cluster.

    Outputnya mirip dengan yang berikut ini:

    This will start an IP Rotation on cluster CLUSTER_NAME.
    The master will be updated to serve on a new IP address in addition to
    the current IP address. Google Kubernetes Engine will then schedule recreation of all nodes
    to point to the new IP address.  If maintenance window is
    used, nodes are not recreated until a maintenance window occurs. See
    documentation on how to manually update nodes. This operation is
    long-running and will block other operations on the cluster (including
    delete) until it has run to completion.
    Do you want to continue (Y/n)?
    

    Perintah ini mengonfigurasi bidang kontrol untuk melayani dua alamat IP: alamat asli dan alamat baru.

  2. Konfirmasi rotasi dan biarkan shell terbuka agar operasi selesai.

Membuat ulang node

Setelah mengonfigurasi ulang server API untuk melayani alamat IP baru, GKE secara otomatis memperbarui node Anda agar dapat menggunakan alamat IP baru. GKE mengupgrade semua node ke versi node terdekat yang didukung, yang akan membuat ulang node. Untuk mengetahui informasi selengkapnya, lihat Upgrade node pool.

Secara default, GKE otomatis menyelesaikan rotasi alamat IP tujuh hari setelah Anda memulai operasi. Jika masa atau pengecualian pemeliharaan aktif di cluster Anda mencegah GKE membuat ulang beberapa node selama periode tujuh hari ini, rotasi alamat IP awalnya gagal selesai. Namun, GKE terus mencoba membuat ulang node dan menyelesaikan rotasi hingga ketersediaan pemeliharaan memungkinkan GKE melanjutkan.

  • Jika Anda menggunakan pengecualian pemeliharaan atau masa pemeliharaan yang dapat mengakibatkan rotasi gagal, upgrade cluster Anda secara manual untuk memaksa pembuatan ulang node:

    gcloud container clusters upgrade CLUSTER_NAME \
        --location=LOCATION \
        --cluster-version=VERSION
    

    Ganti VERSION dengan versi GKE yang sama dengan yang sudah digunakan cluster.

    Untuk mengetahui informasi selengkapnya, lihat Pemeliharaan otomatis yang mematuhi kebijakan pemeliharaan GKE.

Memeriksa progres pembuatan ulang node pool

  1. Untuk memantau operasi rotasi, jalankan perintah berikut:

    gcloud container operations list \
        --filter="operationType=UPGRADE_NODES AND status=RUNNING" \
        --format="value(name)"
    

    Perintah ini menampilkan ID operasi dari operasi upgrade node.

  2. Untuk melakukan polling pada operasi, teruskan ID operasi ke perintah berikut:

    gcloud container operations wait OPERATION_ID
    

Node pool dibuat ulang satu per satu, dan masing-masing memiliki operasinya sendiri. Jika Anda memiliki beberapa node pool, gunakan petunjuk ini untuk melakukan polling pada setiap operasi.

Mengupdate klien API

Setelah memulai rotasi IP, Anda harus memperbarui semua klien API di luar cluster (seperti kubectl pada mesin developer) agar mengarah ke alamat IP baru.

Untuk memperbarui klien API, jalankan perintah berikut untuk setiap klien:

gcloud container clusters get-credentials CLUSTER_NAME

Memperbarui alamat IP dan aturan firewall yang di-hardcode

Jika Anda melakukan hardcode pada alamat IP bidang kontrol di lingkungan Anda, atau jika Anda memiliki aturan firewall yang menargetkan alamat IP bidang kontrol, perbarui alamat ke alamat IP baru. Jika Anda menyelesaikan rotasi tanpa memperbarui alamat IP di aplikasi dan di aturan firewall, resource tersebut mungkin mengalami gangguan saat GKE berhenti menayangkan di alamat IP bidang kontrol sebelumnya.

Menyelesaikan rotasi

Setelah memperbarui klien API di luar cluster, selesaikan rotasi untuk mengonfigurasi bidang kontrol agar hanya melayani alamat IP baru.

Untuk menyelesaikan rotasi, jalankan perintah berikut:

gcloud container clusters update CLUSTER_NAME \
    --complete-ip-rotation

Outputnya mirip dengan hal berikut ini:

This will complete the in-progress IP Rotation on cluster CLUSTER_NAME.
The master will be updated to stop serving on the old IP address and only
serve on the new IP address. Make sure all API clients have been updated
to communicate with the new IP address (e.g. by running `gcloud container
clusters get-credentials --project PROJECT_ID --region COMPUTE_REGION
CLUSTER_NAME`). This operation is long-running and will
block other operations on the cluster (including delete) until it has
run to completion.

Jika rotasi alamat IP gagal selesai dan menampilkan pesan error yang mirip dengan yang berikut, lihat Error 400: Node pool memerlukan pembuatan ulang:

ERROR: (gcloud.container.clusters.update) ResponseError: code=400, message=Node pool "test-pool-1" requires recreation.

Jika Anda tidak menyelesaikan rotasi alamat IP dalam waktu tujuh hari setelah memulainya, GKE akan mencoba menyelesaikan rotasi untuk Anda. Jika ada node di cluster Anda yang masih menggunakan alamat IP sebelumnya—kemungkinan karena ketersediaan pemeliharaan dan batasan terkait yang mencegah node dibuat ulang—penyelesaian otomatis akan gagal, tetapi GKE akan terus mencoba menyelesaikan hingga node dibuat ulang dan operasi dapat diselesaikan.

Langkah selanjutnya