Merge pull request #19799 from ariscahyadi/trans-id-controller-container
Translate controller and container overview to ID localization
This commit is contained in:
@@ -0,0 +1,178 @@
|
||||
---
|
||||
title: Controller
|
||||
content_template: templates/concept
|
||||
weight: 30
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Dalam bidang robotika dan otomatisasi, _control loop_ atau kontrol tertutup adalah
|
||||
lingkaran tertutup yang mengatur keadaan suatu sistem.
|
||||
|
||||
Berikut adalah salah satu contoh kontrol tertutup: termostat di sebuah ruangan.
|
||||
|
||||
Ketika kamu mengatur suhunya, itu mengisyaratkan ke termostat
|
||||
tentang *keadaan yang kamu inginkan*. Sedangkan suhu kamar yang sebenarnya
|
||||
adalah *keadaan saat ini*. Termostat berfungsi untuk membawa keadaan saat ini
|
||||
mendekati ke keadaan yang diinginkan, dengan menghidupkan atau mematikan
|
||||
perangkat.
|
||||
|
||||
Di Kubernetes, _controller_ adalah kontrol tertutup yang mengawasi keadaan klaster
|
||||
{{< glossary_tooltip term_id="cluster" text="klaster" >}} kamu, lalu membuat atau meminta
|
||||
perubahan jika diperlukan. Setiap _controller_ mencoba untuk memindahkan status
|
||||
klaster saat ini mendekati keadaan yang diinginkan.
|
||||
|
||||
{{< glossary_definition term_id="controller" length="short">}}
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Pola _controller_
|
||||
|
||||
Sebuah _controller_ melacak sekurang-kurangnya satu jenis sumber daya dari
|
||||
Kubernetes.
|
||||
[objek-objek](/docs/concepts/overview/working-with-objects/kubernetes-objects/) ini
|
||||
memiliki *spec field* yang merepresentasikan keadaan yang diinginkan. Satu atau
|
||||
lebih _controller_ untuk *resource* tersebut bertanggung jawab untuk membuat
|
||||
keadaan sekarang mendekati keadaan yang diinginkan.
|
||||
|
||||
_Controller_ mungkin saja melakukan tindakan itu sendiri; namun secara umum, di
|
||||
Kubernetes, _controller_ akan mengirim pesan ke
|
||||
{{< glossary_tooltip text="API server" term_id="kube-apiserver" >}} yang
|
||||
mempunyai efek samping yang bermanfaat. Kamu bisa melihat contoh-contoh
|
||||
di bawah ini.
|
||||
|
||||
{{< comment >}}
|
||||
Beberapa _controller_ bawaan, seperti _controller namespace_, bekerja pada objek
|
||||
yang tidak memiliki *spec*. Agar lebih sederhana, halaman ini tidak
|
||||
menjelaskannya secara detail.
|
||||
{{< /comment >}}
|
||||
|
||||
### Kontrol melalui server API
|
||||
|
||||
_Controller_ {{< glossary_tooltip term_id="job" >}} adalah contoh dari _controller_
|
||||
bawaan dari Kubernetes. _Controller_ bawaan tersebut mengelola status melalui
|
||||
interaksi dengan server API dari suatu klaster.
|
||||
|
||||
Job adalah sumber daya dalam Kubernetes yang menjalankan a
|
||||
{{< glossary_tooltip term_id="pod" >}}, atau mungkin beberapa Pod sekaligus,
|
||||
untuk melakukan sebuah pekerjaan dan kemudian berhenti.
|
||||
|
||||
(Setelah [dijadwalkan](../../../../en/docs/concepts/scheduling/), objek Pod
|
||||
akan menjadi bagian dari keadaan yang diinginkan oleh kubelet).
|
||||
|
||||
Ketika _controller job_ melihat tugas baru, maka _controller_ itu memastikan bahwa,
|
||||
di suatu tempat pada klaster kamu, kubelet dalam sekumpulan Node menjalankan
|
||||
Pod-Pod dengan jumlah yang benar untuk menyelesaikan pekerjaan. _Controller job_
|
||||
tidak menjalankan sejumlah Pod atau kontainer apa pun untuk dirinya sendiri.
|
||||
Namun, _controller job_ mengisyaratkan kepada server API untuk membuat atau
|
||||
menghapus Pod. Komponen-komponen lain dalam
|
||||
{{< glossary_tooltip text="control plane" term_id="control-plane" >}}
|
||||
bekerja berdasarkan informasi baru (adakah Pod-Pod baru untuk menjadwalkan dan
|
||||
menjalankan pekerjan), dan pada akhirnya pekerjaan itu selesai.
|
||||
|
||||
Setelah kamu membuat Job baru, status yang diharapkan adalah bagaimana
|
||||
pekerjaan itu bisa selesai. _Controller job_ membuat status pekerjaan saat ini
|
||||
agar mendekati dengan keadaan yang kamu inginkan: membuat Pod yang melakukan
|
||||
pekerjaan yang kamu inginkan untuk Job tersebut, sehingga Job hampir
|
||||
terselesaikan.
|
||||
|
||||
_Controller_ juga memperbarui objek yang mengkonfigurasinya. Misalnya: setelah
|
||||
pekerjaan dilakukan untuk Job tersebut, _controller job_ memperbarui objek Job
|
||||
dengan menandainya `Finished`.
|
||||
|
||||
(Ini hampir sama dengan bagaimana beberapa termostat mematikan lampu untuk
|
||||
mengindikasikan bahwa kamar kamu sekarang sudah berada pada suhu yang kamu
|
||||
inginkan).
|
||||
|
||||
### Kontrol Langsung
|
||||
|
||||
Berbeda dengan sebuah Job, beberapa dari _controller_ perlu melakukan perubahan
|
||||
sesuatu di luar dari klaster kamu.
|
||||
|
||||
Sebagai contoh, jika kamu menggunakan kontrol tertutup untuk memastikan apakah
|
||||
cukup {{< glossary_tooltip text="Node" term_id="node" >}}
|
||||
dalam kluster kamu, maka _controller_ memerlukan sesuatu di luar klaster saat ini
|
||||
untuk mengatur Node-Node baru apabila dibutuhkan.
|
||||
|
||||
_controller_ yang berinteraksi dengan keadaan eksternal dapat menemukan keadaan
|
||||
yang diinginkannya melalui server API, dan kemudian berkomunikasi langsung
|
||||
dengan sistem eksternal untuk membawa keadaan saat ini mendekat keadaan yang
|
||||
diinginkan.
|
||||
|
||||
(Sebenarnya ada sebuah _controller_ yang melakukan penskalaan node secara
|
||||
horizontal dalam klaster kamu. Silahkan lihat
|
||||
[_autoscaling_ klaster](/docs/tasks/administer-cluster/cluster-management/#cluster-autoscaling)).
|
||||
|
||||
## Status sekarang berbanding status yang diinginkan {#sekarang-banding-diinginkan}
|
||||
|
||||
Kubernetes mengambil pandangan sistem secara _cloud-native_, dan mampu menangani
|
||||
perubahan yang konstan.
|
||||
|
||||
Klaster kamu dapat mengalami perubahan kapan saja pada saat pekerjaan sedang
|
||||
berlangsung dan kontrol tertutup secara otomatis memperbaiki setiap kegagalan.
|
||||
Hal ini berarti bahwa, secara potensi, klaster kamu tidak akan pernah mencapai
|
||||
kondisi stabil.
|
||||
|
||||
Selama _controller_ dari klaster kamu berjalan dan mampu membuat perubahan yang
|
||||
bermanfaat, tidak masalah apabila keadaan keseluruhan stabil atau tidak.
|
||||
|
||||
## Perancangan
|
||||
|
||||
Sebagai prinsip dasar perancangan, Kubernetes menggunakan banyak _controller_ yang
|
||||
masing-masing mengelola aspek tertentu dari keadaan klaster. Yang paling umum,
|
||||
kontrol tertutup tertentu menggunakan salah satu jenis sumber daya
|
||||
sebagai suatu keadaan yang diinginkan, dan memiliki jenis sumber daya yang
|
||||
berbeda untuk dikelola dalam rangka membuat keadaan yang diinginkan terjadi.
|
||||
|
||||
Sangat penting untuk memiliki beberapa _controller_ sederhana daripada hanya satu
|
||||
_controller_ saja, dimana satu kumpulan monolitik kontrol tertutup saling
|
||||
berkaitan satu sama lain. Karena _controller_ bisa saja gagal, sehingga Kubernetes
|
||||
dirancang untuk memungkinkan hal tersebut.
|
||||
|
||||
Misalnya: _controller_ pekerjaan melacak objek pekerjaan (untuk menemukan
|
||||
adanya pekerjaan baru) dan objek Pod (untuk menjalankan pekerjaan tersebut dan
|
||||
kemudian melihat lagi ketika pekerjaan itu sudah selesai). Dalam hal ini yang
|
||||
lain membuat pekerjaan, sedangkan _controller_ pekerjaan membuat Pod-Pod.
|
||||
|
||||
{{< note >}}
|
||||
Ada kemungkinan beberapa _controller_ membuat atau memperbarui jenis objek yang
|
||||
sama. Namun di belakang layar, _controller_ Kubernetes memastikan bahwa mereka
|
||||
hanya memperhatikan sumbr daya yang terkait dengan sumber daya yang mereka
|
||||
kendalikan.
|
||||
|
||||
Misalnya, kamu dapat memiliki Deployment dan Job; dimana keduanya akan membuat
|
||||
Pod. _Controller Job_ tidak akan menghapus Pod yang dibuat oleh Deployment kamu,
|
||||
karena ada informasi ({{< glossary_tooltip term_id="label" text="labels" >}})
|
||||
yang dapat oleh _controller_ untuk membedakan Pod-Pod tersebut.
|
||||
{{< /note >}}
|
||||
|
||||
## Berbagai cara menjalankan beberapa _controller_ {#menjalankan-_controller_}
|
||||
|
||||
Kubernetes hadir dengan seperangkat _controller_ bawaan yang berjalan di dalam
|
||||
{{< glossary_tooltip term_id="kube-controller-manager" >}}. Beberapa _controller_
|
||||
bawaan memberikan perilaku inti yang sangat penting.
|
||||
|
||||
_Controller Deployment_ dan _controller Job_ adalah contoh dari _controller_ yang
|
||||
hadir sebagai bagian dari Kubernetes itu sendiri (_controller_ "bawaan").
|
||||
Kubernetes memungkinkan kamu menjalankan _control plane_ yang tangguh, sehingga
|
||||
jika ada _controller_ bawaan yang gagal, maka bagian lain dari _control plane_ akan
|
||||
mengambil alih pekerjaan.
|
||||
|
||||
Kamu juga dapat menemukan pengontrol yang berjalan di luar _control plane_, untuk
|
||||
mengembangkan lebih jauh Kubernetes. Atau, jika mau, kamu bisa membuat
|
||||
_controller_ baru sendiri. Kamu dapat menjalankan _controller_ kamu sendiri sebagai
|
||||
satu kumpulan dari beberapa Pod, atau bisa juga sebagai bagian eksternal dari
|
||||
Kubernetes. Manakah yang paling sesuai akan tergantung pada apa yang _controller_
|
||||
khusus itu lakukan.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
* Silahkan baca tentang [_control plane_ Kubernetes](/docs/concepts/#kubernetes-control-plane)
|
||||
* Temukan beberapa dasar tentang [objek-objek Kubernetes](/docs/concepts/#kubernetes-objects)
|
||||
* Pelajari lebih lanjut tentang [Kubernetes API](/docs/concepts/overview/kubernetes-api/)
|
||||
* Apabila kamu ingin membuat _controller_ sendiri, silakan lihat [pola perluasan](/docs/concepts/extend-kubernetes/extend-cluster/#extension-patterns) dalam memperluas Kubernetes.
|
||||
{{% /capture %}}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: Variabel Environment Kontainer
|
||||
title: Kontainer Environment
|
||||
content_template: templates/concept
|
||||
weight: 20
|
||||
---
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
title: Ikhtisar Kontainer
|
||||
content_template: templates/concept
|
||||
weight: 1
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
|
||||
Kontainer adalah teknologi untuk mengemas kode (yang telah dikompilasi) menjadi
|
||||
suatu aplikasi beserta dengan dependensi-dependensi yang dibutuhkannya pada saat
|
||||
dijalankan. Setiap kontainer yang Anda jalankan dapat diulang; standardisasi
|
||||
dengan menyertakan dependensinya berarti Anda akan mendapatkan perilaku yang
|
||||
sama di mana pun Anda menjalankannya.
|
||||
|
||||
Kontainer memisahkan aplikasi dari infrastruktur host yang ada dibawahnya. Hal
|
||||
ini membuat penyebaran lebih mudah di lingkungan cloud atau OS yang berbeda.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
{{% capture body %}}
|
||||
|
||||
## Image-Image Kontainer
|
||||
|
||||
[Kontainer image](/docs/concepts/containers/images/) meruapakan paket perangkat lunak
|
||||
yang siap dijalankan, mengandung semua yang diperlukan untuk menjalankan
|
||||
sebuah aplikasi: kode dan setiap *runtime* yang dibutuhkan, *library* dari
|
||||
aplikasi dan sistem, dan nilai *default* untuk penganturan yang penting.
|
||||
|
||||
Secara desain, kontainer tidak bisa berubah: Anda tidak dapat mengubah kode
|
||||
dalam kontainer yang sedang berjalan. Jika Anda memiliki aplikasi yang
|
||||
terkontainerisasi dan ingin melakukan perubahan, maka Anda perlu membuat
|
||||
kontainer baru dengan menyertakan perubahannya, kemudian membuat ulang kontainer
|
||||
dengan memulai dari _image_ yang sudah diubah.
|
||||
|
||||
## Kontainer _runtime_
|
||||
|
||||
Kontainer *runtime* adalah perangkat lunak yang bertanggung jawab untuk
|
||||
menjalankan kontainer. Kubernetes mendukung beberapa kontainer *runtime*:
|
||||
{{< glossary_tooltip term_id="docker" >}},
|
||||
{{< glossary_tooltip term_id="containerd" >}},
|
||||
{{< glossary_tooltip term_id="cri-o" >}}, dan semua implementasi dari
|
||||
[Kubernetes CRI (Container Runtime Interface)](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/container-runtime-interface.md).
|
||||
|
||||
## Selanjutnya
|
||||
|
||||
- Baca tentang [image-image kontainer](https://kubernetes.io/docs/concepts/containers/images/)
|
||||
- Baca tentang [Pod](https://kubernetes.io/docs/concepts/workloads/pods/)
|
||||
|
||||
{{% /capture %}}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: Controller
|
||||
id: controller
|
||||
date: 2018-04-12
|
||||
full_link: /docs/concepts/architecture/controller/
|
||||
short_description: >
|
||||
Kontrol tertutup yang mengawasi kondisi bersama dari klaster melalui apiserver dan membuat perubahan yang mencoba untuk membawa kondisi saat ini ke kondisi yang diinginkan.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- architecture
|
||||
- fundamental
|
||||
---
|
||||
Di Kubernetes, _controller_ adalah kontrol tertutup yang mengawasi kondisi
|
||||
{{< glossary_tooltip term_id="cluster" text="klaster">}} anda, lalu membuat atau
|
||||
meminta perubahan jika diperlukan.
|
||||
Setiap _controller_ mencoba untuk memindahkan status klaster saat ini lebih
|
||||
dekat ke kondisi yang diinginkan.
|
||||
|
||||
<!--more-->
|
||||
|
||||
_Controller_ mengawasi keadaan bersama dari klaster kamu melalui
|
||||
{{< glossary_tooltip text="apiserver" term_id="kube-apiserver" >}} (bagian dari
|
||||
{{< glossary_tooltip term_id="control-plane" >}}).
|
||||
|
||||
Beberapa _controller_ juga berjalan di dalam _control plane_, menyediakan
|
||||
kontrol tertutup yang merupakan inti dari operasi Kubernetes. Sebagai contoh:
|
||||
_controller Deployment_, _controller daemonset_, _controller namespace_, dan
|
||||
_controller volume persisten_ (dan lainnya) semua berjalan di dalam
|
||||
{{< glossary_tooltip term_id="kube-controller-manager" >}}.
|
||||
Reference in New Issue
Block a user