Untuk menyiapkan load balancer yang menghadap ke eksternal dengan GKE di AWS, Anda harus menandai VPC dan subnet publik dengan ID cluster. Jika Anda telah menandai VPC dan subnet, lanjutkan ke Mengaktifkan Ingress.
Sebelum memulai
Sebelum mulai menggunakan GKE di AWS, pastikan Anda telah melakukan tugas berikut:
- Selesaikan Prasyarat.
- Instal layanan pengelolaan.
- Buat cluster pengguna.
GKE di AWS memerlukan tag pada subnet yang berisi endpoint load balancer. GKE di AWS otomatis menandai semua subnet yang ditentukan di
spec.Networking.ServiceLoadBalancerSubnetIDs
kolom AWSCluster resource.
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 mengalihkan konteks ke layanan pengelolaan.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 mirip denganvpc-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_IDResponsnya mencakup ID cluster Anda.
gke-12345678Jika Anda 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.
- Pribadi, jika Anda ingin mengekspos Layanan di subnet pribadi.
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)Outputnya adalah objek yang berisi ID subnet Anda. Outputnya mirip dengan
subnet-1234abcdefg. Anda dapat memeriksa variabel denganecho:echo $SUBNET_IDResponsnya 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)Outputnya adalah objek yang berisi ID subnet Anda. Outputnya mirip dengan
subnet-1234abcdefg. Anda dapat memeriksa variabel denganecho:echo $SUBNET_IDResponsnya mencakup ID subnet Anda.
subnet-012345678abcdefBeberapa subnet
Jika Anda menggunakan beberapa subnet untuk AWSNodePools (misalnya, jika Anda menggunakan beberapa zona ketersediaan), Anda harus menandai 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. 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, 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. Misalnya,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.