Translate Service Catalog to ID Localization (#17990)
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
f830c312e6
commit
ff21597840
@@ -0,0 +1,282 @@
|
||||
---
|
||||
title: Service Catalog
|
||||
reviewers:
|
||||
- chenopis
|
||||
content_template: templates/concept
|
||||
weight: 40
|
||||
---
|
||||
|
||||
{{% capture overview %}}
|
||||
{{< glossary_definition term_id="service-catalog" length="all" prepend="Service Catalog adalah" >}}
|
||||
|
||||
Sebuah makelar servis (_service broker_), seperti yang didefinisikan oleh [spesifikasi API makelar servis terbuka]
|
||||
(https://github.com/openservicebrokerapi/servicebroker/blob/v2.13/spec.md), adalah sebuah
|
||||
_endpoint_ untuk beberapa layanan terkelola yang ditawarkan dan dikelola oleh pihak ketiga,
|
||||
yang bisa jadi sebuah penyedia layanan _cloud_ seperti AWS, GCP atau Azure.
|
||||
|
||||
Beberapa contoh dari servis terkelola adalah Microsoft Azure Cloud Queue, Amazon Simple Queue Service, dan
|
||||
Google Cloud Pub/Sub, selain itu, bisa juga penawaran perangkat lunak apa pun yang dapat digunakan oleh suatu aplikasi.
|
||||
|
||||
Dengan menggunakan Service Catalog,
|
||||
seorang {{< glossary_tooltip text="pengelola klaster" term_id="cluster-operator" >}} dapat melihat
|
||||
daftar servis terkelola yang ditawarkan oleh makelar servis, melakukan pembuatan terhadap
|
||||
sebuah servis terkelola, dan menghubungkan (_bind_) untuk membuat tersedia terhadap aplikasi pada suatu klaster Kubernetes.
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
{{% capture body %}}
|
||||
## Contoh kasus penggunaan
|
||||
|
||||
Seorang {{< glossary_tooltip text="pengembang aplikasi" term_id="application-developer" >}} ingin menggunakan
|
||||
sistem antrian pesan sebagai bagian dari aplikasinya yang berjalan dalam klaster Kubernetes.
|
||||
Namun, mereka tidak ingin berurusan dengan kesulitan dalam pengaturan, misalnya menjaga servis tetap
|
||||
berjalan dan mengatur itu oleh mereka sendiri. Beruntungnya, sudah tersedia penyedia layanan _cloud_
|
||||
yang menawarkan sistem antrian pesan sebagai servis terkelola melalui makelar servisnya.
|
||||
|
||||
Seorang pengelola klaster dapat membuat Service Catalog dan menggunakannya untuk berkomunikasi dengan
|
||||
makelar servis milik penyedia layanan _cloud_ untuk menyediakan sebuah servis antrian pesan dan membuat
|
||||
servis ini tersedia kepada aplikasi dalam klaster Kubernetes.
|
||||
Seorang pengembang aplikasi tidak perlu memikirkan detail implementasi atau mengatur sistem antrian pesan tersebut.
|
||||
Aplikasi dapat langsung menggunakan servis tersebut.
|
||||
|
||||
## Arsitektur
|
||||
Service Catalog menggunakan [API dari Open Service Broker](https://github.com/openservicebrokerapi/servicebroker)
|
||||
untuk berkomunikasi dengan makelar servis, bertindak sebagai perantara untuk API Server Kubernetes untuk
|
||||
merundingkan penyediaan awal dan mengambil kredensial untuk aplikasi bisa menggunakan servis terkelola tersebut.
|
||||
|
||||
Ini terimplementasi sebagai ekstensi API Server dan pengontrol, menggunakan etcd sebagai media penyimpanan.
|
||||
Ini juga menggunakan [lapisan agregasi](/docs/concepts/extend-kubernetes/api-extension/apiserver-aggregation/)
|
||||
yang tersedia pada Kubernetes versi 1.7+ untuk menampilkan API-nya.
|
||||
|
||||
<br>
|
||||
|
||||

|
||||
|
||||
|
||||
### Sumber Daya API
|
||||
|
||||
Service Catalog memasang API `servicecatalog.k8s.io` dan menyediakan beberapa sumber daya Kubernetes berikut:
|
||||
|
||||
* `ClusterServiceBroker`: Sebuah representasi dalam klaster untuk makelar servis, membungkus detail koneksi peladen.
|
||||
Ini dibuat dan dikelola oleh pengelola klaster yang berharap untuk menggunakan makelar peladen untuk membuat
|
||||
tipe baru dari sebuah servis terkelola yang tersedia dalam klaster mereka.
|
||||
* `ClusterServiceClass`: Sebuah servis terkelola ditawarkan oleh beberapa makelar servis.
|
||||
Ketika sumber daya `ClusterServiceBroker` ditambahkan ke dalam klaster, kontroler Service Catalog terhubung
|
||||
ke makelar servis untuk mendapatkan daftar servis terkelola yang tersedia. Kemudian membuat sumber daya
|
||||
`ClusterServiceClass` sesuai dengan masing-masing servis terkelola.
|
||||
* `ClusterServicePlan`: Sebuah penawaran khusus dari servis terkelola. Sebagai contoh, sebuah servis terkelola
|
||||
bisa memiliki model harga, yaitu gratis atau berbayar, atau ini mungkin juga memiliki konfigurasi pilihan berbeda,
|
||||
misal menggunakan penyimpanan SSD atau memiliki sumber daya lebih. Mirip dengan `ClusterServiceClass`, ketika
|
||||
`ClusterServiceBroker` baru ditambahkan ke dalam klaster, Service Catalog akan membuat sumber daya
|
||||
`ClusterServicePlan` sesuai dengan _Service Plan_ yang tersedia untuk masing-masing servis terkelola.
|
||||
* `ServiceInstance`: Sebuah objek dari `ClusterServiceClass`.
|
||||
Ini dibuat oleh operator klaster untuk membuat bentuk spesifik dari servis terkelola yang tersedia untuk
|
||||
digunakan oleh salah satu atau lebih aplikasi dalam klaster.
|
||||
Ketika sumber daya `ServiceInstance` baru terbuat, pengontrol Service Catalog terhubung ke makelar servis yang
|
||||
sesuai dan menginstruksikan untuk menyediakan sebuah objek servis.
|
||||
* `ServiceBinding`: Kredensial untuk mengakses suatu `ServiceInstance`.
|
||||
Ini dibuat oleh operator klaster yang ingin aplikasinya untuk menggunakan sebuah `ServiceInstance`.
|
||||
Saat dibuat, kontroler Service Catalog membuat sebuah `Secret` Kubernetes yang berisikan detail koneksi
|
||||
dan kredensial untuk objek servis, yang bisa dimuat ke dalam Pod.
|
||||
|
||||
### Autentikasi
|
||||
|
||||
Service Catalog mendukung beberapa metode autentikasi, yaitu:
|
||||
|
||||
* Basic (nama pengguna/kata sandi)
|
||||
* [OAuth 2.0 Bearer Token](https://tools.ietf.org/html/rfc6750)
|
||||
|
||||
## Penggunaan
|
||||
|
||||
Seorang operator klaster dapat menggunakan API sumber daya Service Catalog untuk membuat servis terkelola
|
||||
dan membuatnya tersedia dalam klaster Kubernetes. Langkah yang dilalui adalah sebagai berikut:
|
||||
|
||||
1. Membuat daftar servis terkelola dan model pembayaran yang tersedia dari makelar servis.
|
||||
2. Membuat sebuah objek dari suatu servis terkelola.
|
||||
3. Menghubungkan ke servis terkelola, yang mengembalikan kredensial koneksi.
|
||||
4. Memetakan kredensial koneksi ke dalam aplikasi.
|
||||
|
||||
### Membuat daftar servis terkelola dan model pembayaran
|
||||
|
||||
Pertama, seorang operator klaster harus membuat sumber daya `ClusterServiceBroker` dalam kelompok
|
||||
`servicecatalog.k8s.io`. Sumber daya ini memiliki URL dan detail koneksi untuk mengakses makelar servis.
|
||||
|
||||
Ini ada contoh dari suatu sumber daya `ClusterServiceBroker`:
|
||||
|
||||
```yaml
|
||||
apiVersion: servicecatalog.k8s.io/v1beta1
|
||||
kind: ClusterServiceBroker
|
||||
metadata:
|
||||
name: cloud-broker
|
||||
spec:
|
||||
# Merujuk pada titik akhir dari makelar servis. (Ini adalah contoh URL yang tidak nyata)
|
||||
url: https://servicebroker.somecloudprovider.com/v1alpha1/projects/service-catalog/brokers/default
|
||||
#####
|
||||
# Nilai tambahan dapat ditambahkan disini, yang mungkin bisa digunakan untuk berkomunikasi
|
||||
# dengan makelar servis, misalnya saja informasi bearer token atau sebuah caBundle untuk TLS.
|
||||
#####
|
||||
```
|
||||
|
||||
Berikut adalah sebuah diagram urutan yang mengilustrasikan langkah-langkah dalam mendaftarkan
|
||||
servis terkelola dan model pembayaran yang tersedia dari makelar servis:
|
||||
|
||||

|
||||
|
||||
1. Setelah sumber daya `ClusterServiceBroker` ditambahkan ke dalam Service Catalog, ini membuat panggilan
|
||||
makelar servis luar untuk membuat daftar servis yang tersedia.
|
||||
1. Makelar servis akan mengembalikan daftar servis terkelola yang tersedia dan daftar model pembayaran,
|
||||
yang akan disimpan sementara sebagai `ClusterServiceClass` dan `ClusterServicePlan`.
|
||||
1. Seorang operator klaster bisa mendapatkan daftar servis terkelola dengan menggunakan perintah berikut ini:
|
||||
|
||||
kubectl get clusterserviceclasses -o=custom-columns=SERVICE\ NAME:.metadata.name,EXTERNAL\ NAME:.spec.externalName
|
||||
|
||||
Itu seharusnya memberikan daftar nama servis dengan format yang mirip dengan berikut:
|
||||
|
||||
SERVICE NAME EXTERNAL NAME
|
||||
4f6e6cf6-ffdd-425f-a2c7-3c9258ad2468 cloud-provider-service
|
||||
... ...
|
||||
|
||||
Mereka juga dapat melihat model pembayaran yang tersedia menggunakan perintah berikut:
|
||||
|
||||
kubectl get clusterserviceplans -o=custom-columns=PLAN\ NAME:.metadata.name,EXTERNAL\ NAME:.spec.externalName
|
||||
|
||||
Itu seharusnya memberikan daftar nama model pembayaran dengan format mirip dengan berikut:
|
||||
|
||||
PLAN NAME EXTERNAL NAME
|
||||
86064792-7ea2-467b-af93-ac9694d96d52 service-plan-name
|
||||
... ...
|
||||
|
||||
|
||||
### Pembuatan sebuah objek
|
||||
|
||||
Seorang operator klaster dapat memulai pembuatan sebuah objek dengan membuat sumber daya `ServiceInstance`.
|
||||
|
||||
Ini adalah contoh dari sumber daya `ServiceInstance`:
|
||||
|
||||
```yaml
|
||||
apiVersion: servicecatalog.k8s.io/v1beta1
|
||||
kind: ServiceInstance
|
||||
metadata:
|
||||
name: cloud-queue-instance
|
||||
namespace: cloud-apps
|
||||
spec:
|
||||
# Referensi untuk salah satu servis yang pernah dikembalikan
|
||||
clusterServiceClassExternalName: cloud-provider-service
|
||||
clusterServicePlanExternalName: service-plan-name
|
||||
#####
|
||||
# Parameter tambahan dapat ditambahkan disini,
|
||||
# yang mungkin akan digunakan oleh makelar servis.
|
||||
#####
|
||||
```
|
||||
|
||||
Berikut adalah diagram urutan yang mengilustrasikan langkah-langkah dalam pembuatan sebuah objek dari
|
||||
servis terkelola:
|
||||
|
||||

|
||||
|
||||
1. Ketika sumber daya `ServiceInstance` sudah terbuat, Service Catalog memulai pemanggilan ke makelar servis
|
||||
luar untuk membuat sebuah objek dari suatu servis.
|
||||
1. Makelar servis membuat sebuah objek baru dari suatu servis terkelola dan mengembalikan sebuah respons HTTP.
|
||||
1. Seorang operator klaster dapat mengecek status dari objek untuk melihat apakah sudah siap atau belum.
|
||||
|
||||
### Menghubungkan ke servis terkelola
|
||||
|
||||
Setelah sebuah objek terbuat, klaster operator harus menghubungkan ke servis terkelola untuk mendapatkan
|
||||
kredensial koneksi dan detail pengguna servis untuk aplikasi bisa mengguakan servis tersebut. Ini dilakukan
|
||||
dengan membuat sebuah sumber daya `ServiceBinding`.
|
||||
|
||||
Berikut adalah contoh dari sumber daya `ServiceBinding`:
|
||||
|
||||
```yaml
|
||||
apiVersion: servicecatalog.k8s.io/v1beta1
|
||||
kind: ServiceBinding
|
||||
metadata:
|
||||
name: cloud-queue-binding
|
||||
namespace: cloud-apps
|
||||
spec:
|
||||
instanceRef:
|
||||
name: cloud-queue-instance
|
||||
#####
|
||||
# Informasi tambahan dapat ditambahkan disini, seperti misalnya secretName atau
|
||||
# parameter pengguna servis, yang mungkin akan digunakan oleh makelar servis.
|
||||
#####
|
||||
```
|
||||
|
||||
Berikut ada diagram urutan yang mengilustrasikan langkah-langkah dalam menghubungkan objek servis terkelola.
|
||||
|
||||

|
||||
|
||||
1. Setelah `ServiceBinding` terbuat, Service Catalog memanggil makelar servis luar untuk meminta
|
||||
informasi yang dibutuhkan untuk terhubung dengan objek servis.
|
||||
1. Makelar servis memberikan izin atau peran kepada aplikasi sesuai dengan pengguna servis.
|
||||
1. Makelar servis mengembalikan informasi untuk bisa terhubung dan mengakses servis terkelola.
|
||||
Ini tergantung pada penyedia layanan dan servis, sehingga informasi yang dikembalikan mungkin berbeda
|
||||
antara suatu penyedia layanan dan servis terkelolanya.
|
||||
|
||||
### Memetakan kredensial koneksi
|
||||
|
||||
Setelah menghubungkan, langkah terakhir melibatkan pemetaan kredensial koneksi dan informasi spesifik mengenai
|
||||
servis kedalam aplikasi. Informasi ini disimpan dalam Secrets yang mana aplikasi dalam klaster dapat mengakses
|
||||
dan menggunakan untuk bisa terkoneksi secara langsung dengan servis terkelola.
|
||||
|
||||
<br>
|
||||
|
||||

|
||||
|
||||
#### Berkas konfigurasi Pod
|
||||
|
||||
Salah satu metode untuk melakukan pemetaan ini adalah dengan menggunakan deklarasi konfigurasi Pod.
|
||||
|
||||
Berikut adalah contoh yang mendekripsikan bagaimana pemetaan kredensial pengguna servis ke dalam aplikasi.
|
||||
Sebuah kunci yang disebut `sa-key` disimpan dalam media bernama `provider-cloud-key`, dan aplikasi memasang
|
||||
media ini pada `/var/secrets/provider/key.json`. _Environment variable_ `PROVIDER_APPLICATION_CREDENTIALS`
|
||||
dipetakan dari nilai pada berkas yang dipasang.
|
||||
|
||||
```yaml
|
||||
...
|
||||
spec:
|
||||
volumes:
|
||||
- name: provider-cloud-key
|
||||
secret:
|
||||
secretName: sa-key
|
||||
containers:
|
||||
...
|
||||
volumeMounts:
|
||||
- name: provider-cloud-key
|
||||
mountPath: /var/secrets/provider
|
||||
env:
|
||||
- name: PROVIDER_APPLICATION_CREDENTIALS
|
||||
value: "/var/secrets/provider/key.json"
|
||||
```
|
||||
|
||||
Berikut adalah contoh yang mendeskripsikan cara memetakan nilai rahasia ke dalam _environment variable_ aplikasi.
|
||||
Dalam contoh ini, nama topik dari sistem antrian pesan dipetakan dari _secret_ bernama `provider-queue-credentials`
|
||||
dengan nama `topic` ke dalam _environment variable_ `TOPIC`.
|
||||
|
||||
|
||||
```yaml
|
||||
...
|
||||
env:
|
||||
- name: "TOPIC"
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: provider-queue-credentials
|
||||
key: topic
|
||||
```
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
{{% capture whatsnext %}}
|
||||
* Jika kamu terbiasa dengan {{< glossary_tooltip text="Helm Charts" term_id="helm-chart" >}},
|
||||
[pasang Service Catalog menggunakan Helm](/docs/tasks/service-catalog/install-service-catalog-using-helm/)
|
||||
ke dalam klaster Kubernetes. Alternatif lain, kamu dapat [memasang Service Catalog dengan SC tool](/docs/tasks/service-catalog/install-service-catalog-using-sc/).
|
||||
* Lihat [contoh makelar servis](https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md#sample-service-brokers).
|
||||
* Pelajari mengenai [kubernetes-incubator/service-catalog](https://github.com/kubernetes-incubator/service-catalog) proyek.
|
||||
* Lihat [svc-cat.io](https://svc-cat.io/docs/).
|
||||
|
||||
{{% /capture %}}
|
||||
|
||||
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
---
|
||||
title: Layanan Terkelola
|
||||
id: managed-service
|
||||
date: 2018-04-12
|
||||
full_link:
|
||||
short_description: >
|
||||
Sebuah perangkat lunak yang dikelola oleh penyedia layanan pihak ketiga.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- extension
|
||||
---
|
||||
Sebuah perangkat lunak yang dikelola oleh penyedia layanan pihak ketiga.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Beberapa contoh dari servis terkelola adalah Microsoft Azure Cloud Queue, Amazon Simple Queue Service, and Google Cloud Pub/Sub, selain itu, bisa juga penawaran perangkat lunak apa pun
|
||||
yang dapat digunakan oleh suatu aplikasi. [Katalog Servis](/docs/concepts/service-catalog/)
|
||||
menyediakan cara untuk membuat daftar, melakukan _provision_, dan mengikat dengan servis
|
||||
terkelola yang ditawarkan oleh {{< glossary_tooltip text="makelar servis" term_id="service-broker" >}}.
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: Makelar Servis
|
||||
id: service-broker
|
||||
date: 2018-04-12
|
||||
full_link:
|
||||
short_description: >
|
||||
Sebuah _endpoint_ untuk kumpulan servis terlola yang ditawarkan dan dikelola
|
||||
oleh penyedia layanan pihak ketiga.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- extension
|
||||
---
|
||||
Sebuah _endpoint_ untuk kumpulan {{< glossary_tooltip text="servis terkelola" term_id="managed-service" >}} yang ditawarkan dan dikelola oleh penyedia layanan pihak
|
||||
ketiga.
|
||||
|
||||
<!--more-->
|
||||
|
||||
{{< glossary_tooltip text="Makelar servis" term_id="service-broker" >}} mengimplementasikan
|
||||
[_Open Service Broker API spec_]
|
||||
(https://github.com/openservicebrokerapi/servicebroker/blob/v2.13/spec.md) dan menyediakan
|
||||
standar baku untuk aplikasi menggunakan servis yang dikelolanya. [Katalog Servis]
|
||||
(/docs/concepts/service-catalog) menyediakan cara untuk membuat daftar, melakukan _provision_,
|
||||
dan mengikat dengan servis terkelola yang ditawarkan oleh makelar servis.
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: Katalog Servis
|
||||
id: service-catalog
|
||||
date: 2018-04-12
|
||||
full_link:
|
||||
short_description: >
|
||||
Sebuah ekstensi API yang memungkinkan aplikasi berjalan pada klaster Kubernetes untuk
|
||||
mempermudah penggunaan perangkat lunak yang dikelola eksternal, seperti servis penyimpanan
|
||||
data yang ditawarkan oleh penyedia layanan komputasi awan.
|
||||
|
||||
aka:
|
||||
tags:
|
||||
- extension
|
||||
---
|
||||
Sebuah ekstensi API yang memungkinkan aplikasi berjalan pada klaster Kubernetes untuk
|
||||
mempermudah penggunaan perangkat lunak yang dikelola eksternal, seperti servis penyimpanan
|
||||
data yang ditawarkan oleh penyedia layanan komputasi awan.
|
||||
|
||||
<!--more-->
|
||||
|
||||
Ini menyediakan cara untuk membuat daftar, melakukan pembuatan, dan mengikat dengan
|
||||
{{< glossary_tooltip text="servis terkelola" term_id="managed-service" >}} eksternal
|
||||
dari {{< glossary_tooltip text="makelar servis" term_id="service-broker" >}} tanpa membutuhkan
|
||||
pengetahuan mendalam mengenai cara servis tersebut dibuat dan diatur.
|
||||
Reference in New Issue
Block a user