Apply suggestions from code review

Co-authored-by: Giri Kuncoro <girikuncoro@users.noreply.github.com>
This commit is contained in:
Dery Rahman Ahaddienata 2020-06-12 05:37:28 +07:00
parent 959f1a39ac
commit 9e182b6199
1 changed files with 44 additions and 44 deletions

View File

@ -7,19 +7,19 @@ weight: 80
{{% capture overview %}} {{% capture overview %}}
Halaman ini menjelaskan bagaimana membuat _Load Balancer_ Eksternal. Laman ini menjelaskan bagaimana membuat _Load Balancer_ Eksternal.
{{< note >}} {{< note >}}
Fitur ini hanya tersedia untuk penyedia _cloud_ atau lingkungan yang mendukung _load balancer_ eksternal. Fitur ini hanya tersedia untuk penyedia cloud atau lingkungan yang mendukung _load balancer_ eksternal.
{{< /note >}} {{< /note >}}
Ketika membuat servis, kamu mempunyai opsi untuk membuat jaringan _cloud load balancer_ secara otomatis. Ketika membuat Service, kamu mempunyai opsi untuk tersambung dengan jaringan cloud _load balancer_ secara otomatis.
Hal ini menyediakan akses eksternal alamat IP yang dapat mengirim lalu lintas melalui porta yang tepat pada klaster _node_ kamu Hal ini menyediakan akses eksternal alamat IP yang dapat mengirim lalu lintas melalui porta yang tepat pada klaster Node kamu
_asalkan klaster kamu beroperasi pada lingkungan yang mendukung dan terkonfigurasi dengan paket penyedia cloud load balancer yang benar_. _asalkan klaster kamu beroperasi pada lingkungan yang mendukung dan terkonfigurasi dengan paket penyedia cloud load balancer yang benar_.
Untuk informasi mengenai penyediaan dan penggunaan sumber daya _Ingress_ yang dapat memberikan Untuk informasi mengenai penyediaan dan penggunaan sumber daya Ingress yang dapat memberikan
servis URL yang dapat dijangkau secara eksternal, penyeimbang beban lalu lintas, terminasi SSL, dll., servis URL yang dapat dijangkau secara eksternal, penyeimbang beban lalu lintas, terminasi SSL, dll.,
silahkan cek dokumentasi [_Ingress_](/docs/concepts/services-networking/ingress/) silahkan cek dokumentasi [Ingress](/docs/concepts/services-networking/ingress/)
{{% /capture %}} {{% /capture %}}
@ -33,8 +33,8 @@ silahkan cek dokumentasi [_Ingress_](/docs/concepts/services-networking/ingress/
## Berkas konfigurasi ## Berkas konfigurasi
Untuk membuat _load balancer_ eksternal, tambahkan baris dibawah ini ke Untuk membuat _load balancer_ eksternal, tambahkan baris di bawah ini ke
[berkas konfigurasi servis](/docs/concepts/services-networking/service/#loadbalancer) kamu: [berkas konfigurasi Service](/docs/concepts/services-networking/service/#loadbalancer) kamu:
```yaml ```yaml
type: LoadBalancer type: LoadBalancer
@ -58,7 +58,7 @@ spec:
## Menggunakan kubectl ## Menggunakan kubectl
Kamu dapat membuat servis dengan perintah `kubectl expose` dan Kamu dapat membuat Service dengan perintah `kubectl expose` dan
_flag_ `--type=LoadBalancer`: _flag_ `--type=LoadBalancer`:
```bash ```bash
@ -66,16 +66,16 @@ kubectl expose rc example --port=8765 --target-port=9376 \
--name=example-service --type=LoadBalancer --name=example-service --type=LoadBalancer
``` ```
Perintah ini membuat servis baru dengan menggunakan pemilih yang sama dengan Perintah ini membuat Service baru dengan menggunakan pemilih yang sama dengan
sumber daya yang dirujuk (dalam hal contoh diatas, pengendali replikasi bernama `example`). sumber daya yang dirujuk (dalam hal contoh di atas, ReplicationController bernama `example`).
Untuk informasi lebih lanjut, termasuk opsi _flag_, mengacu kepada Untuk informasi lebih lanjut, termasuk opsi _flag_, mengacu kepada
[referensi `kubectl expose`](/docs/reference/generated/kubectl/kubectl-commands/#expose). [referensi `kubectl expose`](/docs/reference/generated/kubectl/kubectl-commands/#expose).
## Menemukan alamat IP kamu ## Menemukan alamat IP kamu
Kamu dapat menemukan alamat IP yang telah dibuat untuk servis kamu dengan mendapatkan Kamu dapat menemukan alamat IP yang telah dibuat untuk Service kamu dengan mendapatkan
informasi servis melalui `kubectl`: informasi Service melalui `kubectl`:
```bash ```bash
kubectl describe services example-service kubectl describe services example-service
@ -102,7 +102,7 @@ yang seharusnya menghasilkan keluaran seperti ini:
Alamat IP tercantum di sebelah `LoadBalancer Ingress`. Alamat IP tercantum di sebelah `LoadBalancer Ingress`.
{{< note >}} {{< note >}}
Juka kamu menjalankan servis dari Minikube, kamu dapat menemukan alamat IP dan porta yang ditetapkan dengan: Jika kamu menjalankan Service dari Minikube, kamu dapat menemukan alamat IP dan porta yang ditetapkan dengan:
{{< /note >}} {{< /note >}}
```bash ```bash
@ -111,26 +111,26 @@ minikube service example-service --url
## Preservasi IP sumber klien ## Preservasi IP sumber klien
Dikarenakan implementasi fitur ini, sumber IP yang terlihat pada _container_ Implementasi dari fitur ini menyebabkan sumber IP yang terlihat pada Container
target *bukan sebagai sumber IP asli* dari klien. Untuk mengaktifkan target *bukan sebagai sumber IP asli* dari klien. Untuk mengaktifkan
preservasi IP klien, bidang berikut dapat dikonfigurasikan didalam preservasi IP klien, bidang berikut dapat dikonfigurasikan di dalam
spek servis (mendukung lingkungan GCE/Google Kubernetes Engine): spek Service (mendukung lingkungan GCE/Google Kubernetes Engine):
* `service.spec.externalTrafficPolicy` - menunjukan jika Service menginginkan untuk merute lalu lintas * `service.spec.externalTrafficPolicy` - menunjukkan jika Service menginginkan rute lalu lintas
eksternal ke titik akhir _node-local_ atau _cluster-wide_. Terdapat dua opsi yang tersedia: eksternal ke titik akhir _node-local_ atau _cluster-wide_. Terdapat dua opsi yang tersedia:
Cluster (_default_) dan Local. Cluster mengaburkan sumber IP klien dan mungkin menyebabkan `Cluster` (bawaan) dan `Local`. `Cluster` mengaburkan sumber IP klien dan mungkin menyebabkan
hop kedua ke _node_ berbeda, namun harus mempunyai _load-spreading_ yang baik secara keseluruhan. hop kedua ke Node berbeda, namun harus mempunyai penyebaran beban (_load-spreading_) yang baik secara keseluruhan.
Local mempreservasi sumber IP client dan menghindari hop kedua _LoadBalancer_ dan servis tipe _NodePort_, namun `Local` mempreservasi sumber IP client dan menghindari hop kedua `LoadBalancer` dan Service dengan tipe `NodePort`, namun
resiko berpotensi penyebaran lalu lintas yang tidak merata. resiko berpotensi penyebaran lalu lintas yang tidak merata.
* `service.spec.healthCheckNodePort` - menentukan cek kesehatan _node_ porta (nomor porta numerik) untuk servis. * `service.spec.healthCheckNodePort` - menentukan pemeriksaan kesehatan porta dari sebuah Node (angka porta numerik) untuk Service.
Jika `healthCheckNodePort` tidak ditentukan, pengendali servis mengalokasi Jika `healthCheckNodePort` tidak ditentukan, pengendali Service mengalokasi
porta dari rentang _NodePort_ dari klaster kamu. Kamu dapat mengonfigurasi porta dari rentang `NodePort` dari klaster kamu. Kamu dapat mengonfigurasi
rentangan tersebut dari pengaturan opsi barisan perintah API server, rentangan tersebut dari pengaturan opsi barisan perintah API server,
`--service-node-port-range`. Hal itu menggunakan nilai `healthCheckNodePort` pengguna spesifik `--service-node-port-range`. Hal itu menggunakan nilai `healthCheckNodePort` pengguna spesifik
jika ditentukan oleh klien. Hal itu dapat berefek hanya ketika `type` diset ke _LoadBalancer_ dan jika ditentukan oleh klien. Hal itu dapat berefek hanya ketika `type` diset ke `LoadBalancer` dan
`externalTrafficPolicy` diset ke Local. `externalTrafficPolicy` diset ke `Local`.
Pengaturan `externalTrafficPolicy` ke Local pada berkas konfigurasi Service mengaktifkan Pengaturan `externalTrafficPolicy` ke `Local` pada berkas konfigurasi Service mengaktifkan
fitur ini. fitur ini.
```yaml ```yaml
@ -148,49 +148,49 @@ spec:
type: LoadBalancer type: LoadBalancer
``` ```
## Pengumpul Sampah Load Balancers ## Pengumpul Sampah (Garbage Collector) Load Balancer
{{< feature-state for_k8s_version="v1.17" state="stable" >}} {{< feature-state for_k8s_version="v1.17" state="stable" >}}
Pada kasus biasa, sumber daya _load balancer_ yang berkorelasi pada penyedia _cloud_ perlu Pada kasus biasa, sumber daya _load balancer_ yang berkorelasi pada penyedia cloud perlu
dibersihkan segera setelah Service bertipe _LoadBalancer_ dihapus. Namun perlu diketahui dibersihkan segera setelah Service bertipe _LoadBalancer_ dihapus. Namun perlu diketahui
bahwa terdapat kasus tepi dimana sumber daya _cloud_ yatim piatu (_orphaned_) setelah bahwa terdapat kasus tepi dimana sumber daya cloud yatim piatu (_orphaned_) setelah
Service yang berkaitan dihapus. _Finalizer Protection_ untuk Service _LoadBalancer_ Service yang berkaitan dihapus. _Finalizer Protection_ untuk Service _LoadBalancer_
diperkenalkan untuk mencegah hal ini terjadi. Dengan menggunakan _finalizers_, sebuah sumber daya Service diperkenalkan untuk mencegah hal ini terjadi. Dengan menggunakan _finalizers_, sebuah sumber daya Service
tidak akan pernah dihapus hingga sumber daya _load balancer_ yang berkorelasi juga dihapus. tidak akan pernah dihapus hingga sumber daya _load balancer_ yang berkorelasi juga dihapus.
Secara khusus, jika Service mempunyai `type` _LoadBalancer_, pengendali servis akan melekatkan Secara khusus, jika Service mempunyai `type LoadBalancer`, pengendali Service akan melekatkan
_finalizer_ bernama `service.kubernetes.io/load-balancer-cleanup`. _finalizer_ bernama `service.kubernetes.io/load-balancer-cleanup`.
_Finalizer_ hanya akan dihapus setelah sumber daya _load balancer_ dibersihkan. _Finalizer_ hanya akan dihapus setelah sumber daya _load balancer_ dibersihkan.
Hal ini mencegah sumber daya _load balancer_ yang teruntai bahkan setelah kasus tepi seperti Hal ini mencegah sumber daya _load balancer_ yang teruntai bahkan setelah kasus tepi seperti
pengendali servis berhenti. pengendali Service berhenti.
## Penyedia Load Balancer Eksternal ## Penyedia Load Balancer Eksternal
Penting untuk dicatat bahwa jalur data untuk fungsionalitas ini disediakan oleh _load balancer_ eksternal ke klaster Kubernetes. Penting untuk dicatat bahwa jalur data untuk fungsionalitas ini disediakan oleh _load balancer_ eksternal ke klaster Kubernetes.
Ketika Service `type` diset `LoadBalancer`, Kubernetes menediakan fungsionalitas yang ekuivalen dengan `type` sebanding ClusterIP Ketika Service `type` diset `LoadBalancer`, Kubernetes menyediakan fungsionalitas yang ekuivalen dengan `type` sebanding `ClusterIP`
ke _pods_ dalam klaster dan mengekstensinya dengan pemrograman (eksternal ke Kubernetes) _load balancer_ dengan entri pada pods ke berbagai Pod di dalam klaster dan mengekstensinya dengan pemrograman (eksternal dari Kubernetes) _load balancer_ dengan entri pada Pod
Kubernetes. Pengendali servis Kubernetes mengotomasi pembuatan _load balancer_ eksternal, cek kesehatan (jika dibutuhkan), Kubernetes. Pengendali Service Kubernetes mengotomasi pembuatan _load balancer_ eksternal, cek kesehatan (jika dibutuhkan),
dinding api (jika dibutuhkan), dan mengambil IP eksternal yang dialokasikan oleh penyedia _cloud_ dan mengisinya pada objek servis. dinding api (_firewall_) (jika dibutuhkan), dan mengambil IP eksternal yang dialokasikan oleh penyedia cloud dan mengisinya pada objek Service.
## Peringatan dan and Limitasi ketika preservasi sumber IP ## Peringatan dan and Limitasi ketika preservasi sumber IP
_Load balancers_ GCE/AWS tidak menyediakan bobot pada kolam targetnya. Hal ini bukan merupakan isu dengan aturan kube-proxy _Load balancers_ GCE/AWS tidak menyediakan bobot pada kolam targetnya. Hal ini bukan merupakan isu dengan aturan kube-proxy
LB lama yang akan menyeimbangkan semua titik akhir dengan benar. _Load balancer_ lama yang akan menyeimbangkan semua titik akhir dengan benar.
Dengan fungsionalitas yang baru, lalu lintas eksternal tidak menyeimbangkan beban secara merata pada seluruh pods, namun Dengan fungsionalitas yang baru, lalu lintas eksternal tidak menyeimbangkan beban secara merata pada seluruh Pod, namun
sebaliknya menyeimbangkan secara merata pada level _node_ (karena GCE/AWS dan implementasi LB eksternal lainnya tidak mempunyai sebaliknya menyeimbangkan secara merata pada level Node (karena GCE/AWS dan implementasi _load balancer_ eksternal lainnya tidak mempunyai
kemampuan untuk menentukan bobot setiap _node_, mereka menyeimbangkan secara merata pada semua _node_ target, mengabaikan jumlah kemampuan untuk menentukan bobot setiap Node, mereka menyeimbangkan secara merata pada semua Node target, mengabaikan jumlah
_pods_ pada tiap _node_). Pod pada tiap Node).
Namun demikian, kita dapat menyatakan bahwa NumServicePods << NumNodes or NumServicePods >> NumNodes, distribusi yang cukup mendekati Namun demikian, kita dapat menyatakan bahwa NumServicePods << NumNodes atau NumServicePods >> NumNodes, distribusi yang cukup mendekati
sama akan terlihat, meski tanpa bobot. sama akan terlihat, meski tanpa bobot.
Sekali _load balancers_ eksternal menyediakan bobot, fungsionalitas ini dapat ditambahkan pada jalur pemrograman LB. Sekali _load balancer_ eksternal menyediakan bobot, fungsionalitas ini dapat ditambahkan pada jalur pemrograman _load balancer_.
*Pekerjaan Masa Depan: Tidak adanya dukungan untuk bobot yang disediakan untuk rilis 1.4, namun dapat ditambahkan di masa mendatang* *Pekerjaan Masa Depan: Tidak adanya dukungan untuk bobot yang disediakan untuk rilis 1.4, namun dapat ditambahkan di masa mendatang*
_Pod_ internal ke lalu lintas _pod_ harus berperilaku sama seperti servis ClusterIP, dengan probabilitas yang sama pada seluruh _pods_. Pod internal ke lalu lintas Pod harus berperilaku sama seperti Service ClusterIP, dengan probabilitas yang sama pada seluruh Pod.
{{% /capture %}} {{% /capture %}}