From 7327c658b041230a8c0ec959b7604a36a884c8c3 Mon Sep 17 00:00:00 2001 From: Giri Kuncoro Date: Thu, 9 May 2019 04:29:51 +0700 Subject: [PATCH] Add Indonesian translation for container runtime class (#14222) * Add Indonesian translation for container runtime class * Address broken links and backticks * Change single asterisk to underscore for italic format --- .../docs/concepts/containers/runtime-class.md | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 content/id/docs/concepts/containers/runtime-class.md diff --git a/content/id/docs/concepts/containers/runtime-class.md b/content/id/docs/concepts/containers/runtime-class.md new file mode 100644 index 0000000000..ed6b83f70c --- /dev/null +++ b/content/id/docs/concepts/containers/runtime-class.md @@ -0,0 +1,161 @@ +--- +title: Runtime Class +content_template: templates/concept +weight: 20 +--- + +{{% capture overview %}} + +{{< feature-state for_k8s_version="v1.14" state="beta" >}} + +Laman ini menjelaskan tentang _resource_ RuntimeClass dan proses pemilihan _runtime_. + +{{< warning >}} +RuntimeClass memiliki _breaking change_ untuk pembaruan ke beta pada v1.14. Jika kamu menggunakan +RuntimeClass sebelum v1.14, lihat [Memperbarui RuntimeClass dari Alpha ke Beta](#memperbarui-runtimeclass-dari-alpha-ke-beta). +{{< /warning >}} + +{{% /capture %}} + + +{{% capture body %}} + +## `Runtime Class` + +RuntimeClass merupakan sebuah fitur untuk memilih konfigurasi _runtime_ kontainer. Konfigurasi +tersebut digunakan untuk menjalankan kontainer-kontainer milik suatu Pod. + +### Persiapan + +Pastikan gerbang fitur (_feature gate_) `RuntimeClass` sudah aktif (secara _default_ sudah aktif). +Lihat [Gerbang Fitur](/docs/reference/command-line-tools-reference/feature-gates/) untuk lebih +jelasnya soal pengaktifan gerbang fitur. +Gerbang fitur RuntimeClass ini harus aktif pada semua apiserver dan kubelet. + +1. Lakukan konfigurasi pada implementasi CRI untuk setiap _node_ (tergantung _runtime_ yang dipilih) +2. Buat _resource_ RuntimeClass yang terkait + +#### 1. Lakukan konfigurasi pada implementasi CRI untuk setiap _node_ + +Pilihan konfigurasi yang tersedia melalui RuntimeClass tergantung pada implementasi +_Container Runtime Interface_ (CRI). Lihat bagian ([di bawah ini](#konfigurasi-cri)) +soal bagaimana melakukan konfigurasi untuk implementasi CRI yang kamu miliki. + +{{< note >}} +Untuk saat ini, RuntimeClass berasumsi bahwa semua _node_ di dalam kluster punya +konfigurasi yang sama (homogen). Jika ada _node_ yang punya konfigurasi berbeda dari +yang lain (heterogen), maka perbedaan ini harus diatur secara independen di luar RuntimeClass +melalui fitur _scheduling_ (lihat [Menempatkan Pod pada Node](/docs/concepts/configuration/assign-pod-node/)). +{{< /note >}} + +Seluruh konfigurasi memiliki nama `handler` yang terkait, dijadikan referensi oleh RuntimeClass. +Nama _handler_ harus berupa valid label 1123 DNS (alfanumerik + karakter `-`). + +#### 2. Buat _resource_ `RuntimeClass` yang terkait + +Masing-masing konfigurasi pada langkah no.1 punya nama `handler` yang merepresentasikan +konfigurasi-konfigurasi tersebut. Untuk masing-masing `handler`, buatlah sebuah objek RuntimeClass terkait. + +_Resource_ RuntimeClass saat ini hanya memiliki 2 _field_ yang penting: nama RuntimeClass tersebut +(`metadata.name`) dan _handler_ (`handler`). Definisi objek tersebut terlihat seperti ini: + +```yaml +apiVersion: node.k8s.io/v1beta1 # RuntimeClass didefinisikan pada grup API node.k8s.io +kind: RuntimeClass +metadata: + name: myclass # Nama dari RuntimeClass yang nantinya akan dijadikan referensi + # RuntimeClass merupakan resource tanpa namespace +handler: myconfiguration # Nama dari konfigurasi CRI terkait +``` + +{{< note >}} +Sangat disarankan untuk hanya memperbolehkan admin kluster melakukan operasi +_write_ pada RuntimeClass. Biasanya ini sudah jadi _default_. Lihat [Ikhtisar +Autorisasi](/docs/reference/access-authn-authz/authorization/) untuk penjelasan lebih jauh. +{{< /note >}} + +### Penggunaan + +Ketika RuntimeClass sudah dikonfigurasi pada kluster, penggunaannya sangatlah mudah. +Kamu bisa tentukan `runtimeClassName` di dalam `spec` sebuah Pod, sebagai contoh: + +```yaml +apiVersion: v1 +kind: Pod +metadata: + name: mypod +spec: + runtimeClassName: myclass + # ... +``` + +Kubelet akan mendapat instruksi untuk menggunakan RuntimeClass dengan nama yang sudah ditentukan tersebut +untuk menjalankan Pod ini. Jika RuntimeClass dengan nama tersebut tidak ditemukan, atau CRI tidak dapat +menjalankan _handler_ yang terkait, maka Pod akan memasuki [tahap]((/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)) `Failed`. +Lihat [_event_](/docs/tasks/debug-application-cluster/debug-application-introspection/) untuk mengetahui pesan error yang terkait. + +Jika tidak ada `runtimeClassName` yang ditentukan di dalam Pod, maka RuntimeHandler yang _default_ akan digunakan. +Untuk kasus ini, perilaku kluster akan seperti saat fitur RuntimeClass dinonaktifkan. + +### Konfigurasi CRI + +Lihat [instalasi CRI](/docs/setup/cri/) untuk lebih detail mengenai pengaturan _runtime_ CRI. + +#### dockershim + +_Built-in_ dockershim CRI yang dimiliki Kubernetes tidak mendukung _handler runtime_. + +#### [containerd](https://containerd.io/) + +_Handler runtime_ diatur melalui konfigurasi containerd pada `/etc/containerd/config.toml`. +_Handler_ yang valid dapat dikonfigurasi pada bagian _runtime_: + +``` +[plugins.cri.containerd.runtimes.${HANDLER_NAME}] +``` + +Lihat dokumentasi konfigurasi containerd untuk lebih detail: +https://github.com/containerd/cri/blob/master/docs/config.md + +#### [cri-o](https://cri-o.io/) + +_Handler runtime_ dapat diatur menggunakan konfigurasi cri-o pada `/etc/crio/crio.conf`. +_Handler_ yang valid dapat dikonfigurasi pada [tabel crio.runtime](https://github.com/kubernetes-sigs/cri-o/blob/master/docs/crio.conf.5.md#crioruntime-table): + +``` +[crio.runtime.runtimes.${HANDLER_NAME}] + runtime_path = "${PATH_TO_BINARY}" +``` + +Lihat dokumentasi konfigurasi cri-o untuk lebih detail: +https://github.com/kubernetes-sigs/cri-o/blob/master/cmd/crio/config.go + + +### Memperbarui RuntimeClass dari Alpha ke Beta + +Fitur Beta pada RuntimeClass memiliki perubahan sebagai berikut: + +- Grup API _resource_ `node.k8s.io` dan `runtimeclasses.node.k8s.io` telah dimigrasi ke suatu + API _built-in_ dari CustomResourceDefinition. +- Atribut `spec` telah disederhakan pada definisi RuntimeClass (tidak ada lagi yang namanya + RuntimeClassSpec). +- _Field_ `runtimeHandler` telah berubah nama menjadi `handler`. +- _Field_ `handler` sekarang bersifat wajib untuk semua versi API. Artinya, _field_ `runtimeHandler` + pada API Alpha juga bersifat wajib. +- _Field_ `handler` haruslah berupa label DNS valid ([RFC 1123](https://tools.ietf.org/html/rfc1123)), + yang artinya tidak bisa berisi karakter `.` (pada semua versi). _Handler_ valid harus sesuai dengan + _regular expression_ ini: `^[a-z0-9]([-a-z0-9]*[a-z0-9])?$`. + +**Tindakan yang diperlukan:** Tindakan-tindaka berikut ini diperlukan untuk melakukan +pembaruan fitur RuntimeClass dari versi alpha ke versi beta: + +- _Resource_ RuntimeClass harus dibuat ulang **setelah** diperbarui ke v.1.14, dan + CRD `runtimeclasses.node.k8s.io` harus dihapus secara manual: + ``` + kubectl delete customresourcedefinitions.apiextensions.k8s.io runtimeclasses.node.k8s.io + ``` +- Fitur Alpha pada RuntimeClass akan menjadi tidak valid, jika `runtimeHandler` tidak ditentukan atau + kosong atau menggunakan karakter `.` pada _handler_. Ini harus dimigrasi ke _handler_ dengan + konfigurasi yang valid (lihat petunjuk di atas). + +{{% /capture %}}