Menggunakan proxy dengan GKE di AWS

Topik ini menunjukkan cara merutekan traffic dari layanan pengelolaan GKE di 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 merutekan traffic ini melalui proxy HTTP atau HTTPS. Mulai GKE di AWS 1.8, Anda dapat mengonfigurasi setelan proxy individual untuk layanan pengelolaan dan setiap cluster. Untuk mengetahui informasi selengkapnya tentang cara mengubah setelan proxy, lihat Mengubah setelan proxy cluster.

Anda mendeklarasikan setelan proxy dalam file JSON yang dirujuk di 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 yang lebih tinggi.

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 untuk setiap komponen GKE di AWS yang memerlukan akses ke endpoint.

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

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

Menentukan grup keamanan

Komponen GKE di AWS Anda harus dapat terhubung ke server proxy. Buat atau temukan grup keamanan AWS yang mengizinkan koneksi keluar ke server proxy Anda. Grup keamanan harus mengizinkan akses keluar dari grup keamanan Pengelolaan, 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

Mengizinkan koneksi keluar ke Google Cloud layanan

Agar GKE di AWS dapat terhubung ke Google Cloud layanan, 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 Anda berjalan. Contoh, 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 pasangan nilai/kunci, dengan nama kunci httpProxy, httpsProxy, dan noProxy. Nama pengguna dan sandi dienkripsi dengan enkripsi amplop menggunakan kunci AWS KMS Anda 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, rentang CIDR, dan domain opsional tempat proxy tidak digunakan.

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

Konfigurasi AWSManagementService Anda dengan melakukan langkah-langkah berikut:

  1. Beralih ke direktori dengan konfigurasi GKE di 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 pada 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 membuat file anthos-gke.status.yaml dengan konfigurasi tambahan. Perintah init juga memvalidasi objek AWSManagementService di 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 di AWSCluster dan AWSNodePool's spec.controlPlane.securityGroupIDs dan spec.securityGroupIDs, masing-masing. Cluster kemudian memiliki akses ke proxy.

Referensi konfigurasi

Kolom Deskripsi Contoh Wajib
httpProxy URL server proxy. Nilai harus menyertakan nama host/alamat IP dan secara opsional port, nama pengguna, dan sandi. "http://user:password@10.184.37.42:80" Ya
httpsProxy URL proxy untuk traffic HTTPS yang terenkripsi. URL httpProxy akan digunakan jika httpsProxy tidak diberikan. "http://user:password@10.101.16.31:80" Tidak
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 (mis. ".google.com") menunjukkan bahwa subdomain diperlukan. Satu tanda bintang * menunjukkan bahwa tidak ada proxy yang harus dilakukan. "1.2.3.4,10.0.0.0/16,example.com,.site.com" Tidak

Langkah berikutnya

Untuk mengetahui informasi selengkapnya tentang cara menyelesaikan penginstalan GKE di AWS, lihat artikel berikut:

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