Dukungan proxy untuk cluster terpasang yang sesuai dengan CNCF

Jika organisasi Anda menggunakan proxy HTTP untuk traffic internet, Anda perlu mengonfigurasi cluster terpasang GKE sebagaimana mestinya. Dokumen ini menjelaskan cara melakukan konfigurasi ini.

Sebelum memulai

Cluster terpasang GKE memerlukan konektivitas ke berbagai layanan Google Cloud. Pastikan server proxy Anda 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 Anda berada. Tentukan us-west1 atau wilayah lain yang didukung.

Mengonfigurasi dukungan proxy untuk cluster terpasang GKE

Guna mengonfigurasi dukungan proxy untuk cluster terpasang GKE, ikuti langkah-langkah berikut:

  1. Buat file konfigurasi proxy yang berisi nilai untuk kunci httpProxy, noProxy, dan httpsProxy:

    {
    "httpProxy": HTTP_PROXY_AUTHENTICATION_URL,
    "httpsProxy": HTTPS_PROXY_AUTH_URL,
    "noProxy": NO_PROXY_ADDRESSES
    }
    

    Ganti kode berikut:

    • HTTP_PROXY_AUTHENTICATION_URL: URL server proxy, yang terdiri dari nama host/alamat IP, dan (opsional) port, nama pengguna, dan sandi. Misalnya: http://user:password@192.0.2.0:80 atau hanya 198.51.100.255.
    • HTTPS_PROXY_AUTH_URL: URL proxy untuk traffic HTTPS terenkripsi, yang terdiri dari nama host/alamat IP, dan port, nama pengguna, dan sandi jika diinginkan.
    • NO_PROXY_ADDRESSES: daftar yang dipisahkan koma untuk URL, blok CIDR, dan nama DNS resource yang dapat mengabaikan proxy. Hal ini mengarahkan cluster yang terpasang ke GKE agar tidak menggunakan proxy untuk resource yang ditentukan. Perhatikan hal berikut:
      • Nilai dapat berupa alamat IP individual, rentang CIDR, nama domain, atau bahkan karakter asterix (*). Menggunakan asterix tunggal (*) di kolom noProxy akan memberi tahu cluster yang terpasang GKE agar melewati proxy untuk semua traffic.
      • Domain yang diawali dengan titik, seperti .google.com, akan menarget semua subdomainnya. Misalnya, .google.com menyertakan alamat seperti mail.google.com dan drive.google.com, tetapi tidak menyertakan google.com.
      • Pastikan Anda menyertakan domain kubernetes.default.svc.cluster.local dan kubernetes.default.svc untuk logging yang benar. Berikut contohnya: 198.51.100.0,192.0.2.0/16,examplepetstore.com,.altostrat.com,kubernetes.default.svc.cluster.local, kubernetes.default.svc.

    Saat membuat file konfigurasi proxy, patuhi panduan berikut:

    • Kolom httpProxy dan httpsProxy tidak menerima awalan https://. Gunakan http://, meskipun alamat server proxy yang sebenarnya dimulai dengan https://. Misalnya, nyatakan https://proxy.example.com:3128 sebagai http://proxy.example.com:3128.
    • Wajib memberikan nilai untuk ketiga kolom: httpProxy, httpsProxy, dan noProxy.
    • Pertimbangkan untuk menambahkan domain, alamat IP, atau CIDR tambahan ke daftar noProxy. Sebaiknya sertakan rentang IP VPC.
  2. Buat Secret Kubernetes yang berisi konfigurasi proxy dengan menjalankan perintah berikut:

    kubectl create secret generic SECRET_NAME \
    --from-file=PROXY_CONFIGURATION_FILE
    

    Ganti kode berikut:

    • SECRET_NAME: nama Secret Kubernetes
    • PROXY_CONFIGURATION_FILE: jalur ke konfigurasi proxy yang Anda buat di langkah 1.
  3. Tandai Secret Kubernetes sebagai tidak dapat diubah dengan menetapkan kolom immutable-nya ke true:

    kubectl edit secret SECRET_NAME
    

    Ganti SECRET_NAME dengan nama Secret Kubernetes.

  4. Konfigurasikan cluster baru atau yang ada untuk menggunakan proxy:

    Cluster baru

    Untuk mendaftarkan cluster baru dan menerapkan konfigurasi proxy, gunakan perintah gcloud container attached clusters register. Pastikan untuk memberikan argumen opsional --proxy-secret-name dan --proxy-secret-namespace:

    gcloud container attached clusters register CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster
    • SECRET_NAME: nama Secret Kubernetes yang berisi konfigurasi proxy
    • SECRET_NAMESPACE: namespace Kubernetes tempat Secret disimpan

    Untuk mengetahui informasi tentang semua argumen yang dapat Anda gunakan saat mendaftarkan cluster, lihat perintah gcloud container attached clusters register.

    Cluster yang ada

    Untuk memperbarui cluster yang sebelumnya terdaftar dengan konfigurasi proxy baru, gunakan perintah gcloud container attached clusters update. Pastikan untuk memberikan argumen opsional --proxy-secret-name dan --proxy-secret-namespace:

    gcloud container attached clusters update CLUSTER_NAME \
      --proxy-secret-name=SECRET_NAME \
      --proxy-secret-namespace=SECRET_NAMESPACE
    

    Ganti kode berikut:

    • CLUSTER_NAME: nama cluster
    • SECRET_NAME: nama Secret Kubernetes yang berisi konfigurasi proxy
    • SECRET_NAMESPACE: namespace Kubernetes tempat Secret disimpan

    Langkah ini diperlukan jika detail server proxy Anda telah berubah, atau jika pendaftaran cluster awal mengabaikan persyaratan proxy.

    Untuk mengetahui informasi tentang semua argumen yang dapat Anda gunakan saat mengupdate cluster, lihat perintah gcloud container attached clusters update.

Setelah melakukan langkah-langkah ini, cluster yang terpasang GKE memproses traffic internet keluar menggunakan server proxy yang ditentukan dalam file konfigurasi.