Menginstal layanan pengelolaan

Layanan pengelolaan membuat, memperbarui, dan menghapus cluster GKE di AWS. Topik ini menjelaskan cara membuat layanan pengelolaan di dalam AWS Virtual Private Cloud (VPC) khusus. Jika Anda memiliki VPC yang sudah ada, lihat Mengintegrasikan dengan infrastruktur yang ada sebagai gantinya.

Sebelum memulai

Sebelum Anda mulai menggunakan GKE di AWS, pastikan Anda telah melakukan tugas berikut:

  • Selesaikan prasyarat.
  • Lakukan autentikasi dengan Google Cloud CLI.
    gcloud auth login && \
        gcloud auth application-default login

Nilai yang Anda butuhkan

Untuk menyelesaikan topik ini, Anda memerlukan hal berikut dari prasyarat:

  • ARN atau alias kunci KMS
  • Google Cloud kunci akun layanan
  • Google Cloud project
  • Alat command line aws, terraform, dan anthos-gke telah diinstal dan dikonfigurasi.
  • Region AWS dan zona ketersediaan tempat GKE di AWS membuat cluster pengelolaan Anda.

Mengonfigurasi layanan pengelolaan Anda

Anda mengonfigurasi layanan pengelolaan GKE di AWS dengan file YAML. File tersebut menyerupai konfigurasi resource kustom Kubernetes, tetapi bukan representasi resource.

  1. Buka terminal di komputer tempat Anda menginstal dan mengonfigurasi alat command line aws, terraform, dan anthos-gke.

  2. Buat direktori kosong untuk konfigurasi GKE di AWS Anda dan pindah ke direktori ini. Dokumentasi GKE di AWS menggunakan anthos-aws sebagai direktori konfigurasi contoh.

    mkdir anthos-aws
    cd anthos-aws
    
  3. Buat file bernama anthos-gke.yaml di editor teks. Tempelkan konten berikut ke dalam file.

     apiVersion: multicloud.cluster.gke.io/v1
     kind: AWSManagementService
     metadata:
       name: management
     spec:
       version: aws-1.14.1-gke.0
       region: AWS_REGION
       authentication:
         awsIAM:
           adminIdentityARNs:
           - ADMIN_AWS_IAM_ARN
       kmsKeyARN: KMS_KEY_ARN
       databaseEncryption:
         kmsKeyARN: DATABASE_KMS_KEY_ARN
       googleCloud:
         projectID: GCP_PROJECT_ID
         serviceAccountKeys:
           managementService: MANAGEMENT_KEY_PATH
           connectAgent: HUB_KEY_PATH
           node: NODE_KEY_PATH
       dedicatedVPC:
         vpcCIDRBlock: VPC_CIDR_BLOCK
         availabilityZones:
         - ZONE_1
         - ZONE_2
         - ZONE_3
         privateSubnetCIDRBlocks:
         - PRIVATE_CIDR_BLOCK_1
         - PRIVATE_CIDR_BLOCK_2
         - PRIVATE_CIDR_BLOCK_3
         publicSubnetCIDRBlocks:
         - PUBLIC_CIDR_BLOCK_1
         - PUBLIC_CIDR_BLOCK_2
         - PUBLIC_CIDR_BLOCK_3
       # Optional
       bastionHost:
         allowedSSHCIDRBlocks:
         - SSH_CIDR_BLOCK
       proxy: PROXY_JSON_FILE # optional
    

    Ganti nilai berikut:

    • AWS_REGION dengan region AWS untuk menjalankan cluster Anda.

    • ADMIN_AWS_IAM_ARN dengan Amazon Resource Name pengguna dengan izin AWS IAM untuk membuat layanan pengelolaan. Untuk mendapatkan ARN pengguna yang diautentikasi ke alat aws, jalankan aws sts get-caller-identity.

    • KMS_KEY_ARN dengan Amazon Resource Name dari kunci AWS KMS atau alias kunci KMS yang mengamankan data layanan pengelolaan Anda selama pembuatan. Misalnya, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. Jika Anda tidak memiliki ARN, jalankan aws kms list-keys untuk mengambil daftar ARN.

    • DATABASE_KMS_KEY_ARN dengan Amazon Resource Name dari kunci AWS KMS atau alias kunci yang mengamankan database etcd layanan pengelolaan Anda—misalnya, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab.

    • GCP_PROJECT_ID dengan ID project Google Cloud yang menghosting lingkungan GKE Enterprise Anda.

    • MANAGEMENT_KEY_PATH dengan lokasi Google Cloud pengelolaan kunci akun layanan Anda.

    • HUB_KEY_PATH dengan lokasi kunci akun layanan Google Cloud Connect Anda.

    • NODE_KEY_PATH dengan lokasi kunci akun layanan node GKE di AWS Anda.

    • VPC_CIDR_BLOCK dengan total rentang alamat IP CIDR untuk VPC AWS yang dibuat anthos-gke. Misalnya, 10.0.0.0/16. Untuk mengetahui informasi selengkapnya, lihat Dasar-dasar VPC dan subnet dalam dokumentasi AWS.

    • ZONE_1, ZONE_2, dan ZONE_3 dengan zona ketersediaan AWS EC2 tempat Anda ingin membuat node dan bidang kontrol. GKE di AWS membuat subnet di zona ini. Saat Anda menggunakan anthos-gke untuk membuat konfigurasi untuk cluster pengguna, GKE di AWS akan membuat bidang kontrol dan node pool di zona ketersediaan ini—misalnya, us-east-1a.
      Jika ingin menggunakan anthos-gke untuk membuat kelompok pengguna hanya di satu zona, Anda dapat menghapus ZONE_2, dan ZONE_3.

    • PRIVATE_CIDR_BLOCK_1, PRIVATE_CIDR_BLOCK_2, dan PRIVATE_CIDR_BLOCK_3, dengan blok CIDR untuk subnet pribadi Anda. Komponen GKE di AWS seperti layanan pengelolaan berjalan di subnet pribadi. Subnet ini harus berada dalam rentang CIDR VPC yang ditentukan di vpcCIDRBlock. Anda memerlukan satu subnet untuk setiap zona ketersediaan— misalnya, 10.0.1.0/24.

    • PUBLIC_CIDR_BLOCK_1, PUBLIC_CIDR_BLOCK_2, dan PUBLIC_CIDR_BLOCK_3, dengan blok CIDR untuk subnet publik Anda. Anda memerlukan satu subnet untuk setiap zona ketersediaan. Subnet publik mengekspos layanan cluster seperti load balancer ke grup keamanan dan rentang alamat yang ditentukan di AWS ACL jaringan dan grup keamanan— misalnya, 10.0.100.0/24.

    • SSH_CIDR_BLOCK dengan blok CIDR yang mengizinkan SSH masuk ke bastion host Anda—misalnya, 203.0.113.0/24. Jika Anda ingin mengizinkan SSH dari alamat IP mana pun, gunakan 0.0.0.0/0.

    • (opsional) PROXY_JSON_FILE dengan jalur relatif file konfigurasi proxy. Jika Anda tidak menggunakan proxy, hapus baris ini.

  4. Jalankan anthos-gke aws management init untuk membuat file anthos-gke.status.yaml dengan konfigurasi tambahan. Perintah init juga memvalidasi objek AWSManagementService di file anthos-gke.yaml Anda.

    anthos-gke aws management init
    
  5. Jalankan anthos-gke aws management apply untuk membuat layanan pengelolaan di AWS.

    anthos-gke aws management apply
    

    Perintah anthos-gke aws management apply mungkin memerlukan waktu hingga sepuluh menit untuk selesai. Setelah perintah selesai, layanan pengelolaan Anda akan berjalan di AWS.

Kolom opsional

File anthos-gke.yaml di atas menunjukkan kumpulan kolom standar yang dibutuhkan sebagian besar pelanggan. Konfigurasi di anthos-gke.yaml juga mendukung sejumlah kolom opsional. Fitur tersebut meliputi:

Untuk mengetahui informasi selengkapnya tentang semua kolom yang didukung di anthos-gke.yaml, lihat referensi AWS Management Service.

Menghubungkan ke layanan pengelolaan

Selanjutnya, gunakan anthos-gke untuk terhubung dan melakukan autentikasi ke layanan pengelolaan GKE di AWS.

Saat Anda membuat layanan pengelolaan menggunakan setelan default, bidang kontrol memiliki alamat IP pribadi yang tidak dapat diakses dari luar VPC AWS. Anda dapat mengakses layanan pengelolaan dengan salah satu dari tiga cara berikut:

  • melalui layanan AWS Direct Connect Amazon
  • melalui host bastion yang memproksi koneksi antara internet dan subnet GKE di AWS Anda
  • melalui VPN

Saat Anda membuat layanan pengelolaan di VPC khusus, GKE di AWS akan otomatis membuat host bastion di subnet publik. Jika Anda terhubung ke layanan pengelolaan melalui VPN atau AWS Direct Connect, host bastion ini tidak diperlukan. Atau, untuk terhubung ke layanan pengelolaan Anda melalui bastion host, lakukan langkah-langkah berikut:

  1. Gunakan alat terraform untuk membuat skrip yang membuka tunnel SSH ke host bastion. Pilih versi Terraform Anda, lalu jalankan perintah berikut:

    Terraform 0.12, 0.13

    terraform output bastion_tunnel > bastion-tunnel.sh
    chmod 755 bastion-tunnel.sh
    

    Terraform 0.14.3+

    terraform output -raw bastion_tunnel > bastion-tunnel.sh
    chmod 755 bastion-tunnel.sh
    

    Terraform membuat skrip bastion-tunnel.sh yang mereferensikan kunci SSH host bastion di ~/.ssh/anthos-gke.

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

    Untuk membuka tunnel ke bastion host, jalankan perintah berikut:

    ./bastion-tunnel.sh -N -4
    

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

  3. Buka terminal baru dan ubah direktori ke direktori dengan konfigurasi GKE di AWS Anda.

  4. Buat kubeconfig untuk autentikasi. Gunakan anthos-gke untuk menambahkan kredensial ke konfigurasi Anda yang disimpan di ~/.kube/config.

    anthos-gke aws management get-credentials
    
  5. Pastikan Anda dapat terhubung ke layanan pengelolaan dengan kubectl.

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

    Output-nya mencakup URL untuk server API layanan pengelolaan.

Langkah berikutnya