Menggunakan proxy HTTP

Dokumen ini menunjukkan cara merutekan traffic dari GKE di AWS melalui proxy HTTP/HTTPS. Anda menentukan konfigurasi proxy saat membuat cluster.

Ringkasan

GKE di AWS dapat mengarahkan traffic internet keluar melalui proxy karena alasan berikut:

  • Untuk mendaftarkan cluster dengan Google Cloud melalui Connect
  • Untuk menjalankan Connect Agent
  • Untuk mendownload image dari Container Registry

Batasan

  • Kolom httpProxy dan httpsProxy tidak mendukung URL yang diawali dengan https://. Anda harus menggunakan http://. Permintaan ke port 443 menggunakan HTTPS.
  • Anda harus menetapkan nilai untuk httpProxy, httpsProxy, dan noProxy.
  • Anda mungkin perlu menambahkan domain, IP, atau CIDR lain ke kolom noProxy. Sebaiknya tambahkan rentang IP VPC. Mulai dari Google Kubernetes Engine versi 1.22, GKE di AWS secara otomatis menambahkan CIDR alamat Pod dan CIDR alamat layanan.

Prasyarat

Bagian ini menjelaskan prasyarat yang harus Anda terapkan sebelum menggunakan proxy.

Mengaktifkan endpoint VPC

Sebelum mengonfigurasi proxy, Anda harus membuat endpoint VPC untuk penginstalan GKE di AWS.

Dengan endpoint VPC, resource dalam subnet pribadi dapat mengakses layanan AWS tanpa akses internet publik.

Tabel berikut mencantumkan layanan AWS yang diperlukan GKE di AWS dengan endpoint VPC, beserta jenis endpoint dan Grup Keamanan yang memerlukan akses ke endpoint.

Layanan Jenis endpoint Grup keamanan
Penskalaan Otomatis Antarmuka Bidang kontrol, kumpulan node
EC2 Antarmuka Bidang kontrol, kumpulan node
EFS Antarmuka Bidang kontrol
Load Balancing Antarmuka Bidang kontrol, kumpulan node
Key Management Service Antarmuka Bidang kontrol, kumpulan node
S3 Gateway Bidang kontrol, kumpulan node
Secret Manager Antarmuka Bidang kontrol, kumpulan node
Layanan Token Keamanan (STS) Antarmuka 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.

Menetapkan grup keamanan

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

Jenis Protokol Dari port Ke port Alamat
Traffic Keluar TCP Porta proxy Porta proxy Grup keamanan proxy

Daftar Proxy yang Diizinkan

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

.gcr.io
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
storage.googleapis.com
sts.googleapis.com
www.googleapis.com
servicecontrol.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
GCP_LOCATION-gkemulticloud.googleapis.com

Ganti GCP_LOCATION dengan region Google Cloud tempat cluster GKE Enterprise Anda berada. Tentukan us-west1 atau wilayah lain yang didukung.

Memperbarui peran IAM AWS

Agar GKE di AWS dapat membaca konfigurasi proxy dari AWS Secrets Manager, Anda harus menambahkan secretsmanager:GetSecretValue ke peran Bidang kontrol dan peran Node pool cluster Anda.

Untuk menambahkan izin ini, tambahkan izin tersebut ke bidang kontrol dan kebijakan kumpulan node Anda. Untuk mengetahui informasi selengkapnya, lihat Mengedit kebijakan IAM.

Membuat file konfigurasi proxy

Konfigurasi proxy disimpan dalam secret AWS Secrets Manager sebagai string JSON. Anda dapat meneruskan konfigurasi ini ke alat command line aws sebagai file. Bagian ini menjelaskan cara membuat file tersebut.

Tabel berikut menjelaskan isi file ini.

Kolom Deskripsi Contoh Wajib
httpProxy URL server proxy. Nilai ini harus mencakup nama host/alamat IP serta port, nama pengguna, dan sandi jika diinginkan. "http://user:password@10.184.37.42:80"
"10.184.37.42"
Ya
httpsProxy URL proxy untuk traffic HTTPS terenkripsi. URL httpProxy akan digunakan jika httpsProxy memiliki nilai kosong. "http://10.101.16.31:80" Ya
noProxy Daftar URL yang dipisahkan koma yang akan dikecualikan dari proxy. Setiap nilai dapat berupa alamat IP, rentang CIDR, nama domain, atau karakter asterix (*). Domain yang ditentukan dengan titik di awal (misalnya, `.google.com`) menunjukkan bahwa subdomain diperlukan. Asterix tunggal * mengabaikan semua konfigurasi proxy. "1.2.3.4,10.0.0.0/16,example.com,.site.com" Ya
  1. Untuk membuat file konfigurasi, buat file JSON yang berisi nilai untuk kunci httpProxy, noProxy, dan httpsProxy opsional.

    {
      "httpProxy": "AUTHENTICATION_URL",
      "httpsProxy": "AUTHENTICATION_URL",
      "noProxy": "NO_PROXY_ADDRESSES"
    }
    

    Ganti kode berikut:

    • AUTHENTICATION_URL: URL yang dienkode yang berisi nama pengguna dan sandi proxy
    • NO_PROXY_ADDRESSES: Daftar blok CIDR dan URL yang dipisahkan koma, misalnya 10.0.0.0/16,http://example.com

    Simpan file untuk digunakan di bagian berikut.

  2. Buat secret dengan data JSON ini sebagai rahasia di AWS Secret Manager menggunakan alat command line aws.

    aws secretsmanager create-secret \
    --name SECRET_NAME \
    --secret-string file://PROXY_CONFIGURATION_FILE
    

    Ganti kode berikut:

    • SECRET_NAME: nama secret baru
    • PROXY_CONFIGURATION_FILE: jalur ke file konfigurasi proxy Anda.

    Output-nya mencakup nama resource (ARN) dan isi rahasia. Sekarang Anda dapat merujuk rahasia ini saat membuat cluster.

Membuat cluster yang menggunakan proxy

Untuk mengonfigurasi GKE di AWS agar dapat menggunakan proxy HTTP untuk konektivitas keluar, lakukan langkah-langkah berikut:

Ikuti langkah-langkah di bagian Membuat cluster dan teruskan flag proxy-secret-arn dan proxy-secret-version-id.

gcloud container aws clusters create CLUSTER_NAME \
  --proxy-secret-arn=PROXY_SECRET_ARN \
  --proxy-secret-version-id=PROXY_SECRET_VERSION \

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster Anda
  • PROXY_SECRET_ARN: ARN secret yang berisi setelan proxy — misalnya, arn:aws::secretsmanager:us-east-2:111122223333:secret:example/ExampleSecret-jiObOV
  • PROXY_SECRET_VERSION: ID versi rahasia—misalnya, EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

Perbarui konfigurasi proxy

Anda dapat memperbarui konfigurasi proxy untuk bidang kontrol cluster atau kumpulan node. Untuk memperbarui ARN konfigurasi proxy, Anda harus terlebih dahulu memperbarui bidang kontrol atau peran IAM AWS kumpulan node.

Memperbarui peran IAM AWS

Sebelum mengubah ARN tempat konfigurasi proxy disimpan, Anda harus mengonfirmasi bahwa Peran bidang kontrol dan peran Kumpulan node cluster Anda memiliki akses baca ke ARN rahasia. Jika pernyataan IAM Anda dengan izin secretsmanager:GetSecretValue dicakup untuk ARN resource tertentu, tambahkan ARN rahasia baru ke daftar tersebut sebelum memperbarui konfigurasi proxy.

Mengupdate konfigurasi proxy cluster

Untuk mengupdate konfigurasi proxy cluster, gunakan Google Cloud CLI.

gcloud container aws clusters update  CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --proxy-secret-arn=PROXY_SECRET_ARN \
    --proxy-secret-version-id=PROXY_SECRET_VERSION

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster Anda
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda
  • PROXY_SECRET_ARN: ARN rahasia yang berisi setelan proxy
  • PROXY_SECRET_VERSION: ID versi rahasia—misalnya, EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

Mengupdate konfigurasi proxy kumpulan node

Untuk memperbarui konfigurasi proxy kumpulan node, gunakan Google Cloud CLI.

gcloud container aws node-pools update NODE_POOL_NAME
    --cluster CLUSTER_NAME \
    --location GOOGLE_CLOUD_LOCATION \
    --proxy-secret-arn=PROXY_SECRET_ARN \
    --proxy-secret-version-id=PROXY_SECRET_VERSION

Ganti kode berikut:

  • NODE_POOL_NAME: nama kumpulan node Anda
  • CLUSTER_NAME: nama cluster Anda
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda
  • PROXY_SECRET_ARN: ARN rahasia yang berisi setelan proxy
  • PROXY_SECRET_VERSION: ID versi rahasia—misalnya, EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

Hapus konfigurasi proxy

Anda dapat menghapus konfigurasi proxy dari bidang kontrol cluster atau kumpulan node. Operasi ini bersifat independen. Menghapus konfigurasi dari bidang kontrol tidak akan menghapusnya dari kumpulan node cluster.

Hapus konfigurasi proxy bidang kontrol

Untuk menghapus konfigurasi proxy bidang kontrol cluster Anda, gunakan Google Cloud CLI.

gcloud container aws clusters update  CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \
  --clear-proxy-config

Ganti kode berikut:

Hapus konfigurasi proxy kumpulan node

Untuk menghapus konfigurasi proxy dari kumpulan node, gunakan Google Cloud CLI.

gcloud container aws node-pools update NODE_POOL_NAME
  --cluster CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \
  --clear-proxy-config

Ganti kode berikut:

  • NODE_POOL_NAME: nama kumpulan node Anda
  • CLUSTER_NAME: nama cluster Anda
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda—misalnya, us-west1

Langkah selanjutnya