Untuk menyiapkan load balancer yang ditampilkan secara eksternal dengan GKE di AWS, Anda harus memberi tag VPC dan subnet publik dengan ID cluster Anda. Jika Anda telah memberi tag pada VPC dan subnet, lanjutkan ke bagian Mengaktifkan Ingress.
Sebelum memulai
Sebelum mulai menggunakan GKE di AWS, pastikan Anda telah melakukan tugas berikut:
- Lengkapi Prasyarat.
- Instal layanan pengelolaan.
- Buat cluster pengguna.
GKE di AWS memerlukan tag pada subnet yang berisi endpoint
load balancer. GKE di AWS akan otomatis memberi tag pada semua subnet yang ditentukan di kolom spec.Networking.ServiceLoadBalancerSubnetIDs
dari 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 mengalihkan 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 menyerupaivpc-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 tersebut dengan
echo
:echo $CLUSTER_ID
Respons mencakup ID cluster Anda.
gke-12345678
Jika menginstal GKE di AWS ke VPC khusus, Anda dapat menggunakan alat command line
aws
untuk mengambil ID subnet.Pilih dari opsi berikut:
- {i>Public<i}, jika Anda ingin mengekspos Layanan pada subnet publik Anda.
- Private, jika Anda ingin mengekspos Service pada 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. Tampilannya mirip dengan
subnet-1234abcdefg
. Anda dapat memeriksa variabel tersebut denganecho
:echo $SUBNET_ID
Responsnya 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. Tampilannya mirip dengan
subnet-1234abcdefg
. Anda dapat memeriksa variabel tersebut denganecho
:echo $SUBNET_ID
Responsnya mencakup ID subnet Anda.
subnet-012345678abcdef
Beberapa subnet
Jika menggunakan beberapa subnet untuk AWSNodePools (misalnya, jika menggunakan beberapa zona ketersediaan), Anda harus memberi tag 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 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 dengan ID cluster Anda. Jika Anda memiliki beberapa subnet, pilih Multiple subnet.
Subnet tunggal
aws ec2 create-tags \ --resources $SUBNET_ID \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=shared
Beberapa subnet
Untuk setiap subnet, 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 oleh spasi. Misalnya,
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef
.