Menyiapkan jaringan AWS

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:

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.

  1. Dari direktori anthos-aws, gunakan anthos-gke untuk mengalihkan konteks ke layanan pengelolaan.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 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}')
    
  3. Periksa konten variabel dengan echo. Outputnya mirip dengan vpc-12345678abcdef0.

    echo $VPC_ID
    
  4. 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
    

    Responsnya mencakup ID cluster Anda.

    gke-12345678
    
  5. Jika Anda 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.
    • 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 dengan echo:

    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)
    

    Outputnya adalah objek yang berisi ID subnet Anda. Outputnya mirip dengan subnet-1234abcdefg. Anda dapat memeriksa variabel dengan echo:

    echo $SUBNET_ID
    

    Responsnya mencakup ID subnet Anda.

    subnet-012345678abcdef
    

    Beberapa 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 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
    
  6. Beri 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=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 dengan spasi. Misalnya, subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.