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
|
content_template: templates/concept
|
||||||
weight: 20
|
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