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
, dananthos-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.
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, lalu ubah ke direktori ini. Dokumentasi GKE di AWS menggunakan
anthos-aws
sebagai contoh direktori konfigurasi.mkdir anthos-aws cd anthos-aws
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
, jalankanaws 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, jalankanaws 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, misalnyaus-east-1a
.
Jika Anda ingin menggunakananthos-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, gunakan0.0.0.0/0
.(opsional) PROXY_JSON_FILE dengan jalur relatif dari 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
dalam 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
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:
- spec.bootstrapS3Bucket untuk menentukan bucket AWS S3 untuk GKE pada data konfigurasi 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-kolomnya volumeType, iops, dan kmsKeyARN untuk menyesuaikan parameter volume EBS
- spec.terraform.stateGCSBucket untuk menentukan bucket Layanan Google Cloud untuk data konfigurasi Terraform
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:
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
.Untuk membuka tunnel, jalankan skrip
bastion-tunnel.sh
. Tunnel maju 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 siap menutup koneksi, hentikan proses menggunakan Control+C atau tutup jendela.
Buka terminal baru dan ubah direktori ke direktori dengan konfigurasi GKE pada 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
Outputnya mencakup URL untuk server API layanan pengelolaan.
Langkah selanjutnya
- Buat cluster pengguna.
- Gunakan proxy dengan GKE di AWS.
- Ubah konfigurasi
kubectl
Anda agar terhubung ke GKE di AWS dengan lebih sedikit opsi command line.