AWS Service Broker

AWS Service Broker חושף את שירותי AWS באמצעות הפרוטוקול Open Service Broker (OSB). המסמכים האלה מבוססים על AWS Service Broker Documentation. במסמך הזה מוסבר על שני סוגים אפשריים של התקנות:

  1. התקנת AWS Service Broker באשכול Kf Kubernetes (מומלץ)
  2. התקנה של AWS Service Broker ב-AWS וחשיפת ה-API באמצעות גשר VPC

דרישות מוקדמות

בנוסף לאשכול Kubernetes עם Kf ו-Service Catalog מותקנים (ראו הוראות), צריך להתקין את הכלים הבאים בתחנת העבודה שבה תשתמשו ב-CLI של kf:

  1. helm: פועלים לפי ההוראות האלה כדי להתקין את helm CLI.

שיטה 1: התקנה ב-GKE

‫AWS Service Broker נפרס באמצעות תרשים Helm מתוך מדריך תחילת העבודה עם AWS Service Broker ל-Kubernetes.

תשתית

‫AWS Service Broker דורש טבלת DynamoDB ומשתמש IAM כדי לגשת לטבלה. השיטה הכי פשוטה היא לפרוס את תבנית CloudFormation שסופקה. להתקנה ידנית, אפשר לעיין במסמכי הדרישות המוקדמות.

Helm

קודם מוסיפים את מאגר Helm למכונה:

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

לאחר מכן פורסים את תרשים Helm ומגדירים את הערכים הנכונים של AWS accesskeyid ו-secretkey:

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

אם לא רוצים שהברוקר יותקן בכל האשכול, מגדירים את הדגל --set deployNamespacedServiceBroker=true, שיגרום לרישום הברוקר במרחב השמות שנפרס.

רשימה מלאה של פרמטרים להגדרה מופיעה בהגדרה של values.yaml בתבנית Helm.

אימות

אחרי פריסת תרשים Helm, אמור להיווצר משאב ClusterServiceBroker. אפשר לבדוק את זה באמצעות kubectl:

$ kubectl get ClusterServiceBroker aws-servicebroker

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

אם STATUS לא מוכן, הייתה בעיה. כמה דברים שכדאי לבדוק כשמנסים לפתור בעיות:

  • התשתית של DynamoDB פועלת
  • למשתמש ב-AWS יש גישה לטבלת DynamoDB דרך מדיניות או קבוצה
  • ערכי התרשים של Helm הוגדרו בצורה נכונה

יכול להיות שיחלפו כמה דקות עד שהברוקר יופעל וירשם בקטלוג השירותים. אחרי שהברוקר נרשם, אפשר לראות את השירותים שסופקו באמצעות הפקודה kf marketplace.

שיטה 2: התקנה ב-AWS

החיסרון בהתקנת AWS Service Broker באשכול GKE הוא שצריך להשתמש בפרטי כניסה של משתמש AWS במקום בתפקיד AWS. עם זאת, המשאב היחיד של Kubernetes שנדרש כדי ש-AWS Service Broker יעבוד עם Kf הוא ClusterServiceBroker, בהנחה שאפשר להגיע ל-API של AWS Service Broker מאשכול GKE.

יש שתי שיטות לחשיפת ה-API לאשכול GKE:

  1. אפשר לגשת ל-API באמצעות גשר VPN בין Google Cloud ל-AWS
  2. ה-API נגיש לכולם (לא מומלץ)

בכל מקרה, מומלץ מאוד לאבטח את ה-API של Service Broker באמצעות אישור TLS ממקור מהימן ופרטי גישה.

אחרי שממשק ה-API נגיש, kubectl apply נוצר ClusterServiceBroker ו-Kubernetes Secret שמכיל את פרטי הכניסה לאישור הגישה ל-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