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:
Ubah ke direktori dengan GKE pada konfigurasi AWS. Anda membuat direktori ini saat Menginstal layanan pengelolaan.
cd anthos-aws
Buka
anthos-gke.yaml
di editor teks. Tambahkan nilai untukspec.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.
Jalankan
anthos-gke aws management init
untuk menghasilkan fileanthos-gke.status.yaml
dengan konfigurasi tambahan. Perintahinit
juga memvalidasi objekAWSManagementService
dalam fileanthos-gke.yaml
Anda.anthos-gke aws management init
Jalankan
anthos-gke aws management apply
untuk mengupdate layanan pengelolaan Anda di AWS.anthos-gke aws management apply
Selanjutnya, Buat cluster pengguna. Sertakan grup keamanan proxy dalam masing-masing
spec.controlPlane.securityGroupIDs
danspec.securityGroupIDs
AWSCluster
sertaAWSNodePool
. 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:
Jika Anda perlu membuat VPC AWS khusus, lihat Menginstal layanan pengelolaan.
Jika Anda sudah memiliki VPC AWS, lihat Mengintegrasikan dengan infrastruktur yang ada.
Untuk mengetahui informasi tentang cara mengubah setelan proxy cluster, lihat: