|
| 1 | +--- |
| 2 | +title: Protokol untuk Service |
| 3 | +content_type: reference |
| 4 | +weight: 10 |
| 5 | +--- |
| 6 | + |
| 7 | +<!-- overview --> |
| 8 | +Jika Anda mengonfigurasi {{< glossary_tooltip text="Service" term_id="service" >}}, |
| 9 | +Anda dapat memilih protokol jaringan manapun selama didukung oleh Kubernetes. |
| 10 | + |
| 11 | +Berikut ini adalah protokol yang didukung Kubernetes untuk digunakan oleh Service: |
| 12 | + |
| 13 | +- [`SCTP`](#protocol-sctp) |
| 14 | +- [`TCP`](#protocol-tcp) _(protokol bawaan)_ |
| 15 | +- [`UDP`](#protocol-udp) |
| 16 | + |
| 17 | +Ketika Anda mendefinisikan Service, Anda juga dapat menggunakan |
| 18 | +[protokol aplikasi](/docs/concepts/services-networking/service/#application-protocol) untuk Service. |
| 19 | + |
| 20 | +Halaman ini menjelaskan beberapa kasus khusus, dimana kebanyakan kasus yang terjadi adalah saat penggunaan TCP sebagai protokol *transport*: |
| 21 | + |
| 22 | +- [HTTP](#protocol-http-special) dan [HTTPS](#protocol-http-special) |
| 23 | +- [protokol PROXY](#protocol-proxy-special) |
| 24 | +- terminasi [TLS](#protocol-tls-special) di *load balancer* |
| 25 | + |
| 26 | +<!-- body --> |
| 27 | +## Protokol yang didukung {#protocol-support} |
| 28 | + |
| 29 | +Ada 3 protokol valid yang dapat digunakan *port* suatu Service: |
| 30 | + |
| 31 | +### `SCTP` {#protocol-sctp} |
| 32 | + |
| 33 | +{{< feature-state for_k8s_version="v1.20" state="stable" >}} |
| 34 | + |
| 35 | +Ketika menggunakan *plugin* jaringan yang mendukung SCTP, Anda dapat menggunakan SCTP untuk sebagian besar Service. Untuk Service dengan `type: LoadBalancer` , dukungan SCTP tersedia apabila penyedia *cloud* menyediakan protokol ini. (Kebanyakan dari mereka tidak menyediakan dukungan untuk protokol ini). |
| 36 | + |
| 37 | +SCTP tidak tersedia untuk *node* yang menjalankan Windows. |
| 38 | + |
| 39 | +#### Dukungan untuk asosiasi *multihomed SCTP* {#caveat-sctp-multihomed} |
| 40 | + |
| 41 | +Dukungan untuk asosiasi *multihomed SCTP* memerlukan *plugin* CNI agar mendukung penempatan banyak *interface* dan alamat IP ke sebuah Pod. |
| 42 | + |
| 43 | +NAT untuk asosiasi *multihomed SCTP* memerlukan logika khusus di modul Kernel terkait. |
| 44 | + |
| 45 | +### `TCP` {#protocol-tcp} |
| 46 | + |
| 47 | +Anda dapat menggunakan TCP untuk berbagai macam Service, dan ini adalah protokol jaringan bawaan. |
| 48 | + |
| 49 | +### `UDP` {#protocol-udp} |
| 50 | + |
| 51 | +Anda dapat menggunakan UDP untuk sebagian besar Service. Untuk Service dengan `type: LoadBalancer`, dukungan UDP tersedia apabila penyedia *cloud* menyediakan protokol ini |
| 52 | + |
| 53 | +## Kasus Khusus |
| 54 | + |
| 55 | +### HTTP {#protocol-http-special} |
| 56 | + |
| 57 | +Jika penyedia *cloud* mendukung protokol ini, Anda dapat menggunakan Service dengan mode *LoadBalancer* untuk mengonfigurasi *load balancer* yang berada di luar klaster Kubernetes, dengan menggunakan mode khusus dimana *load balancer* yang disediakan penyedia *cloud* telah mengimplementasi HTTP / HTTPS *proxying*, dimana lalu lintas paket diteruskan ke *backend endpoint* untuk Service tersebut. |
| 58 | + |
| 59 | +Biasanya, Anda mengatur protokol untuk Service dengan TCP dan menambahkan |
| 60 | +*{{< glossary_tooltip text="annotation" term_id="annotation" >}}* |
| 61 | +(biasanya tergantung ke penyedia *cloud*) yang mengonfigurasi *load balancer* untuk menangani lalu lintas paket di tingkat HTTP. |
| 62 | +Konfigurasi ini menyediakan juga HTTPS (HTTP di atas TLS) dan *reverse-proxying* HTTP sederhana untuk *workload* Anda. |
| 63 | + |
| 64 | +{{< note >}} |
| 65 | +Anda juga dapat menggunakan *{{< glossary_tooltip term_id="ingress" >}}* untuk mengekspos Service dengan HTTP/HTTPS. |
| 66 | +{{< /note >}} |
| 67 | + |
| 68 | +Anda juga mungkin ingin mengatur [protokol aplikasi](/docs/concepts/services-networking/service/#application-protocol) suatu koneksi dengan `http` atau `https`. Gunakan `http` jika *session* dari *load balancer* untuk *workload* Anda adalah HTTP tanpa TLS. Dan gunakan `https` jika *session* dari *load balancer* untuk *workload* Anda menggunakan enkripsi TLS. |
| 69 | + |
| 70 | +### protokol PROXY {#protocol-proxy-special} |
| 71 | + |
| 72 | +Jika penyedia *cloud* Anda mendukung protokol ini, Anda dapat menggunakan Service dengan `type: LoadBalancer` |
| 73 | +untuk mengonfigurasi *load balancer* diluar klaster Kubernetes sendiri, yang akan meneruskan koneksi yang dibungkus oleh |
| 74 | +[protokol PROXY](https://www.haproxy.org/download/2.5/doc/proxy-protocol.txt). |
| 75 | + |
| 76 | +Kemudian *Load balancer* mengirim rangkaian oktet awal yang menggambarkan koneksi kedatangan, mirip dengan contoh dibawah ini (protokol PROXY v1): |
| 77 | + |
| 78 | +``` |
| 79 | +PROXY TCP4 192.0.2.202 10.0.42.7 12345 7\r\n |
| 80 | +``` |
| 81 | +Data yang masuk setelah pembukaan protokol PROXY adalah data asli dari klien. Ketika kedua sisi menutup koneksi, *load balancer* juga memicu penutupan koneksi dan mengirim sisa data ketika memungkinkan. |
| 82 | + |
| 83 | +Biasanya, Anda mendefinisikan Service dengan protokol TCP. Anda juga dapat menambahkan *annotation*, yang khusus untuk penyedia *cloud* Anda, yang mengonfigurasi *load balancer* dengan membungkus setiap koneksi yang datang dengan protokol PROXY. |
| 84 | + |
| 85 | +### TLS {#protocol-tls-special} |
| 86 | + |
| 87 | +Jika penyedia *cloud* Anda mendukung protokol ini, Anda dapat menggunakan protokol ini pada Service sebagai cara untuk membangun *reverse proxying* eksternal, dimana koneksi yang datang dari klien ke *load balancer* terenkripsi dengan TLS dan *load balancer* adalah TLS *server peer*. Koneksi dari *load balancer* yang menuju *workload* Anda dapat juga berupa TLS, atau teks biasa. Pilihan yang tersedia untuk Anda tergantung dari *penyedia cloud* atau implementasi kustom suatu Service. |
| 88 | + |
| 89 | +Biasanya, Anda mengatur protokol ke `TCP` dan menambahkan *annotation* (biasanya khusus untuk penyedia *cloud* Anda) yang mengonfigurasi *load balancer* untuk berjalan sebagai *server* TLS. Anda juga dapat mengonfigurasi identitas TLS (sebagai server, dan mungkin juga sebagai klien yang terhubung ke *workload* Anda) dengan menggunakan mekanisme yang tersedia khusus untuk penyedia *cloud* Anda. |
0 commit comments