Melampirkan cluster pihak ketiga ke Google Cloud (generasi sebelumnya)

Cluster terlampir GKE memungkinkan Anda melihat cluster Kubernetes yang ada di konsol bersama dengan cluster GKE, Google Cloud dan mengaktifkan beberapa fitur GKE di cluster tersebut, termasuk kontrol konfigurasi terpusat dengan Config Sync.

Cluster Kubernetes yang didukung

Anda dapat melampirkan cluster Kubernetes yang sesuai dan menyertakan node x86 ke fleet Anda dan melihatnya di Google Cloud konsol bersama dengan cluster GKE.

Jenis dan versi cluster berikut telah divalidasi oleh Google. Untuk mengetahui informasi tentang fitur GKE yang didukung di cluster terlampir, lihat Dukungan versi dan upgrade GKE.

Jenis cluster terlampir Versi Kubernetes
Red Hat OpenShift Kubernetes Engine (OKE) 4.9, 4.10 1.23, 1.24
Red Hat OpenShift Container Platform (OCP) 4.9, 4.10 1.23, 1.24
Rancher Kubernetes Engine (RKE) 1.3.8 1.23, 1.24
KIND 0.12 1.23, 1.24
K3s 1.20 1.20
K3d 4.4.3 1.20

Sebelum memulai

  1. Login ke akun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Anthos API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. Instal Google Cloud CLI.

  6. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  7. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Anthos API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  11. Instal Google Cloud CLI.

  12. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  13. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  14. Periksa prasyarat pendaftaran fleet untuk memastikan Anda memiliki izin yang relevan dan API yang diaktifkan untuk mendaftarkan cluster.
  15. Lihat panduan Sebelum memulai untuk mengetahui persyaratan khusus dalam melampirkan cluster di luar Google Cloud, termasuk langkah-langkah penyiapan khusus yang mungkin Anda perlukan untuk jenis cluster Anda.

Mendaftarkan cluster terlampir

Anda harus mendaftarkan semua cluster yang ingin digunakan dengan fitur GKE ke fleet project Anda. Fleet menyediakan cara untuk mengelompokkan dan menormalisasi cluster Kubernetes secara logis, sehingga mempermudah pengelolaan infrastruktur. Cluster dalam fleet yang sama dapat dijelajahi dan dikelola bersama di Google Cloud konsol, dan banyak komponen GKE dan Google Cloud menggunakan konsep fleet seperti kesamaan identitas dan kesamaan namespace untuk menyederhanakan penggunaan beberapa cluster. Anda dapat mengetahui lebih lanjut tentang fleet dan fungsi yang diaktifkannya di panduan Pengelolaan fleet.

Anda berhak mengaktifkan dan menggunakan fitur GKE di cluster ini, dan Anda dapat mengelola beberapa fitur GKE di tingkat fleet dari halaman fitur GKE.

Set up identity

Semua cluster terlampir memerlukan identitas untuk digunakan Connect Agent saat melakukan autentikasi ke Google. Jika cluster Anda memenuhi persyaratan, Anda dapat mendaftarkannya dengan Workload Identity fleet yang diaktifkan untuk autentikasi. Cluster dengan fitur ini diaktifkan menggunakan identitas dari workload identity pool fleet di seluruh fleet. Anda dapat mengetahui lebih lanjut cara kerja Workload Identity fleet dan keuntungan menggunakannya di Menggunakan Workload Identity fleet.

Jika Anda tidak dapat menggunakan Workload Identity fleet, pendaftaran cluster terlampir memerlukan Google Cloud akun layanan untuk autentikasi. Sebaiknya buat akun layanan baru untuk setiap cluster yang ingin Anda lampirkan. Untuk membuat akun layanan untuk cluster dengan peran yang sesuai, ikuti petunjuk di Membuat akun layanan dengan gcloud. Google Cloud Setelah membuat akun layanan, Anda dapat menggunakan file JSON dengan kredensial akun layanan (file kunci) untuk mendaftarkan cluster, seperti yang dijelaskan di bagian berikutnya.

Mendaftarkan cluster Anda

Sebaiknya dapatkan status keanggotaan cluster Anda setelah Anda mendaftarkannya untuk memastikan cluster tersebut terhubung dengan benar ke Google Cloud. Lihat panduan pemecahan masalah jika Anda mengalami masalah dengan pendaftaran.

gcloud

Jalankan perintah berikut:

gcloud container fleet memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --service-account-key-file=SERVICE_ACCOUNT_KEY_PATH

Ganti kode berikut:

  • MEMBERSHIP_NAME: nama keanggotaan yang Anda pilih dan digunakan untuk merepresentasikan cluster yang didaftarkan ke fleet secara unik.
  • SERVICE_ACCOUNT_KEY_PATH: jalur file lokal ke file JSON kunci pribadi akun layanan yang didownload sebagai bagian dari Prasyarat. Kunci akun layanan ini disimpan sebagai rahasia bernama creds-gcp di namespace gke-connect.
  • KUBECONFIG_CONTEXT: konteks cluster dari cluster yang didaftarkan seperti yang muncul di file kubeconfig. Anda dapat memperoleh nilai ini dari command line dengan menjalankan kubectl config current-context.
  • KUBECONFIG_PATH: jalur file lokal tempat kubeconfig Anda yang berisi entri untuk cluster yang didaftarkan disimpan. Nilai default-nya adalah $KUBECONFIG jika variabel lingkungan tersebut ditetapkan; jika tidak, nilai default-nya adalah $HOME/.kube/config.

Mendaftarkan cluster terlampir dengan Workload Identity fleet

Untuk mendaftarkan cluster terlampir dengan Workload Identity fleet yang diaktifkan, jalankan perintah berikut. Untuk mengetahui informasi selengkapnya tentang jenis cluster terlampir yang dapat menggunakan fitur ini dan persyaratan tambahan apa pun, lihat Prasyarat cluster terlampir.

gcloud container fleet memberships register MEMBERSHIP_NAME \
   --context=KUBECONFIG_CONTEXT \
   --kubeconfig=KUBECONFIG_PATH \
   --enable-workload-identity \
   --has-private-issuer

Konsol

Membuat perintah pendaftaran

Anda dapat menggunakan Google Cloud konsol untuk membantu membuat gcloud perintah pendaftaran guna mendaftarkan cluster Anda (hanya dengan akun layanan).

Untuk mendaftarkan cluster:

  1. Di Google Cloud konsol, buka halaman Ringkasan cluster Google Kubernetes Engine.

    Buka cluster GKE

  2. Klik Daftarkan cluster yang ada.

  3. Klik Tambahkan cluster eksternal.

  4. Masukkan nama cluster yang ingin Anda daftarkan di kolom Nama cluster.

  5. Opsional: Tambahkan Google Cloud label ke cluster Anda.

  6. Klik Buat perintah pendaftaran.

  7. Di Cloud Shell atau tempat Anda menyimpan kredensial akun layanan, edit dan jalankan perintah gcloud yang ditampilkan di halaman. Anda harus menentukan nilai berikut:

    • CLUSTER_CONTEXT adalah konteks cluster yang muncul di dalam file kubeconfig. Anda dapat memperoleh nilai ini dari command line dengan menjalankan kubectl config current-context.
    • KUBECONFIG_PATH adalah jalur file lokal tempat file kubeconfig Anda disimpan. Nilai default-nya adalah $KUBECONFIG jika variabel lingkungan tersebut ditetapkan; jika tidak, nilai default-nya adalah $HOME/.kube/config.
    • LOCAL_KEY_PATH adalah jalur ke file kunci akun layanan Anda.

    Menjalankan perintah ini akan men-deploy Connect Agent di cluster pengguna Anda. Saat Connect Agent terhubung ke Google Cloud dan cluster Anda terdaftar, pesan sukses akan ditampilkan di halaman.

  8. Klik Tetapkan label, atau klik Lewati jika Anda tidak menetapkan label apa pun.

Opsi pendaftaran lanjutan (khusus command line)

Mendownload manifes Connect Agent

Untuk mendownload manifes penginstalan Connect Agent tanpa men-deploy agen, misalnya jika Anda ingin memeriksa atau mengedit manifes sebelum penginstalan, teruskan flag --manifest-output-file ke perintah gcloud container fleet memberships register. Contoh:

--manifest-output-file=[MANIFEST_FILE_PATH]

dengan [MANIFEST_FILE_PATH] adalah jalur file lokal tempat Anda ingin menyimpan manifes penginstalan Connect Agent.

Menggunakan opsi ini tidak akan men-deploy Connect Agent ke dalam cluster. Untuk men-deploy Connect Agent, terapkan manifes yang didownload secara manual ke cluster Anda.

Menggunakan server proxy

Untuk mengonfigurasi server proxy, teruskan flag --proxy ke perintah gcloud container fleet memberships register. Contoh:

--proxy=[URL]

dengan [URL] adalah alamat proxy.

Connect Agent hanya mendukung proxy HTTP dan HTTPS berbasis CONNECT saja, serta menerima alamat IP dan nama host. Pastikan untuk menentukan protokol yang sesuai dengan jenis proxy di URL. Misalnya, untuk meneruskan nama host HTTPS:

--proxy=https://mycorpproxy.com:443

Kecuali jika Anda menentukan sebaliknya, Connect Agent menggunakan port 3128 untuk proxy.

Jika proxy Anda memerlukan otorisasi, pastikan Anda meneruskan kredensial, seperti:

--proxy=http://user:password@10.10.10.10:8888

Menginstal Connect Agent di cluster dengan node Windows dan Linux

Connect Agent harus berjalan di node Linux. Jika Anda menginstal di cluster campuran dengan node Linux dan Windows, Anda dapat memastikan bahwa Connect Agent di-deploy ke node Linux dengan menambahkan pemilih node yang sesuai ke definisi deployment.

Jalankan perintah berikut untuk mengupdate deployment dengan pemilih node yang sesuai:

kubectl patch deployment \
$(kubectl get deployment -o=jsonpath='{.items[*].metadata.name}' -n gke-connect) \
-p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/os":"linux"}}}}}' -n gke-connect

Untuk memvalidasi bahwa update berhasil, jalankan perintah berikut:

kubectl get deployment -o=jsonpath='{.items[].spec.template.spec.nodeSelector}' -n gke-connect

Perintah ini akan menampilkan:

{"kubernetes.io/os":"linux"}

Pemecahan masalah

Jika Anda mengalami masalah selama penyiapan ini, lihat panduan pemecahan masalah pembuatan fleet .

Mengaktifkan fitur GKE di cluster terlampir

Setelah mendaftarkan cluster, Anda dapat mengaktifkan fitur GKE yang tersedia di cluster tersebut untuk aplikasi Anda. Fitur ini hanya didukung pada jenis cluster yang divalidasi. Anda dapat melihat versi fitur saat ini yang didukung pada jenis ini di Dukungan versi dan upgrade support.

Panduan berikut menunjukkan cara mengaktifkan fitur yang didukung di cluster Anda:

Mengakses cluster terlampir

Setelah Anda mendaftarkan cluster terlampir, cluster tersebut akan muncul di halaman cluster GKE di konsol Google Cloud console. Namun, untuk melihat detail selengkapnya seperti node dan workload, Anda harus login dan melakukan autentikasi ke cluster. Untuk login ke cluster terlampir dari Google Cloud konsol, ikuti petunjuk di Login ke cluster dari Google Cloud konsol. Bergantung pada metode autentikasi yang Anda pilih, perhatikan bahwa Anda atau admin platform mungkin perlu melakukan beberapa penyiapan tambahan sebelum Anda atau pengguna lain dapat login ke cluster.

Untuk mengakses cluster terlampir dari command line menggunakan a Google Cloud identitas, lihat Menghubungkan ke cluster terdaftar dengan gateway Connect.

Untuk melakukan autentikasi ke cluster terlampir menggunakan penyedia identitas pihak ketiga yang ada (khusus cluster EKS di AWS, fitur pratinjau), lihat Menyiapkan GKE Identity Service untuk fleet dan Mengakses cluster dengan GKE Identity Service.

Apa langkah selanjutnya?