AWS Service Broker

AWS Service Broker mengekspos Layanan AWS melalui protokol Open Service Broker (OSB). Dokumen ini didasarkan pada Dokumentasi AWS Service Broker. Dokumen ini membahas dua kemungkinan penginstalan:

  1. Menginstal AWS Service Broker di Cluster Kubernetes Kf (direkomendasikan)
  2. Menginstal AWS Service Broker di AWS dan mengekspos API melalui jembatan VPC

Prasyarat

Selain cluster Kubernetes dengan Kf dan Katalog Layanan yang diinstal (lihat petunjuk ini), alat berikut harus diinstal di workstation tempat Anda akan menggunakan CLI kf:

  1. helm: Ikuti petunjuk ini untuk menginstal helm CLI.

Metode 1: Menginstal di GKE

AWS Service Broker di-deploy menggunakan diagram Helm dari panduan memulai AWS Service Broker untuk Kubernetes.

Infrastruktur

AWS Service Broker memerlukan tabel DynamoDB dan pengguna IAM untuk mengakses tabel. Metode termudah adalah men-deploy template CloudFormation yang disediakan. Untuk penginstalan manual, lihat dokumen prasyarat.

Helm

Pertama, tambahkan repositori Helm ke komputer Anda:

$ helm repo add aws-sb https://awsservicebroker.s3.amazonaws.com/charts

Kemudian, deploy diagram Helm, dengan menetapkan accesskeyid dan secretkey AWS yang benar:

$ helm install aws-sb/aws-servicebroker \
  --name aws-servicebroker \
  --namespace aws-sb \
  --set aws.secretkey=REPLACEME \
  --set aws.accesskeyid=REPLACEME

Jika Anda tidak ingin broker diinstal di seluruh cluster, tetapkan tanda --set deployNamespacedServiceBroker=true yang akan mendaftarkan broker ke Namespace yang di-deploy.

Daftar lengkap parameter konfigurasi dapat ditemukan di definisi values.yaml template Helm.

Verifikasi

Setelah diagram Helm di-deploy, resource ClusterServiceBroker seharusnya telah dibuat. Anda dapat memeriksanya dengan kubectl:

$ kubectl get ClusterServiceBroker aws-servicebroker

NAME              URL                                                                    STATUS   AGE
aws-servicebroker https://aws-servicebroker-aws-servicebroker.aws-sb.svc.cluster.local   Ready    3d

Jika STATUS belum siap, berarti ada masalah. Beberapa hal yang perlu diperiksa saat memecahkan masalah adalah:

  • Infrastruktur DynamoDB sudah aktif
  • Pengguna AWS memiliki akses ke tabel DynamoDB melalui Kebijakan atau Grup
  • Nilai diagram Helm ditetapkan dengan benar

Mungkin perlu waktu beberapa menit agar broker Anda muncul dan mendaftarkan dirinya ke Katalog Layanan. Setelah broker terdaftar, Anda dapat melihat layanan yang disediakan dengan perintah kf marketplace.

Metode 2: Menginstal di AWS

Kelemahan menginstal AWS Service Broker di cluster GKE adalah kredensial Pengguna AWS yang diperlukan, bukan Peran AWS. Namun, satu-satunya resource Kubernetes yang diperlukan agar AWS Service Broker dapat berfungsi dengan Kf adalah ClusterServiceBroker, dengan asumsi API AWS Service Broker dapat dijangkau dari cluster GKE.

Ada dua metode yang dapat digunakan untuk mengekspos API ke cluster GKE:

  1. API ini dapat diakses melalui jembatan VPN antara Google Cloud dan AWS
  2. API dapat diakses secara publik (tidak direkomendasikan)

Dalam kedua kasus tersebut, sebaiknya amankan API Service Broker dengan sertifikat TLS tepercaya dan kredensial akses.

Setelah API dapat diakses, kubectl apply ClusterServiceBroker dan Secret Kubernetes yang berisi kredensial untuk memberikan otorisasi dengan Service Broker.

apiVersion: servicecatalog.k8s.io/v1beta1
kind: ClusterServiceBroker
metadata:
  name: aws-sb
spec:
  # For all configuration options, look at the service catalog's
  # type definitions:
  #  https://github.com/kubernetes-sigs/service-catalog/blob/master/pkg/apis/servicecatalog/v1beta1/types.go#L185
  url: https://replace.with.url.to.service.broker
  insecureSkipTLSVerify: false # use a trusted TLS certificate
  authInfo:
    bearer: # or basic
      secretRef:
        namespace: some-namespace
        name: some-secret-name