במדריך למתחילים הזה מפורטות הפעולות שצריך לבצע לפני שפורסים את Speech-to-Text On-Prem API. מידע נוסף על פרמטרים של API שאפשר להגדיר ומוצגים במהלך ההתקנה וההגדרה זמין בדף הגדרות API.
- רוכשים מינוי.
- מקצים לחשבון שירות את התפקידים הנדרשים של ניהול זהות והרשאות גישה (IAM).
- מתקינים את הכלים הנדרשים.
- יוצרים אשכול Kubernetes.
- מגדירים מראש את ה-API משורת הפקודה (אופציונלי – רק להתקנת CLI).
- מתקינים את Istio לאיזון עומסים של gRPC (אופציונלי).
הגדרת חיוב
בדף הפתרונות של Google Cloud Platform, לוחצים על רכישת תוכנית. הפעולה הזו צריכה להתבצע על ידי אדמין של החשבון לחיוב. כדי לוודא זאת, עוברים בסרגל הניווט הימני במסוף Google Cloud Platform אל חיוב -> ניהול חשבון, ואז בודקים את התפקיד/הגורם הראשי בצד שמאל. צריך לעשות את זה רק פעם אחת.

התפקידים שצריך ב-IAM
בתפריט הנפתח של פרויקט Google Cloud Platform בלוח הבקרה:

בחלון הקופץ, בוחרים פרויקט קיים ב-Google Cloud Platform או יוצרים פרויקט חדש. אחרי שבוחרים את הפרויקט שרוצים לשייך ל-Speech-to-Text On-Prem, עוברים לסמל התפריט (המבורגר) בפינה הימנית העליונה ובוחרים באפשרות IAM & Admin (ניהול הרשאות וחשבונות אדמין) --> IAM (ניהול הרשאות גישה) כדי לראות את רשימת חשבונות השירות שמשויכים לפרויקט הזה.
מקצים את התפקידים הבאים לחשבונות שירות ששייכים לפרויקט Google Cloud Platform שבו תשתמשו במהלך ההתקנה. אפשר להקצות אותם לחשבון שירות יחיד או לכמה חשבונות נפרדים, אבל כל החשבונות צריכים להיות שייכים לאותו פרויקט. כדי לערוך את ההרשאות של חשבון השירות, לוחצים על סמל העיפרון משמאל לשם של חשבון השירות. אפשר גם ליצור חשבונות שירות חדשים בלחיצה על הלחצן +ADD (הוספה) בחלק העליון של דף IAM במסוף Google Cloud Platform.
התפקידים שצריך ב-IAM:
- צפייה בחשבון לחיוב
- אדמין של חשבון לחיוב (נדרש לרכישת תוכנית, לא נדרש לפריסה)
- Kubernetes Engine Admin (אם פורסים ל-GKE)
- Kubernetes Engine Cluster Admin (אם פורסים ב-Anthos)
כלים נדרשים
- מתקינים את Google Cloud CLI.
- מתקינים את kubectl.
יצירת אשכול Kubernetes
מוודאים שאתם מריצים אשכול GKE או Anthos. אשכולות Kubernetes זמינים ב-Google Cloud Platform. אם יש לכם אשכולות קיימים, אתם יכולים לבחור אחד מהרשימה שמופיעה על ידי סימון התיבה בצד ימין של שם האשכול:

אם אין לכם אשכולות קיימים, תתבקשו ליצור אשכול. חשוב לוודא שהפרמטרים של האשכול תואמים להמלצות שמופיעות ברשימה שלמטה (הפרמטרים שמוגדרים כברירת מחדל לא מספיקים). רושמים את השם והמיקום של האשכול, וגם את השם של הפרויקט ב-Google Cloud Platform שבו האשכול פרוס.
המלצות בסיסיות להגדרת אשכול:
- ערוץ הפצה: רגיל.
- גודל מאגר הצמתים צריך להיות שווה לערך $REPLICAS או גדול ממנו.
- סוג המכונה של הצומת: e2-standard-4 (4 vCPU, זיכרון בנפח 16GB) או יותר.
- הפעלת התאמה אוטומטית לעומס
- מפעילים את Istio אם צריך איזון עומסים של gRPC (אופציונלי).
- אם רוצים לייצא מדדים ל-Stackdriver, צריך להפעיל את Kubernetes Engine Monitoring (אופציונלי).
התקנת Istio לאיזון עומסים של gRPC (אופציונלי)
כדי להרחיב את השימוש ב-Speech-to-Text On-Prem, אנחנו מסתמכים על איזון עומסים ברמה 7 שתואם ל-gRPC. יש כמה אפשרויות, אבל כאן אנחנו מספקים דוגמה להגדרה של Istio. חשוב לדעת: אסטרטגיית איזון העומסים ברמה 3 של שירות Kubernetes כברירת מחדל לא מספיקה. אפשר להתקין את Istio באמצעות המדריך הרשמי של Google Cloud או הדף הרשמי של Istio. אם רוצים גם לייצא את המדדים, פועלים לפי שלבים 1 ו-2 (בקטע 'הגדרת אשכול Kubernetes' שבהמשך) ואז מריצים את הפקודה הבאה:
kubectl get deployment/istio-pilot -n istio-system \
&& kubectl set env deployment/istio-pilot -n istio-system PILOT_HTTP10=1 \
|| kubectl set env deployment/istiod -n istio-system PILOT_HTTP10=1
התג PILOT_HTTP10=1 מאפשר לאפליקציה שלנו לשלוח בקשות HTTP 1.0. הפעולה הזו חיונית כדי לאפשר לאפליקציה לבצע אימות מול Stackdriver (באמצעות שרת המטא-נתונים של Google Cloud Platform) כדי לפרסם טלמטריה.
הגדרה מראש של ה-API משורת הפקודה (אופציונלי)
אם אתם מתכננים לבצע התקנה מבוססת-CLI, אתם צריכים לפעול לפי ההוראות שבקטע הזה.
הגדרת הסביבה
הגדרת אשכול Kubernetes
מגדירים את משתני הסביבה PROJECT ו-NAMESPACE. PROJECT הוא מזהה הפרויקט של פרויקט Google Cloud Platform שבו הפריסה של האשכול מתבצעת. NAMESPACE הוא השם של מרחב השמות החדש שתיצרו בשלב 3 בהמשך. אפשר להזין כל ערך ל-NAMESPACE, אבל 'speech' הוא ערך ברירת מחדל בטוח.
export PROJECT=<my-project-id> export CLUSTER_NAME=<name of the cluster> export LOCATION=<location of the cluster> export NAMESPACE=<new name for NAMESPACE>מאחזרים את פרטי הכניסה של האשכול:
gcloud container clusters get-credentials $CLUSTER_NAME --project $PROJECT --zone $LOCATIONיוצרים את מרחב השמות שאליו האפליקציה תופעל ומקצים אותו לשם NAMESPACE שיצרתם בשלב 1 למעלה:
kubectl create namespace ${NAMESPACE:?}צריך להתקין את Application CRD, שנדרש כדי להשתמש באפליקציות של Google Cloud Platform Marketplace:
kubectl apply -f "https://raw.githubusercontent.com/GoogleCloudPlatform/marketplace-k8s-app-tools/master/crd/app-crd.yaml"יוצרים סוד דיווח. הערך הזה משמש את האפליקציה כדי לדווח על השימוש בחזרה ל-Google, והוא משמש לחיובים עתידיים. בדף הפתרון, בכרטיסייה 'פריסה באמצעות שורת פקודה', פועלים רק לפי ההוראות 1 ו-2 כדי ליצור ולפרוס את הסוד של דיווח הרישיונות.

המאמרים הבאים
איך פורסים את Speech-to-Text On-Prem API