Melampirkan cluster EKS

Ringkasan

Melampirkan cluster berarti menghubungkannya ke Google Cloud dengan mendaftarkannya ke Pengelolaan perangkat Google Cloud dan menginstal software cluster terpasang GKE di dalamnya.

Anda dapat menambahkan cluster menggunakan gcloud CLI atau Terraform. Untuk mempelajari cara membuat dan melampirkan cluster EKS menggunakan Terraform, lihat repositori GitHub sampel untuk cluster yang terpasang GKE.

Untuk melampirkan cluster EKS menggunakan gcloud, lakukan langkah-langkah berikut.

Prasyarat

Pastikan cluster Anda memenuhi persyaratan cluster.

Saat melampirkan cluster, Anda harus menentukan:

Region administratif adalah region Google Cloud untuk mengelola cluster yang terpasang. Anda dapat memilih region yang didukung, tetapi praktik terbaiknya adalah memilih region yang paling dekat dengan cluster Anda. Tidak ada data pengguna yang disimpan di wilayah administratif.

Versi platform adalah versi cluster terpasang GKE yang akan diinstal di cluster Anda. Anda dapat menampilkan daftar semua versi yang didukung dengan menjalankan perintah berikut:

gcloud container attached get-server-config  \
  --location=GOOGLE_CLOUD_REGION

Ganti GOOGLE_CLOUD_REGION dengan nama lokasi Google Cloud untuk mengelola cluster Anda.

Penomoran versi platform

Dokumen ini mengacu pada versi cluster terpasang GKE sebagai versi platform, untuk membedakannya dari versi Kubernetes. Cluster terpasang GKE menggunakan konvensi penomoran versi yang sama dengan GKE - misalnya, 1.21.5-gke.1. Saat melampirkan atau mengupdate cluster, Anda harus memilih versi platform yang versi minornya sama dengan atau satu tingkat di bawah versi Kubernetes cluster Anda. Misalnya, Anda dapat memasang cluster yang menjalankan Kubernetes v1.22.* dengan platform cluster terpasang GKE versi 1.21.* atau 1.22.*.

Hal ini memungkinkan Anda mengupgrade cluster ke versi minor berikutnya sebelum mengupgrade cluster yang terpasang GKE.

Melampirkan cluster EKS

Untuk memasang cluster EKS Anda ke Pengelolaan perangkat Google Cloud, lakukan langkah-langkah berikut:

  1. Pastikan file kubeconfig Anda memiliki entri untuk cluster yang ingin dilampirkan:

    aws eks update-kubeconfig --region AWS_REGION \
      --name CLUSTER_NAME
    
  2. Ambil URL penerbit OIDC dengan perintah berikut:

    aws eks describe-cluster \
      --region AWS_REGION \
      --name CLUSTER_NAME \
      --query "cluster.identity.oidc.issuer" \
      --output text
    

    Output perintah ini adalah URL penerbit OIDC Anda. Simpan nilai ini untuk digunakan nanti.

  3. Jalankan perintah ini untuk mengekstrak konteks kubeconfig cluster Anda dan menyimpannya di variabel lingkungan KUBECONFIG_CONTEXT:

    KUBECONFIG_CONTEXT=$(kubectl config current-context)
    
  4. Gunakan perintah gcloud container attached clusters register untuk mendaftarkan cluster:

    gcloud container attached clusters register CLUSTER_NAME \
      --location=GOOGLE_CLOUD_REGION \
      --fleet-project=PROJECT_NUMBER \
      --platform-version=PLATFORM_VERSION \
      --distribution=eks \
      --issuer-url=ISSUER_URL \
      --context=KUBECONFIG_CONTEXT \
      --kubeconfig=KUBECONFIG_PATH
    

    Ganti:

  • AWS_REGION: region AWS tempat cluster EKS Anda berada
  • CLUSTER_NAME: nama cluster Anda
  • GOOGLE_CLOUD_REGION: region Google Cloud untuk mengelola cluster Anda
  • PLATFORM_VERSION: versi cluster terpasang GKE yang akan digunakan untuk cluster
  • PROJECT_NUMBER: project host fleet tempat cluster akan didaftarkan
  • ISSUER_URL: URL penerbit yang diambil sebelumnya
  • KUBECONFIG_CONTEXT: konteks di kubeconfig untuk mengakses cluster EKS, seperti yang diekstrak sebelumnya
  • KUBECONFIG_PATH: jalur ke kubeconfig Anda

Mengizinkan Cloud Logging / Cloud Monitoring

Agar GKE dapat menambahkan cluster untuk membuat serta mengupload log dan metrik sistem ke Google Cloud, cluster tersebut harus diberi otorisasi.

Untuk mengizinkan identitas workload Kubernetes gke-system/gke-telemetry-agent guna menulis log ke Google Cloud Logging, dan metrik ke Google Cloud Monitoring, jalankan perintah ini:

gcloud projects add-iam-policy-binding GOOGLE_PROJECT_ID \
  --member="serviceAccount:GOOGLE_PROJECT_ID.svc.id.goog[gke-system/gke-telemetry-agent]" \
  --role=roles/gkemulticloud.telemetryWriter

Ganti GOOGLE_PROJECT_ID dengan project ID Google Cloud cluster.

Binding IAM ini memberikan akses ke semua cluster di project project Google Cloud untuk mengupload log dan metrik. Anda hanya perlu menjalankannya setelah membuat cluster pertama untuk project tersebut.

Penambahan binding IAM ini akan gagal, kecuali jika setidaknya satu cluster telah dibuat di project Google Cloud Anda. Hal ini karena kumpulan workload identity yang dirujuk (GOOGLE_PROJECT_ID.svc.id.goog) tidak disediakan hingga pembuatan cluster.