AWS Service Broker חושף את שירותי AWS באמצעות הפרוטוקול Open Service Broker (OSB). המסמכים האלה מבוססים על AWS Service Broker Documentation. במסמך הזה מוסבר על שני סוגים אפשריים של התקנות:
- התקנת AWS Service Broker באשכול Kf Kubernetes (מומלץ)
- התקנה של AWS Service Broker ב-AWS וחשיפת ה-API באמצעות גשר VPC
דרישות מוקדמות
בנוסף לאשכול Kubernetes עם Kf ו-Service Catalog מותקנים (ראו הוראות), צריך להתקין את הכלים הבאים בתחנת העבודה שבה תשתמשו ב-CLI של kf:
-
helm: פועלים לפי ההוראות האלה כדי להתקין אתhelmCLI.
שיטה 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:
- אפשר לגשת ל-API באמצעות גשר VPN בין Google Cloud ל-AWS
- ה-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