Mengupgrade GKE di AWS

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

Layanan pengelolaan

Di bagian berikut, Anda akan mengupgrade layanan pengelolaan.

Sebelum memulai

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

VPC yang ada

Jika Anda memiliki koneksi langsung atau VPN ke VPC yang sudah 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. Beralihlah ke direktori yang memiliki konfigurasi GKE on AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.

    cd anthos-aws

  2. Untuk membuka tunnel, jalankan skrip bastion-tunnel.sh. Tunnel akan mengarah 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 menutup koneksi, hentikan prosesnya menggunakan Control+C atau menutup jendela.

  3. Buka terminal baru dan pindah 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
    

    Outputnya mencakup URL untuk server API layanan pengelolaan.

Mengupgrade layanan pengelolaan Anda

Untuk mengupgrade layanan pengelolaan, download versi baru anthos-gke, edit anthos-gke.yaml, lalu terapkan perubahan tersebut.

Download anthos-gke versi baru

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

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

    macOS

    gsutil 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 Anda

Untuk mengupgrade cluster, lakukan langkah-langkah berikut:

  1. Beralihlah ke direktori yang memiliki konfigurasi GKE on 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 mengupdate 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 mulai mengupgrade layanan pengelolaan Anda. Proses upgrade mungkin 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 di 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 upgrade AWSClusters dan AWSNodePools Anda.

AWSCluster

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

AWSNodePools

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

Versi AWSNodePools Anda tidak boleh kurang dari dua versi minor di belakang versi AWSCluster.

Mengupgrade AWSCluster dan AWSNodePool yang ada

Untuk mengupgrade cluster, perbarui kolom version dari 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 mengalihkan konteks ke layanan pengelolaan Anda.

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

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

    Edit YAML

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

    edit kubectl

    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. Update 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 Anda menggunakan perintah berikut:

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

    Kemudian, layanan pengelolaan akan mengupdate AWSCluster Anda.

AWSNodePool

Untuk mengupgrade AWSNodePool, lakukan langkah-langkah berikut:

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

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

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

  3. Update 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 node AWSNodePool Anda satu per satu. Sebelum node dihentikan, Pod yang berjalan pada node tersebut akan 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

Outputnya 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 setelah STATE cluster Anda Disediakan.