התקנת ASM
ב-Apigee hybrid נעשה שימוש בהפצה של Istio שמסופקת עם Anthos Service Mesh (ASM). כדי להתקין את ASM באשכול, פועלים לפי השלבים הבאים.
גרסאות ASM נתמכות
במאמר Apigee hybrid: supported platforms מפורטות גרסאות ה-ASM שנתמכות בגרסה 1.7 של Apigee hybrid.
ביצוע שלבי ההגדרה וההגדרה של ASM
כדי להשלים את ההתקנה של ASM, קודם צריך לבצע את שלבי ההגדרה וההגדרה של ASM שמפורטים במסמכי התיעוד של ASM. לאחר מכן, צריך לחזור לכאן כדי להשלים את ההגדרה הספציפית להיברידי לפני שמחילים את ההגדרה על האשכול.
ההוראות להתקנה ולהגדרה של ASM משתנות בהתאם לפלטפורמה. הפלטפורמות מחולקות לקטגוריות הבאות:
- GKE: אשכולות Google Kubernetes Engine שפועלים ב-Google Cloud.
- מחוץ ל-Google Cloud: אשכולות Anthos שפועלים ב:
- אשכולות Anthos ב-VMware (GKE On-Prem)
- Anthos בשרת פיזי
- אשכולות Anthos ב-AWS
- Amazon EKS
- פלטפורמות אחרות של Kubernetes: אשכולות תואמים שנוצרו ופועלים ב:
- AKS
- EKS
- OpenShift
GKE
הכנה להתקנת ASM
- בודקים את משתני הסביבה שיידרשו בשלבים הבאים, ומגדירים אותם אם צריך:
echo $PROJECT_ID
echo $CLUSTER_NAMEecho $CLUSTER_LOCATION - יוצרים קובץ שכבת-על בשם
overlay.yamlעם התוכן הבא:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
-
apigee-runtimeהוא ערך ברירת המחדל של בורר הצמתים. זהו מאגר הצמתיםapigee-runtimeשיצרתם בשלב 1: יצירת אשכול. אם אתם משתמשים בבורר צמתים אחר או לא משתמשים בבורר צמתים, אתם צריכים לשנות את המאפייןnodeSelectorאו להשמיט אותו. - STATIC_IP היא כתובת ה-IP של מאזן העומסים. אם לא הגדרתם מאפיין כזה, אל תכללו את המאפיין
loadBalancerIP, אבל השאירו את המאפייניםtypeו-ports.
-
- פועלים לפי ההוראות כדי להתכונן להתקנת ASM:
- מתקינים את
asmcliואת כל הכלים הנדרשים כמו git, kubectl ו-jq, לפי ההוראות שבמאמר התקנת כלים נדרשים. - ממשיכים לשלב הענקת הרשאות אדמין לאשכול ועוצרים. לא מבצעים את השלב Validate project and cluster (אימות הפרויקט והאשכול).
- מתקינים את ASM עם תכונות אופציונליות.
מציינים את שער הכניסה מדור קודם באמצעות
--option legacy-default-ingressgateway. לדוגמה:./asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path היא ספריית הפלט שבה רוצים ש-
asmcliיגדיר את התקנת ה-ASM, כולל כל ספריות המשנה. - overlay.yaml הוא קובץ השכבות שהכנתם בשלבים הקודמים.
משתמשים בהגדרות האלה כשפועלים לפי ההוראות במאמר התקנה עם תכונות אופציונליות.
- dir_path היא ספריית הפלט שבה רוצים ש-
פתרון בעיות
אם נתקלתם בשגיאה שמתייחסת אל gcloud container hub memberships register,
יכול להיות שחרגתם מהמספר המקסימלי של אשכולות שרשומים ב-GKE Hub. לדוגמה:
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
כדי לפתור את השגיאה הזו, אפשר לנסות את השלבים הבאים ואז להריץ שוב את הפקודה asmcli install:
- מציגים ברשימה את המינויים ל-GKE Hub בפרויקט:
gcloud container hub memberships list --project=$PROJECT_ID
- מחיקת החברות ב-GKE Hub:
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
מידע נוסף על מגבלות ב-GKE Hub זמין במאמר בנושא מכסות ומגבלות.
מחוץ ל-Google Cloud
ההוראות האלה מיועדות להתקנה ולהגדרה של ASM עבור מופעי Apigee hybrid באמצעות Anthos להפעלה ב:
- אשכולות Anthos ב-VMware (GKE On-Prem)
- Anthos בשרת פיזי
- אשכולות Anthos ב-AWS
- Amazon EKS
הכנה להתקנת ASM
- בודקים את משתני הסביבה שיידרשו בשלבים הבאים, ומגדירים אותם אם צריך:
echo ${PROJECT_ID}echo ${CLUSTER_NAME}echo ${CLUSTER_LOCATION} - רושמים את הערכים שצריך להזין עם
ASMCLI. אלה הערכים שתתבקשו לספק כשמבצעים את השלבים שמפורטים במסמכי ה-ASM:- FLEET_PROJECT_ID השם של הפרויקט שאליו ישויכו האשכולות. צריך להשתמש בפרויקט שיצרתם להתקנה הזו, שמאוחסן במשתנה הסביבה
${PROJECT_ID}. - KUBECONFIG_FILE הנתיב המלא לקובץ kubeconfig. נתיב ברירת המחדל הוא
$HOME/.kube/config. מידע נוסף זמין במאמר ארגון הגישה לאשכול באמצעות קובצי kubeconfig במאמרי העזרה של Kubernetes. - DIR_PATH ספריית הפלט של ASMCLI. זה הנתיב שבו ייווצרו קובצי התצורה של Istio. לדוגמה:
./asm. - GATEWAY_NAMESPACE מרחב השמות של שער הכניסה של Istio, לדוגמה:
istio. - REVISION תווית הגרסה של המהדורה הזו של ASM. משתמשים ב-
asm-1297-2 - CONTEXT הקשר של Kubernetes. כדי לבדוק ש-Kubernetes משתמש בהקשר עבור האשכול, מריצים את הפקודה הבאה:
kubectl config get-contexts
אם האשכול הנוכחי הוא לא ההקשר הנוכחי, אפשר להגדיר אותו באמצעות הפקודה הבאה:
kubectl config use-context CONTEXT
- USER_ACCOUNT החשבון עם הרשאות אדמין של האשכול שבו אתם משתמשים כדי לנהל את האשכול.
- FLEET_PROJECT_ID השם של הפרויקט שאליו ישויכו האשכולות. צריך להשתמש בפרויקט שיצרתם להתקנה הזו, שמאוחסן במשתנה הסביבה
- מגדירים את ההקשר לפרויקט ולאזור באמצעות הפקודות הבאות:
מגדירים את מזהה פרויקט ברירת המחדל:
gcloud config set project ${PROJECT_ID}אם אתם עובדים עם אשכולות אזוריים, צריך להגדיר את אזור החישוב שמוגדר כברירת מחדל:
gcloud config set compute/region ${CLUSTER_LOCATION} - מריצים את הפקודה הבאה כדי לקבל פרטי כניסה:
gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID} - יוצרים קובץ שכבת-על בשם
overlay.yamlעם התוכן הבא:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: nodeSelector: # default node selector, if different or not using node selectors, change accordingly. cloud.google.com/gke-nodepool: apigee-runtime resources: requests: cpu: 1000m service: type: LoadBalancer loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out. ports: - name: http-status-port port: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 meshConfig: accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
-
apigee-runtimeהוא ערך ברירת המחדל של בורר הצמתים. זהו מאגר הצמתיםapigee-runtimeשיצרתם בשלב 1: יצירת אשכול. אם אתם משתמשים בבורר צמתים אחר או לא משתמשים בבורר צמתים, אתם צריכים לשנות את המאפייןnodeSelectorאו להשמיט אותו. - STATIC_IP היא כתובת ה-IP של מאזן העומסים. אם לא הגדרתם מאפיין כזה, אל תכללו את המאפיין
loadBalancerIP, אבל השאירו את המאפייניםtypeו-ports.
-
- פועלים לפי ההוראות כדי להתכונן להתקנת ASM:
- מתקינים את
asmcliואת כל הכלים הנדרשים כמו git, kubectl ו-jq, לפי ההוראות שבמאמר התקנת כלים נדרשים. - ממשיכים לשלב הענקת הרשאות אדמין לאשכול ועוצרים. לא מבצעים את השלב Validate project and cluster (אימות הפרויקט והאשכול).
- מתקינים את ASM עם תכונות אופציונליות.
מציינים את שער הכניסה מדור קודם באמצעות
--option legacy-default-ingressgateway. לדוגמה:./asmcli install \ --verbose \ --project_id $PROJECT_ID \ --cluster_name $CLUSTER_NAME \ --cluster_location $CLUSTER_LOCATION \ --output_dir dir_path \ --custom_overlay overlay.yaml \ --enable_all \ --option legacy-default-ingressgateway
- dir_path היא ספריית הפלט שבה רוצים ש-
asmcliיגדיר את התקנת ה-ASM, כולל כל ספריות המשנה. - overlay.yaml הוא קובץ השכבות שהכנתם בשלבים הקודמים.
משתמשים בהגדרות האלה כשפועלים לפי ההוראות במאמר התקנה עם תכונות אופציונליות.
- dir_path היא ספריית הפלט שבה רוצים ש-
פתרון בעיות
אם נתקלתם בשגיאה שמתייחסת אל gcloud container hub memberships register,
יכול להיות שחרגתם מהמספר המקסימלי של אשכולות שרשומים ב-GKE Hub. לדוגמה:
asmcli_1.12: [WARNING]: Command 'run_command gcloud container hub memberships register my-hybrid-example ...' failed.
כדי לפתור את השגיאה הזו, אפשר לנסות את השלבים הבאים ואז להריץ שוב את הפקודה asmcli install:
- מציגים ברשימה את המינויים ל-GKE Hub בפרויקט:
gcloud container hub memberships list --project=$PROJECT_ID
- מחיקת החברות ב-GKE Hub:
gcloud container hub memberships delete "membership" --project=$PROJECT_ID
מידע נוסף על מגבלות ב-GKE Hub זמין במאמר בנושא מכסות ומגבלות.
פלטפורמות אחרות של Kubernetes
AKS
הגדרה והורדה של ASM
לפני שמתחילים, חשוב לקרוא בעיון את השלבים הבאים. נבקש ממך לבצע חלק מהשלבים שמפורטים במסמכי ה-ASM, ואז לחזור לכאן כדי להשלים את ההתקנה.
במדריך הזה מוסבר איך לבצע התקנה נקייה של Anthos Service Mesh (ASM) בגרסה 1.29.7-asm.2 באשכולות שמצורפים ל-Anthos. במדריך הזה מוסבר איך להתקין את Anthos Service Mesh בסביבות הבאות:
- Amazon Elastic Kubernetes Service (Amazon EKS) ב-Kubernetes
- Microsoft Azure Kubernetes Service (Microsoft AKS) ב-Kubernetes
- Red Hat OpenShift
הכנות להתקנת Anthos Service Mesh
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.29.7-asm.2-linux-amd64.tar.gz.1.sig istio-1.29.7-asm.2-linux-amd64.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-linux-amd64.tar.gz
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests/profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה /bin לנתיב:
export PATH=$PWD/bin:$PATH
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.29.7-asm.2-osx.tar.gz.1.sig istio-1.29.7-asm.2-osx.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-osx.tar.gz
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests/profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה /bin לנתיב:
export PATH=$PWD/bin:$PATH
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip.1.sig
openssl dgst -verify - -signature istio-1.29.7-asm.2-win.zip.1.sig istio-1.29.7-asm.2-win.zip <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-win.zip
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests\profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה \bin לנתיב:
set PATH=%CD%\bin:%PATH%
- אחרי שמתקינים את ASM Istio, בודקים את הגרסה של
istioctl:istioctl version
- יוצרים מרחב שמות בשם istio-system לרכיבי מישור הבקרה:
kubectl create namespace istio-system
Linux
Mac OS
Windows
התקנה של Anthos Service Mesh
- יוצרים קובץ בשם
overlay.yamlעם התוכן הבא:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 - מתקינים את Anthos Service Mesh עם
istioctlבאמצעות פרופילasm-multicloud:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1297-2" \ --filename overlay.yamlהארגומנט
--set revisionמוסיף תווית של גרסה בפורמטistio.io/rev=asm-1297-2ל-istiod. תווית התיקון משמשת את ה-webhook האוטומטי להזרקת sidecar כדי לשייך sidecar מוזרקים לגרסה מסוימת של istiod. כדי להפעיל הזרקה אוטומטית של sidecar למרחב שמות, צריך להוסיף לו תווית עם revision שזהה לתווית ב-istiod. - בודקים שה-pods של
istiodפועלים באמצעותkubectl get pods:kubectl get pods -n istio-system
הפלט אמור להיראות כך:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1297-2-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1297-2-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- מוודאים שההתקנה הושלמה:
kubectl get svc -n istio-system
הפלט אמור להיראות כך:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1297-2 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
EKS
הגדרה והורדה של ASM
לפני שמתחילים, חשוב לקרוא בעיון את השלבים הבאים. נבקש ממך לבצע חלק מהשלבים שמפורטים במסמכי ה-ASM, ואז לחזור לכאן כדי להשלים את ההתקנה.
במדריך הזה מוסבר איך לבצע התקנה נקייה של Anthos Service Mesh (ASM) בגרסה 1.29.7-asm.2 באשכולות שמצורפים ל-Anthos. במדריך הזה מוסבר איך להתקין את Anthos Service Mesh בסביבות הבאות:
- Amazon Elastic Kubernetes Service (Amazon EKS) ב-Kubernetes
- Microsoft Azure Kubernetes Service (Microsoft AKS) ב-Kubernetes
- Red Hat OpenShift
הכנות להתקנת Anthos Service Mesh
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.29.7-asm.2-linux-amd64.tar.gz.1.sig istio-1.29.7-asm.2-linux-amd64.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-linux-amd64.tar.gz
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests/profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה /bin לנתיב:
export PATH=$PWD/bin:$PATH
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.29.7-asm.2-osx.tar.gz.1.sig istio-1.29.7-asm.2-osx.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-osx.tar.gz
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests/profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה /bin לנתיב:
export PATH=$PWD/bin:$PATH
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip.1.sig
openssl dgst -verify - -signature istio-1.29.7-asm.2-win.zip.1.sig istio-1.29.7-asm.2-win.zip <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-win.zip
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests\profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה \bin לנתיב:
set PATH=%CD%\bin:%PATH%
- אחרי שמתקינים את ASM Istio, בודקים את הגרסה של
istioctl:istioctl version
- יוצרים מרחב שמות בשם istio-system לרכיבי מישור הבקרה:
kubectl create namespace istio-system
Linux
Mac OS
Windows
התקנה של Anthos Service Mesh
- יוצרים קובץ בשם
overlay.yamlעם התוכן הבא:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 - מתקינים את Anthos Service Mesh עם
istioctlבאמצעות פרופילasm-multicloud:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1297-2" \ --filename overlay.yamlהארגומנט
--set revisionמוסיף תווית של גרסה בפורמטistio.io/rev=asm-1297-2ל-istiod. תווית התיקון משמשת את ה-webhook האוטומטי להזרקת sidecar כדי לשייך sidecar מוזרקים לגרסה מסוימת של istiod. כדי להפעיל הזרקה אוטומטית של sidecar למרחב שמות, צריך להוסיף לו תווית עם revision שזהה לתווית ב-istiod. - בודקים שה-pods של
istiodפועלים באמצעותkubectl get pods:kubectl get pods -n istio-system
הפלט אמור להיראות כך:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1297-2-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1297-2-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- מוודאים שההתקנה הושלמה:
kubectl get svc -n istio-system
הפלט אמור להיראות כך:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1297-2 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
OpenShift
הגדרה והורדה של ASM
לפני שמתחילים, חשוב לקרוא בעיון את השלבים הבאים. נבקש ממך לבצע חלק מהשלבים שמפורטים במסמכי ה-ASM, ואז לחזור לכאן כדי להשלים את ההתקנה.
במדריך הזה מוסבר איך לבצע התקנה נקייה של Anthos Service Mesh (ASM) בגרסה 1.29.7-asm.2 באשכולות שמצורפים ל-Anthos. במדריך הזה מוסבר איך להתקין את Anthos Service Mesh בסביבות הבאות:
- Amazon Elastic Kubernetes Service (Amazon EKS) ב-Kubernetes
- Microsoft Azure Kubernetes Service (Microsoft AKS) ב-Kubernetes
- Red Hat OpenShift
הכנות להתקנת Anthos Service Mesh
- נותנים את אילוץ ההקשר האבטחתי (SCC)
anyuidל-istio-system באמצעות הפקודהocהבאה:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz.1.sig
openssl dgst -verify /dev/stdin -signature istio-1.29.7-asm.2-linux-amd64.tar.gz.1.sig istio-1.29.7-asm.2-linux-amd64.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-linux-amd64.tar.gz
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests/profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה /bin לנתיב:
export PATH=$PWD/bin:$PATH
- נותנים את אילוץ ההקשר האבטחתי (SCC)
anyuidל-istio-system באמצעות הפקודהocהבאה:oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz.1.sig
openssl dgst -sha256 -verify /dev/stdin -signature istio-1.29.7-asm.2-osx.tar.gz.1.sig istio-1.29.7-asm.2-osx.tar.gz <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-osx.tar.gz
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests/profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה /bin לנתיב:
export PATH=$PWD/bin:$PATH
- נותנים את אילוץ ההקשר הביטחוני (SCC)
anyuidל-istio-system באמצעות הפקודה הבאה של OpenShift CLI (oc):oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
- מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip
- מורידים את קובץ החתימה ומשתמשים ב-openssl כדי לאמת את החתימה:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip.1.sig
openssl dgst -verify - -signature istio-1.29.7-asm.2-win.zip.1.sig istio-1.29.7-asm.2-win.zip <<'EOF'-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF - מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה,
כדי לחלץ את התוכן לספריית העבודה הנוכחית:
tar xzf istio-1.29.7-asm.2-win.zip
הפקודה יוצרת ספריית התקנה בספריית העבודה הנוכחית בשם
istio-1.29.7-asm.2, שמכילה:- אפליקציות לדוגמה בספרייה
samples. - כלי שורת הפקודה שמשמש להתקנת Anthos Service Mesh נמצא בספרייה
bin.istioctl - פרופילי ההגדרות של Anthos Service Mesh נמצאים בספרייה
manifests\profiles.
- אפליקציות לדוגמה בספרייה
- מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
cd istio-1.29.7-asm.2
- כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה \bin לנתיב:
set PATH=%CD%\bin:%PATH%
- אחרי שמתקינים את ASM Istio, בודקים את הגרסה של
istioctl:istioctl version
- יוצרים מרחב שמות בשם istio-system לרכיבי מישור הבקרה:
kubectl create namespace istio-system
Linux
Mac OS
Windows
התקנה של Anthos Service Mesh
- יוצרים קובץ בשם
overlay.yamlעם התוכן הבא:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: /dev/stdout enableTracing: true accessLogFormat: '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}' components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: service: type: LoadBalancer ports: - name: status-port port: 15021 targetPort: 15021 - name: http2 port: 80 targetPort: 8080 - name: https port: 443 targetPort: 8443 - מתקינים את Anthos Service Mesh עם
istioctlבאמצעות פרופילasm-multicloud:istioctl install \ --set profile=asm-multicloud \ --set revision="asm-1297-2" \ --filename overlay.yamlהארגומנט
--set revisionמוסיף תווית של גרסה בפורמטistio.io/rev=asm-1297-2ל-istiod. תווית התיקון משמשת את ה-webhook האוטומטי להזרקת sidecar כדי לשייך sidecar מוזרקים לגרסה מסוימת של istiod. כדי להפעיל הזרקה אוטומטית של sidecar למרחב שמות, צריך להוסיף לו תווית עם revision שזהה לתווית ב-istiod. - בודקים שה-pods של
istiodפועלים באמצעותkubectl get pods:kubectl get pods -n istio-system
הפלט אמור להיראות כך:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-88b6fd976-flgp2 1/1 Running 0 3m13s istio-ingressgateway-88b6fd976-p5dl9 1/1 Running 0 2m57s istiod-asm-1297-2-dbfb7c7b6-2ls88 1/1 Running 0 3m21s istiod-asm-1297-2-dbfb7c7b6-fnj8c 1/1 Running 1 3m21s
- מוודאים שההתקנה הושלמה:
kubectl get svc -n istio-system
הפלט אמור להיראות כך:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 172.200.48.52 34.74.177.168 15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP 3m35s istiod ClusterIP 172.200.18.133 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 4m46s istiod-asm-1297-2 ClusterIP 172.200.63.220 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 3m43s
התאמה אישית של ההתקנה של ASM
ההתקנה של ASM שביצעתם עכשיו היא התקנה מינימלית, שמספיקה לבדיקה ולשימוש ב-Apigee hybrid בתרחישי שימוש בסיסיים. למידע על פתרון תרחישי שימוש מתקדמים יותר, כמו הוספה, הסרה או שינוי של מספרי יציאות של איזון עומסים, אפשר לעיין במאמר הפעלה של תכונות אופציונליות.
סיכום
עכשיו יש לכם cert-manager ו-ASM מותקנים, ואתם מוכנים להתקין את כלי שורת הפקודה של Apigee hybrid במחשב המקומי.
1 2 3 (NEXT) Step 4: Install apigeectl 5 6 7 8 9