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 merutekan 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 tambahan ke kolom noProxy field. Sebaiknya tambahkan rentang IP VPC. Mulai dari Google Kubernetes Engine versi 1.22, GKE di AWS 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.

Endpoint VPC memungkinkan resource di subnet pribadi mengakses layanan AWS tanpa akses internet publik.

Tabel berikut mencantumkan layanan AWS yang memerlukan endpoint VPC untuk GKE di AWS, 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
Secrets Manager Antarmuka Bidang kontrol, kumpulan node
Security Token Service (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.

Menentukan grup keamanan

GKE di AWS harus dapat terhubung ke server proxy untuk mendownload komponen software. Buat atau temukan grup keamanan AWS yang mengizinkan koneksi keluar ke server proxy Anda. 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 Protokol Dari port Untuk mengalihkan Alamat
Keluar TCP Port proxy Port proxy Grup keamanan proxy

Daftar yang Diizinkan Proxy

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 Google Cloud region tempat cluster GKE Enterprise Anda berada. Tentukan us-west1 atau wilayah yang didukung lainnya.

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 kumpulan node cluster Anda.

Untuk menambahkan izin ini, tambahkan ke kebijakan bidang kontrol dan node pool Anda. Untuk 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 harus menyertakan nama host/alamat IP dan opsionalnya port, nama pengguna, dan sandi. "http://user:password@10.184.37.42:80"
"10.184.37.42"
Ya
httpsProxy URL proxy untuk traffic HTTPS yang terenkripsi. URL httpProxy akan digunakan jika httpsProxy memiliki nilai kosong. "http://10.101.16.31:80" Ya
noProxy Daftar URL yang dipisahkan koma untuk dikecualikan dari proxy. Setiap nilai dapat berupa alamat IP, rentang CIDR, nama domain, atau karakter asteris (*). Domain yang ditentukan dengan titik di depannya (misalnya, `.google.com`) menunjukkan bahwa subdomain diperlukan. Satu tanda bintang * 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 httpProxy, noProxy, dan kunci 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 berikutnya.

  2. Buat secret dengan data JSON ini sebagai secret di AWS Secrets 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 Amazon Resource Name (ARN) dan konten rahasia. Sekarang Anda dapat mereferensikan secret ini saat membuat cluster.

Membuat cluster yang menggunakan proxy

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

Ikuti langkah-langkah di 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 secret— misalnya, EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

Memperbarui konfigurasi proxy

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

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 ke ARN resource tertentu, tambahkan ARN rahasia baru ke daftar tersebut sebelum memperbarui konfigurasi proxy.

Memperbarui konfigurasi proxy cluster

Untuk memperbarui 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 secret yang berisi setelan proxy
  • PROXY_SECRET_VERSION: ID versi secret— misalnya, EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

Memperbarui konfigurasi proxy node pool

Untuk memperbarui konfigurasi proxy node pool, 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 node pool Anda
  • CLUSTER_NAME: nama cluster Anda
  • GOOGLE_CLOUD_LOCATION: region Google Cloud yang didukung yang mengelola cluster Anda
  • PROXY_SECRET_ARN: ARN secret yang berisi setelan proxy
  • PROXY_SECRET_VERSION: ID versi secret— misalnya, EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE

Menghapus konfigurasi proxy

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

Menghapus konfigurasi proxy bidang kontrol

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

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

Ganti kode berikut:

Menghapus konfigurasi proxy node pool

Untuk menghapus konfigurasi proxy dari node pool, 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:

Langkah berikutnya