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
, dananthos-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.
Buka terminal di komputer tempat Anda menginstal dan mengonfigurasi alat command line
aws
,terraform
, dananthos-gke
.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
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
, jalankanaws 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, jalankanaws 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 menggunakananthos-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, gunakan0.0.0.0/0
.(opsional) PROXY_JSON_FILE dengan jalur relatif file konfigurasi proxy. Jika Anda tidak menggunakan proxy, hapus baris ini.
Jalankan
anthos-gke aws management init
untuk membuat fileanthos-gke.status.yaml
dengan konfigurasi tambahan. Perintahinit
juga memvalidasi objekAWSManagementService
di fileanthos-gke.yaml
Anda.anthos-gke aws management init
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:
- spec.bootstrapS3Bucket untuk menentukan bucket AWS S3 untuk data konfigurasi GKE di AWS
- spec.tags untuk memberi tag pada resource AWS terkait cluster
- spec.securityGroupIDs untuk menetapkan ID grup keamanan tambahan ke cluster pengelolaan
- spec.*Volume dan sub-field-nya volumeType, iops, dan kmsKeyARN untuk menyesuaikan parameter volume EBS
- spec.terraform.stateGCSBucket untuk menentukan bucket Layanan Google Cloud bagi data konfigurasi Terraform
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:
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
.Untuk membuka tunnel, jalankan skrip
bastion-tunnel.sh
. Tunnel meneruskan darilocalhost: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.
Buka terminal baru dan ubah direktori ke direktori dengan konfigurasi GKE di AWS Anda.
Buat
kubeconfig
untuk autentikasi. Gunakananthos-gke
untuk menambahkan kredensial ke konfigurasi Anda yang disimpan di~/.kube/config
.anthos-gke aws management get-credentials
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
- Buat cluster pengguna.
- Gunakan proxy dengan GKE di AWS.
- Ubah konfigurasi
kubectl
untuk terhubung ke GKE di AWS dengan lebih sedikit opsi command line.