From 21621012f4ef071944d3f69a48dcc4c5d9d26c91 Mon Sep 17 00:00:00 2001 From: Irvi Aini <7439590+irvifa@users.noreply.github.com> Date: Tue, 7 May 2019 11:43:39 +0700 Subject: [PATCH] Initialize Working with Objects translations for Bahasa Indonesia. (#14125) * Initialize Working with Objects translations for Bahasa Indonesia. * Address reviewer's suggestions. * Fix styling. --- .../overview/working-with-objects/_index.md | 5 + .../kubernetes-objects.md | 108 ++++++++++++++++++ .../id/examples/application/deployment.yaml | 19 +++ 3 files changed, 132 insertions(+) create mode 100644 content/id/docs/concepts/overview/working-with-objects/_index.md create mode 100644 content/id/docs/concepts/overview/working-with-objects/kubernetes-objects.md create mode 100644 content/id/examples/application/deployment.yaml diff --git a/content/id/docs/concepts/overview/working-with-objects/_index.md b/content/id/docs/concepts/overview/working-with-objects/_index.md new file mode 100644 index 0000000000..53a2d7c9b3 --- /dev/null +++ b/content/id/docs/concepts/overview/working-with-objects/_index.md @@ -0,0 +1,5 @@ +--- +title: "Menggunakan Objek-Objek Kubernetes" +weight: 40 +--- + diff --git a/content/id/docs/concepts/overview/working-with-objects/kubernetes-objects.md b/content/id/docs/concepts/overview/working-with-objects/kubernetes-objects.md new file mode 100644 index 0000000000..c72f624fc5 --- /dev/null +++ b/content/id/docs/concepts/overview/working-with-objects/kubernetes-objects.md @@ -0,0 +1,108 @@ +--- +title: Memahami Konsep Objek-Objek yang ada pada Kubernetes +content_template: templates/concept +weight: 10 +card: + name: concepts + weight: 40 +--- + +{{% capture overview %}} +Laman ini menjelaskan bagaimana objek-objek Kubernetes direpresentasikan di dalam API Kubernetes, +dan bagaimana kamu dapat merepresentasikannya di dalam format `.yaml`. +{{% /capture %}} + +{{% capture body %}} +## Memahami Konsep Objek-Objek yang Ada pada Kubernetes + +Objek-objek Kubernetes adalah entitas persisten di dalam sistem Kubernetes. +Kubernetes menggunakan entitas ini untuk merepresentasikan _state_ yang ada pada +kluster kamu. Secara spesifik, hal itu dapat dideskripsikan sebagai: + +* Aplikasi-aplikasi kontainer apa sajakah yang sedang dijalankan (serta pada _node_ apa aplikasi tersebut dijalankan) +* _Resource_ yang tersedia untuk aplikasi tersebut +* _Policy_ yang mengatur bagaimana aplikasi tersebut dijalankan, misalnya _restart_, _upgrade_, dan _fault-tolerance_. + +Objek Kubernetes merupakan sebuah _"record of intent"_--yang mana sekali kamu membuat suatu objek, +sistem Kubernetes akan bekerja secara konsisten untuk menjamin +bahwa objek tersebut akan selalu ada. Dengan membuat sebuah objek, secara tak langsung kamu +memberikan informasi pada sistem Kubernetes mengenai perilaku apakah yang kamu inginkan pada _workload_ kluster yang kamu miliki; +dengan kata lain ini merupakan definisi _state_ kluster yang kamu inginkan. + +Untuk menggunakan objek-objek Kubernetes--baik membuat, mengubah, atau menghapus objek-objek tersebut--kamu +harus menggunakan [API Kubernetes](/docs/concepts/overview/kubernetes-api/). +Ketika kamu menggunakan perintah `kubectl`, perintah ini akan melakukan _API call_ untuk perintah +yang kamu berikan. Kamu juga dapat menggunakan API Kubernetes secara langsung pada program yang kamu miliki +menggunakan salah satu [_library_ klien](/docs/reference/using-api/client-libraries/) yang disediakan. + +### _Spec_ dan Status Objek + +Setiap objek Kubernetes memiliki _field_ berantai yang mengatur konfigurasi sebuah objek: +_spec_ dan status. _Spec_, merupakan _field_ yang harus kamu sediakan, _field_ ini mendeskripsikan +_state_ yang kamu inginkan untuk objek tersebut--karakteristik dari objek yang kamu miliki. +Status mendeskripsikan _state_ yang sebenarnya dari sebuah objek, dan hal ini disediakan dan selalu diubah oleh +sistem Kubernetes. Setiap saat, _Control Plane_ Kubernetes selalu memantau apakah _state_ aktual sudah sesuai dengan +_state_ yang diinginkan. + +Sebagai contoh, _Deployment_ merupakan sebuah objek yang merepresentasikan sebuah aplikasi yang dijalankan di kluster kamu. +Ketika kamu membuat sebuah _Deployment_, kamu bisa saja memberikan _spec_ bagi _Deployment_ untuk memberikan spesifikasi +berapa banyak _replica_ yang kamu inginkan. Sistem Kubernetes kemudian akan membaca konfigurasi yang kamu berikan +dan mengaktifkan tiga buah instans untuk aplikasi yang kamu inginkan--mengubah status yang ada saat ini agar sesuai dengan apa yang kamu inginkan. +Jika terjadi kegagalan dalam instans yang dibuat, sistem Kubernetes akan memberikan respons bahwa terdapat perbedaan antara _spec_ dan status serta +melakukan penyesuaian dengan cara memberikan instans pengganti. + +Informasi lebih lanjut mengenai _spec_ objek, status, dan _metadata_ dapat kamu baca di [Konvensi API Kubernetes](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md). + +### Mendeskripsikan Objek Kubernetes + +Ketika kamu membuat sebuah objek di Kubernetes, kamu harus menyediakan _spec_ objek yang +mendeskripsikan _state_ yang diinginkan, serta beberapa informasi tentang objek tersebut (seperti nama). +Ketika kamu menggunakan API Kubernetes untuk membuat objek tersebut (baik secara langsung atau menggunakan perintah +`kubectl`), _request_ API yang dibuat harus mencakup informasi seperti _request body_ dalam format JSON. +Apabila kamu memberikan **informasi dalam bentuk `.yaml` ketika menggunakan perintah `kubectl`** maka `kubectl` +akan mengubah informasi yang kamu berikan ke dalam format JSON ketika melakukan _request_ API. + +Berikut merupakan contoh _file_ `.yaml` yang menunjukkan _field_ dan _spec_ objek untuk _Deployment_: + +{{< codenew file="application/deployment.yaml" >}} + +Salah satu cara untuk membuat _Deployment_ menggunakan _file_ `.yaml` +seperti yang dijabarkan di atas adalah dengan menggunakan perintah +[`kubectl apply`](/docs/reference/generated/kubectl/kubectl-commands#apply) +pada _command-line interface_ `kubectl` kamu menerapkan _file_ `.yaml` sebagai sebuah argumen. +Berikut merupakan contoh penggunaannya: + +```shell +kubectl apply -f https://k8s.io/examples/application/deployment.yaml --record +``` + +Keluaran yang digunakan kurang lebih akan ditampilkan sebagai berikut: + +```shell +deployment.apps/nginx-deployment created +``` + +### _Field-Field_ yang dibutuhkan + +Pada _file_ `.yaml` untuk objek Kubernetes yang ingin kamu buat, kamu perlu +menyediakan _value_ untuk _field-field_ berikut: + +* _apiVersion_ - Version API Kubernetes mana yang kamu gunakan untuk membuat objek tersebut +* _kind_ - Objek apakah yang ingin kamu buat +* _metadata_ - Data yang dapat kamu gunakan untuk melakukan identifikasi objek termasuk _name_ dalam betuk string, _UID_, dan _namespace_ yang bersifat opsional + +Kamu juga harus menyediakan _field_ _spec_. Format spesifik dari _spec_ sebuah objek akan berbeda bergantung +pada objek apakah yang ingin kamu buat, serta mengandung _field_ berantai yang spesifik bagi objek tersebut. +[Referensi API Kubernetes](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/) memberikan penjelasan +lebih lanjut mengenai format _spec_ untuk semua objek Kubernetes yang dapat kamu buat. Misalnya saja format _spec_ +untuk _Pod_ dapat kamu temukan [di sini](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#podspec-v1-core), +dan format _spec_ untuk _Deployment_ dapat ditemukan +[di sini](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#deploymentspec-v1-apps). + +{{% /capture %}} + +{{% capture whatsnext %}} +* Pelajari lebih lanjut mengenai dasar-dasar penting bagi objek Kubernetes, seperti [Pod](/docs/concepts/workloads/pods/pod-overview/). +{{% /capture %}} + + diff --git a/content/id/examples/application/deployment.yaml b/content/id/examples/application/deployment.yaml new file mode 100644 index 0000000000..117fdc805c --- /dev/null +++ b/content/id/examples/application/deployment.yaml @@ -0,0 +1,19 @@ +apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2 +kind: Deployment +metadata: + name: nginx-deployment +spec: + selector: + matchLabels: + app: nginx + replicas: 2 # tells deployment to run 2 pods matching the template + template: + metadata: + labels: + app: nginx + spec: + containers: + - name: nginx + image: nginx:1.7.9 + ports: + - containerPort: 80