Menggunakan proxy dengan GKE di AWS

Topik ini menunjukkan cara merutekan traffic dari GKE di layanan pengelolaan AWS dan Connect melalui proxy HTTP/HTTPS.

GKE di AWS memerlukan akses internet karena alasan berikut:

  • Layanan pengelolaan mendaftarkan cluster pengguna dengan Connect.
  • Cluster pengguna menjalankan Connect Agent.
  • Semua node cluster pengguna dan layanan pengelolaan mendownload image dari Container Registry.

Anda dapat mengarahkan traffic ini melalui proxy HTTP atau HTTPS. Mulai dari GKE di AWS 1.8, Anda dapat mengonfigurasi setelan proxy individual untuk layanan pengelolaan dan setiap cluster Anda. Untuk mengetahui informasi selengkapnya tentang cara mengubah setelan proxy, lihat Mengubah setelan proxy cluster.

Anda mendeklarasikan setelan proxy dalam file JSON yang direferensikan dalam anthos-gke.yaml.

Prasyarat

Sebelum mengonfigurasi GKE di AWS untuk menggunakan proxy, Anda harus mengaktifkan endpoint VPC AWS, menentukan grup keamanan untuk proxy, dan mengizinkan koneksi keluar ke layanan Google Cloud tertentu.

Untuk menggunakan proxy HTTP, cluster pengguna Anda harus menjalankan Kubernetes 1.17 atau versi yang lebih tinggi.

Mengaktifkan endpoint VPC

Sebelum mengonfigurasi proxy, Anda harus membuat endpoint VPC untuk GKE pada penginstalan AWS. Dengan endpoint VPC, resource di subnet pribadi dapat mengakses layanan AWS tanpa akses internet publik.

Tabel berikut berisi daftar layanan AWS yang memerlukan endpoint VPC oleh GKE di AWS, beserta jenis endpoint dan Grup Keamanan untuk setiap GKE di komponen AWS yang memerlukan akses ke endpoint.

Layanan Jenis endpoint Grup keamanan
Penskalaan Otomatis Antarmuka Pengelolaan, bidang kontrol, kumpulan node
EC2 Antarmuka Pengelolaan, bidang kontrol, kumpulan node
Load Balancing Antarmuka Pengelolaan, bidang kontrol, kumpulan node
Key Management Service Antarmuka Pengelolaan, bidang kontrol, kumpulan node
S3 Gateway Pengelolaan, bidang kontrol, kumpulan node
Layanan Token Keamanan (STS) Antarmuka Pengelolaan, bidang kontrol, kumpulan node

Anda dapat membuat endpoint dari Konsol VPC AWS. Opsi yang Anda tetapkan saat membuat endpoint VPC bergantung pada konfigurasi VPC Anda.

Menentukan grup keamanan

GKE Anda di komponen AWS harus dapat terhubung ke server proxy. Buat atau cari grup keamanan AWS yang memungkinkan koneksi keluar ke server proxy. Grup keamanan harus mengizinkan akses keluar dari grup Keamanan, Bidang kontrol, dan kumpulan Node ke alamat dan port proxy. Simpan ID grup keamanan ini (misalnya, sg-12345678).

Jenis Protocol Port dari Ke port Alamat
Traffic Keluar TCP Port proxy Port proxy Grup keamanan proxy

Mengizinkan koneksi keluar ke layanan Google Cloud

Agar GKE di AWS dapat terhubung ke layanan Google Cloud, server proxy harus mengizinkan traffic ke domain berikut:

  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • storage.googleapis.com
  • www.googleapis.com
  • gcr.io
  • k8s.gcr.io
  • EC2-REGION.ec2.archive.ubuntu.com

Ganti EC2-REGION dengan region AWS EC2 tempat penginstalan GKE di AWS berjalan. Misalnya, us-west-1.ec2.archive.ubuntu.com/.

Jika Anda menggunakan Cloud Service Mesh dengan Prometheus dan Kiali, izinkan akses keluar dari domain berikut:

  • docker.io
  • quay.io

Membuat file JSON konfigurasi proxy

File JSON konfigurasi proxy berisi satu objek yang berisi tiga key-value pair, dengan nama kunci httpProxy, httpsProxy, dan noProxy. Nama pengguna dan sandi dienkripsi melalui amplop dengan kunci AWS KMS sebelum diterapkan ke server.

{
  "httpProxy": "HTTP_PROXY",
  "httpsProxy": "HTTPS_PROXY",
  "noProxy": "NO_PROXY"
}

Ganti kode berikut:

  • HTTP_PROXY dengan alamat server proxy untuk merutekan permintaan HTTP.
  • HTTPS_PROXY dengan server proxy untuk merutekan permintaan HTTPS.
  • NO_PROXY dengan daftar IP opsional, rentang CIDR, dan domain yang tidak menggunakan proxy.

Lihat Referensi konfigurasi untuk mengetahui informasi selengkapnya. Misalnya, konfigurasi berikut menggunakan proxy di 10.0.0.254 dan mengecualikan sejumlah situs.

{
  "httpProxy": "http://user:password@10.0.0.254:80",
  "httpsProxy": "http://user:password@10.0.0.254:443",
  "noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/16,example.com"
}

Menambahkan proxy ke anthos-gke.yaml

Konfigurasikan AWSManagementService dengan melakukan langkah-langkah berikut:

  1. Ubah ke direktori dengan GKE pada konfigurasi AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.

    cd anthos-aws

  2. Buka anthos-gke.yaml di editor teks. Tambahkan nilai untuk spec.proxy seperti dalam contoh berikut.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
      name: management
    spec:
      version: aws-1.14.1-gke.0
      proxy: PROXY_JSON_FILE
      securityGroupIDs:
      - SECURITY_GROUP_ID
      ...
    

    Ganti kode berikut:

    • PROXY_JSON_FILE dengan jalur relatif konfigurasi JSON proxy Anda.
    • SECURITY_GROUP_ID dengan ID grup keamanan yang memiliki akses ke server proxy.

    Simpan file.

  3. Jalankan anthos-gke aws management init untuk menghasilkan file anthos-gke.status.yaml dengan konfigurasi tambahan. Perintah init juga memvalidasi objek AWSManagementService dalam file anthos-gke.yaml Anda.

    anthos-gke aws management init
    
  4. Jalankan anthos-gke aws management apply untuk mengupdate layanan pengelolaan Anda di AWS.

    anthos-gke aws management apply
    
  5. Selanjutnya, Buat cluster pengguna. Sertakan grup keamanan proxy dalam masing-masing spec.controlPlane.securityGroupIDs dan spec.securityGroupIDs AWSCluster serta AWSNodePool. Cluster tersebut kemudian memiliki akses ke proxy.

Referensi konfigurasi

Kolom Deskripsi Contoh Diperlukan
httpProxy URL server proxy. Nilai ini harus menyertakan nama host/alamat IP, serta port, nama pengguna, dan sandi. "http://user:password@10.184.37.42:80" Ya
httpsProxy URL proxy untuk traffic HTTPS terenkripsi. URL httpProxy akan digunakan jika httpsProxy tidak diberikan. "http://user:password@10.101.16.31:80" Tidak
noProxy Daftar URL yang dipisahkan koma yang akan dikecualikan dari pembuatan proxy. Setiap nilai dapat berupa alamat IP, rentang CIDR, nama domain, atau karakter asterix (*). Domain yang ditentukan dengan titik di bagian awal (misalnya ".google.com") menunjukkan bahwa subdomain diperlukan. Satu asterix * menunjukkan bahwa tidak ada proxy yang harus dilakukan. "1.2.3.4,10.0.0.0/16,example.com,.site.com" Tidak

Langkah selanjutnya

Untuk informasi selengkapnya tentang menyelesaikan penginstalan GKE di AWS, lihat referensi berikut:

Untuk mengetahui informasi tentang cara mengubah setelan proxy cluster, lihat: