Mengupgrade GKE di AWS

Untuk mengupgrade lingkungan GKE di AWS, upgrade terlebih dahulu layanan pengelolaan, lalu upgrade cluster pengguna.

Layanan pengelolaan

Di bagian berikut, Anda akan mengupgrade layanan pengelolaan.

Sebelum memulai

Untuk terhubung ke resource GKE di AWS, lakukan langkah-langkah berikut. Pilih apakah Anda memiliki VPC AWS yang sudah ada (atau koneksi langsung ke VPC Anda) atau membuat VPC khusus saat membuat layanan pengelolaan.

VPC yang ada

Jika Anda memiliki koneksi langsung atau VPN ke VPC yang ada, hapus baris env HTTP_PROXY=http://localhost:8118 dari perintah dalam topik ini.

VPC Khusus

Saat Anda membuat layanan pengelolaan di VPC khusus, GKE di AWS menyertakan host bastion di subnet publik.

Untuk terhubung ke layanan pengelolaan, lakukan langkah-langkah berikut:

  1. Beralih ke direktori dengan konfigurasi GKE di AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.

    cd anthos-aws

  2. Untuk membuka tunnel, jalankan skrip bastion-tunnel.sh. Tunnel meneruskan ke localhost:8118.

    Untuk membuka tunnel ke bastion host, jalankan perintah berikut:

    ./bastion-tunnel.sh -N
    

    Pesan dari tunnel SSH akan muncul di jendela ini. Saat Anda siap untuk menutup koneksi, hentikan proses dengan menggunakan Control+C atau menutup jendela.

  3. Buka terminal baru dan ubah ke direktori anthos-aws Anda.

    cd anthos-aws
  4. Pastikan Anda dapat terhubung ke cluster dengan kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    Output-nya mencakup URL untuk server API layanan pengelolaan.

Mengupgrade layanan pengelolaan

Untuk mengupgrade layanan pengelolaan, Anda mendownload versi baru anthos-gke, mengedit anthos-gke.yaml, dan menerapkan perubahan.

Download versi baru anthos-gke

Versi terbaru alat anthos-gke adalah aws-1.14.1-gke.0. Untuk mendownload versi baru anthos-gke, lakukan langkah-langkah berikut:

Alat command line anthos-gke hanya mendukung Linux dan macOS.

  1. Download biner dari Cloud Storage.

    Linux

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/linux/amd64/anthos-gke .
    

    macOS

    gcloud storage cp gs://gke-multi-cloud-release/aws/aws-1.14.1-gke.0/bin/darwin/amd64/anthos-gke .
    
  2. Perbarui izin anthos-gke dan salin ke /usr/local/bin.

    chmod 755 anthos-gke
    sudo mv anthos-gke /usr/local/bin
    
  3. Pastikan versinya adalah aws-1.14.1-gke.0

    anthos-gke version
    

Mengupgrade layanan pengelolaan

Untuk mengupgrade cluster, lakukan langkah-langkah berikut:

  1. Beralih ke direktori dengan konfigurasi GKE di AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.
    cd anthos-aws
  2. Buka anthos-gke.yaml di editor teks. Ubah nilai spec.version menjadi aws-1.14.1-gke.0.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
     name: management
    spec:
     version: aws-1.14.1-gke.0
     region: aws-region
     ...
    
  3. Jalankan anthos-gke aws management init untuk memvalidasi objek AWSManagementService dan memperbarui file anthos-gke.status.yaml.

    anthos-gke aws management init
    
  4. Jalankan anthos-gke aws management apply untuk mengupdate layanan pengelolaan di AWS.

    anthos-gke aws management apply
    

    Perintah anthos-gke akan memulai upgrade layanan pengelolaan Anda. Proses upgrade dapat memerlukan waktu hingga sepuluh menit.

Cluster pengguna

Di bagian berikut, Anda akan mengupgrade cluster pengguna.

Sebelum memulai

Sebelum dapat menyelesaikan langkah-langkah ini, Anda harus memiliki layanan pengelolaan dan minimal satu cluster pengguna.

Versi Kubernetes yang didukung

GKE on AWS aws-1.14.1-gke.0 mendukung versi Kubernetes berikut:

  • 1.23.15-gke.2000
  • 1.24.9-gke.2100
  • 1.25.5-gke.2100

Untuk mengetahui informasi tentang versi yang didukung sebelumnya, lihat Catatan rilis.

Upgrade komponen

Bagian ini menjelaskan cara mengupgrade AWSClusters dan AWSNodePools.

AWSCluster

Anda dapat mengupdate AWSCluster ke versi baru GKE di AWS tanpa mengupdate AWSNodePool.

AWSNodePools

Anda tidak dapat mengupdate AWSNodePool ke versi yang lebih baru daripada AWSCluster. Untuk memperbarui AWSNodePool, Anda harus memperbarui AWSCluster terlebih dahulu.

Versi AWSNodePools Anda tidak boleh lebih dari dua versi minor lebih lama dari versi AWSCluster Anda.

Mengupgrade AWSCluster dan AWSNodePool yang ada

Untuk mengupgrade cluster, Anda harus memperbarui kolom version objek AWSCluster dan AWSNodePool di layanan pengelolaan Anda.

AWSCluster

Untuk mengupgrade AWSCluster, lakukan langkah-langkah berikut:

  1. Dari direktori anthos-aws, gunakan anthos-gke untuk mengganti konteks ke layanan pengelolaan Anda.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Buka file YAML yang membuat AWSCluster Anda di editor teks. Jika tidak memiliki file YAML awal, Anda dapat menggunakan kubectl edit.

    Edit YAML

    Jika Anda mengikuti petunjuk di Membuat cluster pengguna, file YAML Anda akan diberi nama cluster-0.yaml. Buka file ini di editor teks.

    kubectl edit

    Untuk menggunakan kubectl edit guna mengedit AWSCluster, jalankan perintah berikut:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    Ganti cluster-name dengan AWSCluster Anda. Misalnya, untuk mengedit cluster default, cluster-0, jalankan perintah berikut:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. Perbarui kolom spec.controlPlane.version ke versi baru GKE di AWS. Versi terbaru adalah 1.25.5-gke.2100.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    metadata:
      name: cluster-0
    spec:
      region: us-east-1
      controlPlane:
        version: gke_version
        instanceType: t3.medium
      ...
    

    Ganti gke-version dengan versi Kubernetes yang Anda inginkan. Versi Kubernetes terbaru yang didukung adalah 1.25.5-gke.2100.

  4. Simpan file. Jika Anda menggunakan kubectl edit, kubectl akan menerapkan perubahan secara otomatis. Jika Anda mengedit file YAML, terapkan ke layanan pengelolaan dengan perintah berikut:

    env HTTPS_PROXY=http://localhost:8118 \
    kubectl apply -f cluster-0.yaml
    

    Layanan pengelolaan kemudian memperbarui AWSCluster Anda.

AWSNodePool

Untuk mengupgrade AWSNodePool, lakukan langkah-langkah berikut:

  1. Dari direktori anthos-aws, gunakan anthos-gke untuk mengganti konteks ke layanan pengelolaan Anda.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Buka file YAML yang membuat AWSNodePool Anda di editor teks. Jika Anda mengikuti petunjuk di Membuat cluster pengguna, file ini akan diberi nama cluster-0.yaml.

  3. Perbarui nilai spec.version di resource AWSNodePool Anda.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    metadata:
      name: cluster-0-pool-0
    spec:
      clusterName: cluster-0
      region: us-east-1
      version: gke-version
      ...
    

    Ganti gke-version dengan versi Kubernetes yang Anda inginkan. Versi Kubernetes terbaru yang didukung adalah 1.25.5-gke.2100.

  4. Terapkan konfigurasi baru ke layanan pengelolaan Anda dengan kubectl.

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    

    Layanan pengelolaan kemudian memperbarui satu node AWSNodePool Anda dalam satu waktu. Sebelum node dimatikan, Pod yang berjalan di node tersebut menerima SIGTERM. Jika Pod tidak dimatikan setelah masa tenggang, Pod akan menerima SIGKILL.

Lihat Status

Untuk mendapatkan status upgrade, jalankan kubectl get AWSClusters di layanan pengelolaan Anda.

env HTTPS_PROXY=http://localhost:8118 \
    kubectl get AWSClusters

Output mencakup nama, status, usia, versi, dan endpoint setiap cluster. Misalnya, output berikut menyertakan satu AWSCluster bernama cluster-0.

NAME        STATE          AGE     VERSION         ENDPOINT
cluster-0   Upgrading   2m41s      1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com

Upgrade cluster pengguna Anda selesai jika STATE cluster Anda adalah Provisioned.