Halaman ini memberikan petunjuk panduan memulai untuk membuat cluster dan node pool, lalu men-deploy aplikasi contoh menggunakan GKE di AWS.
Halaman ini ditujukan untuk administrator dan Operator IT yang ingin menyiapkan, memantau, dan mengelola infrastruktur cloud. Untuk mempelajari lebih lanjut peran umum dan tugas contoh yang kami referensikan dalam Google Cloud konten, lihat Peran dan tugas pengguna GKE umum.
Memulai cluster dengan Terraform
Anda dapat menggunakan Terraform untuk membuat cluster dan node pool. Sebelum membuat cluster, skrip Terraform juga menyiapkan AWS VPC Anda.
Anda dapat mempelajari Terraform lebih lanjut di lingkungan AWS dalam referensi cluster Terraform dan referensi node pool Terraform.
Setelah membuat VPC dan cluster dengan Terraform, lanjutkan ke Men-deploy aplikasi ke cluster untuk men-deploy aplikasi contoh.
Memulai cluster tanpa Terraform
Jika Anda lebih suka menyiapkan AWS VPC dan membuat cluster serta node pool tanpa Terraform, ikuti petunjuk ini.
Sebelum memulai
Sebelum membuat cluster, Anda harus menyelesaikan prasyarat. Secara khusus, Anda harus menyediakan resource berikut:
- AWS VPC tempat cluster akan berjalan.
- Maksimal tiga subnet AWS untuk tiga replika bidang kontrol. Setiap subnet harus berada di AWS Availability Zone yang berbeda.
- Peran IAM AWS yang diasumsikan GKE di AWS saat mengelola cluster Anda. Hal ini memerlukan serangkaian izin IAM tertentu. izin IAM.
- Kunci CMK simetris KMS untuk enkripsi data cluster (etcd) dan konfigurasi dalam penyimpanan.
- Profil instance IAM AWS untuk setiap replika bidang kontrol. Hal ini memerlukan serangkaian izin IAM tertentu.
- Pasangan kunci SSH EC2 (opsional) jika Anda memerlukan akses SSH ke instance EC2 yang menjalankan setiap replika bidang kontrol.
Anda bertanggung jawab untuk membuat dan mengelola resource ini, yang dapat dibagikan di antara semua cluster GKE di AWS. Semua resource AWS yang mendasarinya dan berada dalam cakupan cluster dikelola oleh GKE di AWS.
Menetapkan setelan default untuk gcloud CLI
Gunakan gcloud CLI untuk mengonfigurasi setelan default untuk project dan Google Cloud region default Anda.
Project Anda memiliki project ID sebagai ID unik. Saat membuat project, Anda dapat menggunakan project ID yang dibuat secara otomatis atau membuat project ID Anda sendiri.
Region Anda adalah lokasi tempat cluster Anda akan dikelola
. Google Cloud Misalnya, us-west1. Lihat
Region pengelolaan untuk mengetahui detail selengkapnya.
Saat mengonfigurasi setelan default ini, Anda tidak perlu menyertakannya saat menjalankan Google Cloud CLI. Anda juga dapat menentukan setelan atau mengganti setelan default dengan meneruskan flag --project dan --location ke Google Cloud CLI.
Saat Anda membuat resource GKE di AWS setelah mengonfigurasi project dan lokasi default, resource akan otomatis dibuat di project dan lokasi tersebut.
Untuk menetapkan setelan default, ikuti langkah-langkah berikut:
Tetapkan project default:
gcloud config set project PROJECT_IDGanti
PROJECT_IDdengan project ID Anda.Tetapkan lokasi pengelolaan default:
gcloud config set container_aws/location GOOGLE_CLOUD_LOCATIONGanti
GOOGLE_CLOUD_LOCATIONdengan lokasi Anda, sepertius-west1.
Memilih rentang CIDR untuk cluster Anda
Kubernetes memerlukan dua rentang CIDR untuk disediakan bagi cluster. Rentang CIDR ini harus dipilih agar tidak tumpang-tindih dengan rentang CIDR yang digunakan oleh subnet VPC Anda. Rentang CIDR ini harus cukup besar untuk ukuran maksimum cluster Anda yang diharapkan.
Rentang CIDR alamat Pod: Saat
Podbaru dibuat, alamat IP dialokasikan dari rentang ini. Rentang contoh: 192.168.208.0/20Rentang CIDR alamat Layanan: Saat
Servicebaru dibuat, alamat IP akan dialokasikan dari rentang ini. Rentang contoh: 192.168.224.0/20
Membuat cluster
Gunakan perintah berikut untuk membuat cluster di GKE di AWS. Untuk mengetahui informasi selengkapnya tentang perintah ini, termasuk parameter opsionalnya, lihat halaman referensi gcloud container aws create.
gcloud container aws clusters create aws-cluster-0 \
--cluster-version 1.34.1-gke.4700 \
--aws-region AWS_REGION \
--fleet-project FLEET_PROJECT_ID \
--vpc-id VPC_ID \
--subnet-ids CONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3 \
--pod-address-cidr-blocks POD_CIDR_BLOCK \
--service-address-cidr-blocks SERVICE_CIDR_BLOCK \
--role-arn API_ROLE_ARN \
--iam-instance-profile CONTROL_PLANE_PROFILE \
--database-encryption-kms-key-arn DB_KMS_KEY_ARN \
--config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \
--tags "google:gkemulticloud:cluster=aws-cluster-0"
Ganti kode berikut:
AWS_REGION: region AWS tempat membuat cluster.FLEET_PROJECT_ID: project host Fleet tempat cluster akan didaftarkanVPC_ID: ID AWS VPC untuk cluster ini yang Anda siapkan di langkah prasyarat Membuat VPCCONTROL_PLANE_SUBNET_1,CONTROL_PLANE_SUBNET_2,CONTROL_PLANE_SUBNET_3: ID subnet untuk tiga instance bidang kontrol cluster Anda yang Anda buat di langkah prasyarat Membuat subnet pribadiPOD_CIDR_BLOCK: rentang alamat CIDR untuk pod cluster AndaSERVICE_CIDR_BLOCK: rentang alamat CIDR untuk layanan cluster AndaAPI_ROLE_ARN: ARN peran IAM untuk layanan GKE Multi-Cloud yang Anda buat di langkah prasyarat Membuat peran API GKE Multi-CloudCONTROL_PLANE_PROFILE: nama profil instance IAM yang terkait dengan cluster yang Anda pilih di langkah prasyarat Membuat peran bidang kontrolDB_KMS_KEY_ARN: Amazon Resource Name (ARN) dari salah satu kunci AWS KMS yang Anda buat di langkah prasyarat Membuat kunci AWS KMSCONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS lainnya yang Anda buat di langkah prasyarat Membuat kunci AWS KMS
Jika ada, parameter --tags akan menerapkan tag AWS yang diberikan ke semua resource AWS yang mendasarinya dan dikelola oleh GKE di AWS. Contoh ini menandai node bidang kontrol Anda dengan nama cluster tempat node tersebut berada.
Membuat node pool
Gunakan perintah berikut untuk membuat node pool:
gcloud container aws node-pools create pool-0 \
--cluster aws-cluster-0 \
--node-version 1.34.1-gke.4700 \
--min-nodes 1 \
--max-nodes 5 \
--max-pods-per-node 110 \
--root-volume-size 50 \
--subnet-id NODEPOOL_SUBNET_ID \
--iam-instance-profile NODEPOOL_PROFILE \
--config-encryption-kms-key-arn CONFIG_KMS_KEY_ARN \
--ssh-ec2-key-pair EC2_KEY_PAIR \
--tags "google:gkemulticloud:cluster=aws-cluster-0"
Ganti kode berikut:
NODEPOOL_SUBNET_ID: ID salah satu subnet pribadi yang Anda buat di langkah prasyarat Membuat subnet pribadiNODEPOOL_PROFILE: nama profil instance IAM untuk instance EC2 di node pool yang Anda pilih di langkah prasyarat Membuat peran IAM node poolCONFIG_KMS_KEY_ARN: Amazon Resource Name (ARN) dari kunci AWS KMS untuk mengenkripsi data penggunaEC2_KEY_PAIR(opsional): nama pasangan kunci EC2 yang dibuat untuk akses SSH (opsional) yang Anda buat di langkah prasyarat Membuat pasangan kunci SSH
Melihat status cluster Anda
Setelah membuat cluster dan node pool, Anda dapat melihat status cluster dengan Google Cloud CLI atau Google Cloud konsol. Untuk melihat status cluster, pilih apakah Anda menggunakan Google Cloud CLI atau Google Cloud konsol, lalu ikuti langkah-langkah berikut:
gcloud
Gunakan perintah gcloud container aws clusters describe untuk mendapatkan detail tentang cluster Anda:
gcloud container aws clusters describe CLUSTER_NAME \
--location GOOGLE_CLOUD_LOCATION
Ganti kode berikut:
CLUSTER_NAME: nama cluster AndaGOOGLE_CLOUD_LOCATION: nama lokasi yang mengelola cluster Google Cloud
Google Cloud Konsol
Di Google Cloud konsol, buka halaman Ringkasan cluster Google Kubernetes Engine.
Cluster Anda akan tercantum berdasarkan nama dan lokasinya.
Klik nama cluster. Panel dengan informasi tentang cluster, termasuk status dan fitur yang diaktifkan, akan muncul.
Mendapatkan kredensial autentikasi untuk cluster
Setelah membuat cluster, Anda perlu mendapatkan kredensial autentikasi agar dapat berinteraksi dengan cluster:
gcloud container aws clusters get-credentials aws-cluster-0
Perintah ini mengonfigurasi kubectl untuk mengakses cluster yang Anda buat menggunakan
gateway Connect. Anda memerlukan setidaknya satu node pool untuk menggunakan gateway Connect karena gateway tersebut mengandalkan agen Connect, yang berjalan sebagai Deployment di cluster.
Men-deploy aplikasi ke cluster
Setelah membuat cluster, Anda dapat men-deploy aplikasi dalam kontainer ke cluster tersebut. Untuk panduan memulai ini, Anda dapat men-deploy aplikasi web contoh kami, hello-app.
Anda menggunakan objek Kubernetes untuk membuat dan mengelola resource cluster Anda. Anda menggunakan objek Deployment untuk men-deploy aplikasi stateless seperti server web. Objek layanan menentukan aturan dan load balancer untuk mengakses aplikasi Anda dari internet.
Membuat Deployment
Untuk menjalankan hello-app di cluster, Anda harus men-deploy aplikasi dengan menjalankan perintah berikut:
kubectl create deployment hello-server --image=us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
Perintah Kubernetes ini,
kubectl create deployment
membuat Deployment yang bernama hello-server. Pod Deployment akan menjalankan image container hello-app.
Dalam perintah ini:
--imagemenentukan image container yang akan di-deploy. Dalam hal ini, perintah tersebut akan mengambil image contoh dari repositori Artifact Registry,us-docker.pkg.dev/google-samples/containers/gke/hello-app.:1.0menunjukkan versi image tertentu yang akan ditarik. Jika Anda tidak menentukan versi, image yang diberi taglatestakan digunakan.
Mengekspos Deployment
Setelah men-deploy aplikasi, Anda perlu mengeksposnya ke internet agar pengguna dapat mengaksesnya. Anda dapat mengekspos aplikasi Anda dengan membuat Service, yaitu resource Kubernetes yang mengekspos aplikasi Anda ke traffic eksternal.
Untuk mengekspos aplikasi Anda, jalankan
kubectl expose
perintah berikut:
kubectl expose deployment hello-server --type LoadBalancer --port 80 --target-port 8080
Meneruskan flag --type LoadBalancer akan membuat load balancer AWS untuk container Anda. Flag --port menginisialisasi port publik 80 ke internet dan flag --target-port mengarahkan traffic ke port 8080 aplikasi.
Load balancer ditagih sesuai dengan harga load balancer AWS.
Memeriksa dan melihat aplikasi
Periksa Pod yang berjalan menggunakan
kubectl get pods:kubectl get pods
Anda akan melihat satu Pod
hello-serverberjalan di cluster Anda.Periksa Layanan
hello-servermenggunakankubectl get service:kubectl get service hello-server
Dari output perintah ini, salin alamat IP eksternal Layanan dari kolom
EXTERNAL-IP.Lihat aplikasi dari browser web dengan menggunakan IP eksternal dengan port yang diekspos:
http://EXTERNAL-IP
Anda baru saja berhasil men-deploy aplikasi web dalam container ke GKE di AWS.
Pembersihan
Hapus Layanan dan Deployment aplikasi:
kubectl delete service hello-server kubectl delete deployment hello-server
Hapus node pool Anda dengan menjalankan
gcloud container aws node-pools delete:gcloud container aws node-pools delete pool-0 --cluster aws-cluster-0
Hapus cluster Anda dengan menjalankan
gcloud container aws clusters delete:gcloud container aws clusters delete aws-cluster-0