Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Membatasi alamat IP eksternal yang dapat ditugaskan ke layanan
Kubernetes Layanan dapat dicapai dari dalam cluster melalui:
-
Alamat IP cluster yang ditetapkan secara otomatis oleh Kubernetes
-
Alamat IP apa pun yang Anda tentukan untuk properti
externalIPs
dalam spesifikasi layanan. Alamat IP eksternal tidak dikelola oleh Kubernetes dan merupakan tanggung jawab administrator cluster. Alamat IP eksternal yang ditentukan denganexternalIPs
berbeda dari alamat IP eksternal yang ditetapkan ke layanan jenisLoadBalancer
oleh penyedia cloud.
Untuk mempelajari lebih lanjut tentang Kubernetes Layanan, lihat LayananexternalIPs
dalam spesifikasi layanan.
-
Terapkan
cert-manager
untuk mengelola sertifikat webhook. Untuk informasi selengkapnya, lihat dokumentasi cert manager. kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml
-
Verifikasi bahwa
cert-manager
Pods sedang berjalan.kubectl get pods -n cert-manager
Contoh output adalah sebagai berikut.
NAME READY STATUS RESTARTS AGE cert-manager-58c8844bb8-nlx7q 1/1 Running 0 15s cert-manager-cainjector-745768f6ff-696h5 1/1 Running 0 15s cert-manager-webhook-67cc76975b-4v4nk 1/1 Running 0 14s
-
Tinjau layanan Anda yang ada untuk memastikan bahwa tidak satupun dari mereka memiliki alamat IP eksternal yang ditetapkan untuk mereka yang tidak terkandung dalam CIDR blok yang ingin Anda batasi alamatnya.
kubectl get services -A
Contoh output adalah sebagai berikut.
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE cert-manager cert-manager ClusterIP 10.100.102.137 <none> 9402/TCP 20m cert-manager cert-manager-webhook ClusterIP 10.100.6.136 <none> 443/TCP 20m default kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 2d1h externalip-validation-system externalip-validation-webhook-service ClusterIP 10.100.234.179 <none> 443/TCP 16s kube-system kube-dns ClusterIP 10.100.0.10 <none> 53/UDP,53/TCP 2d1h my-namespace my-service ClusterIP 10.100.128.10 192.168.1.1 80/TCP 149m
Jika salah satu nilai adalah alamat IP yang tidak berada dalam blok yang ingin Anda batasi aksesnya, Anda harus mengubah alamat untuk berada di dalam blok, dan menerapkan kembali layanan. Misalnya,
my-service
layanan di output sebelumnya memiliki alamat IP eksternal yang ditetapkan untuk itu yang tidak berada dalam contoh CIDR blok di langkah 5. -
Unduh manifes webhook IP eksternal. Anda juga dapat melihat kode sumber untuk webhook di
GitHub. curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/docs/externalip-webhook.yaml
-
Tentukan CIDR blok. Buka file yang diunduh dalam editor Anda dan hapus
\#
pada awal baris berikut.#args: #- --allowed-external-ip-cidrs=10.0.0.0/8
Ganti
10.0.0.0/8
dengan CIDR blok Anda sendiri. Anda dapat menentukan blok sebanyak yang Anda inginkan. Jika Anda menentukan beberapa blok, tambahkan koma di antara blok. -
Jika cluster Anda tidak berada di
us-west-2
AWS Region, maka gantius-west-2
602401143452
,, danamazonaws.com
dalam file dengan perintah berikut. Sebelum menjalankan perintah, gantiregion-code
and111122223333
dengan nilai untuk AWS Wilayah Anda dari daftar di Lihat pendaftar gambar kontainer Amazon untuk add-on Amazon EKS.sed -i.bak -e 's|602401143452|111122223333|' externalip-webhook.yaml sed -i.bak -e 's|us-west-2|region-code|' externalip-webhook.yaml sed -i.bak -e 's|amazonaws.com||' externalip-webhook.yaml
-
Menerapkan manifes ke klaster Anda.
kubectl apply -f externalip-webhook.yaml
Upaya untuk menyebarkan layanan ke klaster Anda dengan alamat IP yang ditentukan untuk
externalIPs
itu tidak terkandung dalam blok yang Anda tentukan dalam langkah Tentukan CIDR blok akan gagal.