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 ada, lihat Mengintegrasikan dengan infrastruktur yang ada sebagai gantinya.

Sebelum memulai

Sebelum 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 perlukan

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 diinstal dan dikonfigurasi.
  • Region AWS dan zona ketersediaan tempat GKE di AWS membuat cluster pengelolaan Anda.

Mengonfigurasi layanan pengelolaan

Anda mengonfigurasi layanan pengelolaan GKE di AWS dengan file YAML. File ini 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, lalu ubah 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 yang memiliki 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 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 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 yang menghosting lingkungan GKE di AWS Anda. Google Cloud

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

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

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

    • VPC_CIDR_BLOCK dengan rentang CIDR total alamat IP untuk AWS VPC 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 cluster pengguna, GKE di AWS akan membuat bidang kontrol dan node pool di zona ketersediaan ini—misalnya, us-east-1a.
      Jika Anda ingin menggunakan anthos-gke untuk membuat cluster 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 dalam 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 dalam AWS ACL jaringan dan grup keamanan— misalnya, 10.0.100.0/24.

    • SSH_CIDR_BLOCK dengan blok CIDR yang memungkinkan 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 dalam 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 diselesaikan. Setelah perintah selesai, layanan pengelolaan Anda akan berjalan di AWS.

Kolom opsional

File anthos-gke.yaml di atas menampilkan kumpulan kolom umum yang akan dibutuhkan sebagian besar pelanggan. Konfigurasi di anthos-gke.yaml juga mendukung sejumlah kolom opsional. Kolom tersebut meliputi:

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

Menghubungkan ke layanan pengelolaan

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

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

  • melalui AWS Direct Connect layanan Amazon
  • melalui bastion host yang memproxy 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 bastion host di subnet publik. Jika Anda terhubung ke layanan pengelolaan melalui VPN atau AWS Direct Connect, bastion host ini tidak diperlukan. Jika tidak, untuk terhubung ke layanan pengelolaan melalui bastion host, lakukan langkah-langkah berikut:

  1. Gunakan alat terraform untuk membuat skrip yang membuka tunnel SSH ke bastion host. 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 bastion host 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 siap menutup koneksi, hentikan proses 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 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