שלב 3: התקנת ASM

התקנת ASM

ב-Apigee hybrid נעשה שימוש בהפצה של Istio שמסופקת עם Anthos Service Mesh‏ (ASM). כדי להתקין את ASM באשכול, פועלים לפי השלבים הבאים.

גרסאות ASM נתמכות

במאמר Apigee hybrid: supported platforms מפורטות גרסאות ה-ASM שנתמכות בגרסה 1.6 של 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

  1. בודקים את משתני הסביבה שיידרשו בשלבים הבאים, ומגדירים אותם אם צריך:
    echo $PROJECT_ID
    echo $CLUSTER_NAME
    echo $CLUSTER_LOCATION
  2. יוצרים קובץ שכבת-על בשם 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
    • apigee-runtime הוא ערך ברירת המחדל של בורר הצמתים. זהו מאגר הצמתים apigee-runtime שיצרתם בשלב 1: יצירת אשכול. אם אתם משתמשים בבורר צמתים אחר או לא משתמשים בבורר צמתים, אתם צריכים לשנות את המאפיין nodeSelector או להשמיט אותו.
    • STATIC_IP היא כתובת ה-IP של מאזן העומסים. אם לא הגדרתם מאפיין כזה, אל תכללו את המאפיין loadBalancerIP, אבל השאירו את המאפיינים type ו-ports.
  3. פועלים לפי ההוראות כדי להתכונן להתקנת ASM:
    1. דרישות מוקדמות ל-Anthos.
    2. ההרשאות שנדרשות כדי להתקין את Anthos Service Mesh.
    3. תכנון ההתקנה
  4. מתקינים את asmcli ואת כל הכלים הנדרשים כמו git,‏ kubectl ו-jq, לפי ההוראות שבמאמר התקנת כלים נדרשים.
  5. ממשיכים לשלב הענקת הרשאות אדמין לאשכול ועוצרים. לא מבצעים את השלב Validate project and cluster (אימות הפרויקט והאשכול).
  6. מתקינים את 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 הוא קובץ השכבות שהכנתם בשלבים הקודמים.

    משתמשים בהגדרות האלה כשפועלים לפי ההוראות במאמר התקנה עם תכונות אופציונליות.

פתרון בעיות

אם נתקלתם בשגיאה שמתייחסת אל 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:

  1. מציגים ברשימה את החברויות ב-GKE Hub בפרויקט:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. מחיקת החברות ב-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

  1. בודקים את משתני הסביבה שיידרשו בשלבים הבאים, ומגדירים אותם אם צריך:
    echo ${PROJECT_ID}
    echo ${CLUSTER_NAME}
    echo ${CLUSTER_LOCATION}
  2. יוצרים קובץ שכבת-על בשם 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.
  3. פועלים לפי ההוראות כדי להתכונן להתקנת ASM:
    1. דרישות מוקדמות ל-Anthos.
    2. ההרשאות שנדרשות כדי להתקין את Anthos Service Mesh.
    3. תכנון ההתקנה
  4. מתקינים את asmcli ואת כל הכלים הנדרשים כמו git,‏ kubectl ו-jq, לפי ההוראות שבמאמר התקנת כלים נדרשים.
  5. ממשיכים לשלב הענקת הרשאות אדמין לאשכול ועוצרים. לא מבצעים את השלב Validate project and cluster (אימות הפרויקט והאשכול).
  6. מתקינים את 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 הוא קובץ השכבות שהכנתם בשלבים הקודמים.

    משתמשים בהגדרות האלה כשפועלים לפי ההוראות במאמר התקנה עם תכונות אופציונליות.

פתרון בעיות

אם נתקלתם בשגיאה שמתייחסת אל 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:

  1. מציגים ברשימה את החברויות ב-GKE Hub בפרויקט:
    gcloud container hub memberships list --project=$PROJECT_ID
  2. מחיקת החברות ב-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

    Linux

  1. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz
  2. מורידים את קובץ החתימה ומשתמשים ב-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
  3. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  4. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  5. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎ /bin לנתיב:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz
  8. מורידים את קובץ החתימה ומשתמשים ב-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
  9. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  10. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  11. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎ /bin לנתיב:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip
  14. מורידים את קובץ החתימה ומשתמשים ב-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
  15. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  16. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  17. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎\bin לנתיב:
    set PATH=%CD%\bin:%PATH%
  18. אחרי שמתקינים את ASM Istio, בודקים את הגרסה של istioctl:
    istioctl version
  19. יוצרים מרחב שמות בשם istio-system לרכיבי מישור הבקרה:
    kubectl create namespace istio-system

התקנה של Anthos Service Mesh

  1. יוצרים קובץ בשם 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
    
  2. מתקינים את 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.

  3. בודקים שה-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
  4. מוודאים שההתקנה הושלמה:
    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

    Linux

  1. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz
  2. מורידים את קובץ החתימה ומשתמשים ב-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
  3. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  4. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  5. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎ /bin לנתיב:
    export PATH=$PWD/bin:$PATH
  6. Mac OS

  7. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz
  8. מורידים את קובץ החתימה ומשתמשים ב-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
  9. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  10. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  11. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎ /bin לנתיב:
    export PATH=$PWD/bin:$PATH
  12. Windows

  13. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip
  14. מורידים את קובץ החתימה ומשתמשים ב-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
  15. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  16. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  17. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎\bin לנתיב:
    set PATH=%CD%\bin:%PATH%
  18. אחרי שמתקינים את ASM Istio, בודקים את הגרסה של istioctl:
    istioctl version
  19. יוצרים מרחב שמות בשם istio-system לרכיבי מישור הבקרה:
    kubectl create namespace istio-system

התקנה של Anthos Service Mesh

  1. יוצרים קובץ בשם 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
    
  2. מתקינים את 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.

  3. בודקים שה-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
  4. מוודאים שההתקנה הושלמה:
    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

    Linux

  1. נותנים את אילוץ ההקשר האבטחתי (SCC) ‏anyuid ל-istio-system באמצעות הפקודה oc הבאה:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  2. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-linux-amd64.tar.gz
  3. מורידים את קובץ החתימה ומשתמשים ב-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
  4. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  5. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  6. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎ /bin לנתיב:
    export PATH=$PWD/bin:$PATH
  7. Mac OS

  8. נותנים את אילוץ ההקשר האבטחתי (SCC) ‏anyuid ל-istio-system באמצעות הפקודה oc הבאה:
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  9. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-osx.tar.gz
  10. מורידים את קובץ החתימה ומשתמשים ב-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
  11. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  12. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  13. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎ /bin לנתיב:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. נותנים את אילוץ ההקשר הביטחוני (SCC) ‏anyuid ל-istio-system באמצעות הפקודה הבאה של OpenShift CLI ‏ (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  16. מורידים את קובץ ההתקנה של Anthos Service Mesh לספריית העבודה הנוכחית:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.29.7-asm.2-win.zip
  17. מורידים את קובץ החתימה ומשתמשים ב-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
  18. מחלצים את התוכן של הקובץ למיקום כלשהו במערכת הקבצים שלכם. לדוגמה, כדי לחלץ את התוכן לספריית העבודה הנוכחית:
    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.
  19. מוודאים שאתם נמצאים בספריית השורש של ההתקנה של Anthos Service Mesh:
    cd istio-1.29.7-asm.2
  20. כדי שיהיה לכם נוח, כדאי להוסיף את הכלים בספרייה ‎\bin לנתיב:
    set PATH=%CD%\bin:%PATH%
  21. אחרי שמתקינים את ASM Istio, בודקים את הגרסה של istioctl:
    istioctl version
  22. יוצרים מרחב שמות בשם istio-system לרכיבי מישור הבקרה:
    kubectl create namespace istio-system

התקנה של Anthos Service Mesh

  1. יוצרים קובץ בשם 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
    
  2. מתקינים את 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.

  3. בודקים שה-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
  4. מוודאים שההתקנה הושלמה:
    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