Untuk menyiapkan load balancer yang menghadap eksternal dengan GKE di AWS, Anda harus memberi tag pada VPC dan subnet publik dengan ID cluster Anda. Jika Anda telah memberi tag pada VPC dan subnet, lanjutkan ke Mengaktifkan Ingress.
Sebelum memulai
Sebelum Anda mulai menggunakan GKE di AWS, pastikan Anda telah melakukan tugas berikut:
- Selesaikan Prasyarat.
- Instal layanan pengelolaan.
- Buat cluster pengguna.
GKE on AWS memerlukan tag pada subnet yang berisi endpoint load balancer. GKE di AWS secara otomatis memberi tag pada semua subnet yang ditentukan di kolom
spec.Networking.ServiceLoadBalancerSubnetIDs
resource AWSCluster.
Jika Anda ingin menambahkan subnet tambahan ke cluster pengguna, atau jika Anda perlu menerapkan kembali tag ke subnet yang ada, lakukan langkah-langkah berikut.
Dari direktori
anthos-aws, gunakananthos-gkeuntuk mengganti konteks ke layanan pengelolaan Anda.cd anthos-aws anthos-gke aws management get-credentials
Dapatkan ID VPC AWS cluster Anda dengan
kubectldan simpan sebagai variabel.export VPC_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')Periksa konten variabel dengan
echo. Outputnya akan terlihat sepertivpc-12345678abcdef0.echo $VPC_IDSimpan ID cluster Anda ke dalam variabel lingkungan.
export CLUSTER_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')Anda dapat memeriksa variabel dengan
echo:echo $CLUSTER_IDRespons mencakup ID cluster Anda.
gke-12345678Jika menginstal GKE di AWS ke dalam VPC khusus, Anda dapat menggunakan alat command line
awsuntuk mengambil ID subnet.Pilih dari opsi berikut:
- Publik, jika Anda ingin mengekspos Layanan di subnet publik Anda.
- Pribadi, jika Anda ingin mengekspos Layanan di subnet pribadi Anda.
Beberapa subnet, jika Anda ingin mengekspos Layanan di beberapa subnet.
Publik
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output text)Output adalah objek yang berisi ID subnet Anda. Mirip dengan
subnet-1234abcdefg. Anda dapat memeriksa variabel denganecho:echo $SUBNET_IDRespons mencakup ID subnet Anda.
subnet-012345678abcdefPribadi
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text)Output adalah objek yang berisi ID subnet Anda. Mirip dengan
subnet-1234abcdefg. Anda dapat memeriksa variabel denganecho:echo $SUBNET_IDRespons mencakup ID subnet Anda.
subnet-012345678abcdefBeberapa subnet
Jika Anda menggunakan beberapa subnet untuk AWSNodePool (misalnya, jika Anda menggunakan beberapa zona ketersediaan), Anda harus memberi tag pada ID subnet satu per satu.
Ambil daftar ID subnet Anda dengan
aws ec2 describe-subnets.Untuk mendapatkan daftar semua subnet publik, jalankan perintah berikut:
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output textUntuk mendapatkan daftar semua subnet pribadi, jalankan perintah berikut:
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output textResponsnya mencakup ID subnet Anda.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdefBeri tag pada subnet Anda dengan ID cluster Anda. Jika Anda memiliki beberapa subnet, pilih Beberapa subnet.
Subnet tunggal
aws ec2 create-tags \ --resources $SUBNET_ID \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=sharedBeberapa subnet
Untuk setiap subnet Anda, jalankan perintah berikut:
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=sharedGanti subnet-ids dengan daftar ID subnet, yang dipisahkan dengan spasi. Contoh,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.