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-gke
untuk mengganti konteks ke layanan pengelolaan Anda.cd anthos-aws anthos-gke aws management get-credentials
Dapatkan ID VPC AWS cluster Anda dengan
kubectl
dan 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_ID
Simpan 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_ID
Respons mencakup ID cluster Anda.
gke-12345678
Jika menginstal GKE di AWS ke dalam VPC khusus, Anda dapat menggunakan alat command line
aws
untuk 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-nya adalah objek yang berisi ID subnet Anda. Mirip dengan
subnet-1234abcdefg
. Anda dapat memeriksa variabel denganecho
:echo $SUBNET_ID
Respons mencakup ID subnet Anda.
subnet-012345678abcdef
Pribadi
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-nya adalah objek yang berisi ID subnet Anda. Mirip dengan
subnet-1234abcdefg
. Anda dapat memeriksa variabel denganecho
:echo $SUBNET_ID
Respons mencakup ID subnet Anda.
subnet-012345678abcdef
Beberapa subnet
Jika Anda menggunakan beberapa subnet untuk AWSNodePool (misalnya, jika Anda menggunakan beberapa zona ketersediaan), Anda harus memberi tag pada ID subnet secara terpisah.
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 text
Untuk 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 text
Responsnya mencakup ID subnet Anda.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
Beri 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=shared
Beberapa subnet
Untuk setiap subnet Anda, jalankan perintah berikut:
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
Ganti subnet-ids dengan daftar ID subnet, yang dipisahkan dengan spasi. Contoh,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
.