Menginstal layanan pengelolaan

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

Sebelum memulai

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

  • Lengkapi prasyarat.
  • Melakukan 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
  • Kunci akun layanan Google Cloud
  • Project Google Cloud
  • Alat command line aws, terraform, dan anthos-gke yang diinstal dan dikonfigurasi.
  • Region AWS dan zona ketersediaan tempat GKE di AWS membuat cluster pengelolaan Anda.

Mengonfigurasi layanan pengelolaan

Anda mengonfigurasi GKE di layanan pengelolaan AWS dengan file YAML. File ini mirip dengan 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, lalu ubah ke direktori ini. Dokumentasi GKE di AWS menggunakan anthos-aws sebagai contoh direktori konfigurasi.

    mkdir anthos-aws
    cd anthos-aws
    
  3. Buat file bernama anthos-gke.yaml di editor teks. Tempel 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 IAM AWS untuk membuat layanan pengelolaan. Untuk mendapatkan ARN pengguna yang diautentikasi ke alat aws, jalankan aws sts get-caller-identity.

    • KMS_KEY_ARN dengan Nama Resource Amazon 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 Nama Resource Amazon 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 project ID Google Cloud yang menghosting lingkungan GKE Enterprise Anda.

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

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

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

    • VPC_CIDR_BLOCK dengan total rentang CIDR alamat IP untuk VPC AWS yang dibuat anthos-gke. Misalnya, 10.0.0.0/16. Untuk informasi lebih lanjut, 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 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. GKE pada komponen AWS seperti layanan pengelolaan yang 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 dalam ACL jaringan dan grup keamanan AWS—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 dari 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
    

    Mungkin perlu waktu hingga sepuluh menit untuk menyelesaikan perintah anthos-gke aws management apply. Setelah perintah selesai, layanan pengelolaan Anda akan berjalan di AWS.

Kolom opsional

File anthos-gke.yaml di atas menunjukkan kumpulan kolom standar yang diperlukan sebagian besar pelanggan. Konfigurasi di anthos-gke.yaml juga mendukung sejumlah kolom opsional. Contoh 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 menghubungkan dan mengautentikasi ke GKE di layanan pengelolaan 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 milik Amazon
  • melalui host bastion yang menjadi proxy koneksi antara internet dan GKE Anda pada subnet AWS
  • 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 Anda 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 maju 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 tutup jendela.

  3. Buka terminal baru dan ubah direktori ke direktori dengan konfigurasi GKE pada 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
    

    Outputnya mencakup URL untuk server API layanan pengelolaan.

Langkah selanjutnya