דרישות מוקדמות לשילוב עם Kubernetes

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

במאמר הזה מוסבר מה צריך לעשות לפני שמתקינים את Edge Microgateway כשירות באשכול Kubernetes.

בנושא הזה נדון ב:

  • הדרישות המינימליות לאשכול Kubernetes.
  • איך מתקינים ומגדירים את Edge Microgateway.
  • איך מתקינים את הגדרת הבסיס של Edge Microgateway באשכול Kubernetes.

הדרישות לגבי אשכול Kubernetes

אשכול Kubernetes צריך:

  • ‫Kubernetes מגרסה 1.9 ואילך.
  • ‫Kubernetes CLI‏ kubectl גרסה 1.9 ואילך.
  • אשכול עם לפחות 3 צמתים, שלכל אחד מהם יש 2 מעבדים וירטואליים.

דוגמה: יצירת אשכול Kubernetes ב-Google Kubernetes Engine ‏ (GKE)

הגדרת מכונת הניהול של Kubernetes

מכונת הניהול של Kubernetes היא המכונה המקומית שבה אתם משתמשים כדי להריץ פקודות באשכול Kubernetes. המכונה הזו היא בדרך כלל מכונת מחשב שולחני שיש לה גישה למכונות הווירטואליות של Kubernetes.

צריך להתקין את כלי השירות הבאים במכונת הניהול של Kubernetes:

  • מתקינים את ממשק שורת הפקודה kubectl בגרסה 1.9 ואילך.

  • (GKE בלבד) אם אתם מריצים Kubernetes ב-GKE, צריך להתקין את gcloud.

יצירת אשכול Kubernetes ב-GKE

  1. מתחברים ללוח הבקרה של Google Kubernetes Engine ‏ (GKE) ב-Google Cloud Platform ‏ (GCP).
  2. לוחצים על יצירת אשכול.
  3. בוחרים באפשרות Standard Cluster (אשכול רגיל).
  4. מזינים שם לאשכול.
  5. בוחרים אזור.
  6. יש לבחור באפשרות Cluster Version 1.9.7-gke-*. לדוגמה 1.9.7-gke.6.
  7. בוחרים גודל של 3 צמתים.
  8. בוחרים 2 vCPU עם זיכרון בנפח 7.5GB.
  9. לוחצים על יצירה.

    בצילום המסך הבא אפשר לראות את לוח הבקרה של GKE אחרי שמילאנו אותו כמו שמתואר בשלבים הקודמים:

    לוח הבקרה של GKE

קבלת פרטי הכניסה של האשכול

  1. מגדירים את שם הפרויקט ב-GKE:

    gcloud config set project projectName
  2. מגדירים את האזור של פרויקט GKE:

    gcloud config set compute/zone zoneName
  3. מקבלים את פרטי הכניסה שלכם ל-gcloud container:

    gcloud container clusters get-credentials cluster-name --zone zone --project project-name

    where:

    • cluster-name הוא השם של אשכול Kubernetes שיצרתם.
    • zone הוא האזור שבו נמצא האשכול.
    • project-name הוא שם הפרויקט ב-GCP.

    לדוגמה:

    gcloud container clusters get-credentials edgemicrogateway-cluster --zone us-central1-a --project edgemicro-project
  4. מריצים את הפקודה הבאה בדיוק כמו שהיא מוצגת. הפקודה מעניקה הרשאות אדמין של האשכול למשתמש הנוכחי. כדי ליצור את כללי ה-RBAC הנדרשים לשירות Edge Microgateway, צריך הרשאות אדמין:

    kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=$(gcloud config get-value core/account)
    

התקנה של Edge Microgateway ל-Kubernetes

  1. מורידים את Edge Microgateway ל-Kubernetes. אם אתם משתמשים במחשב עם MacOS או Linux, אתם יכולים להוריד את הגרסה האחרונה או גרסה מסוימת על ידי ציון שם הגרסה.

    כדי להוריד את הגרסה העדכנית:

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -

    כדי לקבל גרסה מסוימת לפי מספר הגרסה. שימו לב: מספר הגרסה חייב להתחיל באות v. לדוגמה: v3.0.2

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s  version

    לדוגמה:

    curl -L https://raw.githubusercontent.com/apigee-internal/microgateway/master/kubernetes/release/downloadEdgeMicrok8s.sh | sh -s v3.0.2
  2. עוברים לספריית ההתקנה microgateway_Version_OS_ARCH. לדוגמה:

    cd microgateway_2.5.26_Darwin_x86_64
  3. בודקים את ספריית ההתקנה:

    • /install/kubernetes – קובצי הגדרה .yaml לפריסה ב-Kubernetes.
    • /samples – אפליקציות לדוגמה לבדיקת ההתקנה.
    • /bin – קובץ ההפעלה edgemicroctl. הפקודה edgemicroctl מזריקה את Edge Microgateway ל-Kubernetes
  4. מוסיפים את הלקוח edgemicroctl אל PATH. לדוגמה, מריצים את הפקודה הבאה במערכת MacOS או Linux:

    export PATH=$PWD/bin:$PATH
  5. מחילים את ההגדרה הבסיסית של Edge Microgateway על אשכול Kubernetes. הפקודה הבאה יוצרת מרחב שמות edgemicro-system ותפקידים באשכול.

    kubectl apply -f install/kubernetes/edgemicro.yaml
  6. מתקינים את בקר NGINX Ingress באשכול. מוודאים שאף בקר Nginx אחר לא פועל. אפשר להריץ את הפקודה kubectl get pods כדי לבדוק.

    kubectl apply -f install/kubernetes/edgemicro-nginx-gke.yaml

אימות ההתקנה

  1. כדי לבדוק אם בקר Ingress הופעל, מריצים את הפקודה הבאה:

    kubectl get pods --all-namespaces -l app=edgemicro-ingress --watch

    כפי שאפשר לראות בפלט לדוגמה הבא, חולפת דקה או שתיים עד שהתהליכים מתחילים. זה נורמלי לראות כמה מחזורים של שגיאות והפעלה מחדש לפני שהסמל STATUS משתנה ל-Running.

    NAMESPACE          NAME                                            READY     STATUS             RESTARTS   AGE
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   1          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Error              2          33s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       CrashLoopBackOff   2          40s
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   0/1       Running            3          1m
    edgemicro-system   edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running            3          1m
    
  2. אחרי שה-Ingress פועל, אפשר לבטל את הפקודה שלמעלה על ידי הקלדה של Ctrl+C.

  3. מריצים את הפקודה הזו כדי לוודא ששירותי Kubernetes נפרסו. הפלט שיוצג לכם אמור להיות דומה לדוגמה שמופיעה בהמשך:

    kubectl get svc -n edgemicro-system
    

    פלט לדוגמה:

    NAME                        TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                     AGE
    default-http-backend        ClusterIP      10.19.255.106  <none>         80/TCP                       2h
    edgemicro-ingress           LoadBalancer   10.19.247.156  35.224.24.13   80:30176/TCP,443:32325/TCP   2h
    
  4. מוודאים שכל הפודים פועלים:

    kubectl get pods -n edgemicro-system
    

    פלט לדוגמה:

    NAME                                            READY     STATUS    RESTARTS   AGE
    default-http-backend-55c6c69b88-2lvtw           1/1       Running   0          4m
    edgemicro-ingress-controller-64444469bf-wjhrn   1/1       Running   3          4m
    

התקנה של Edge Microgateway

  1. צריך להתקין את Edge Microgateway בגרסה 2.5.26 או בגרסה מאוחרת יותר. כדי לבדוק את זה, מזינים:

    edgemicro --version
  2. אם לא מותקנת אצלכם גרסה Edge Microgateway 2.5.26 ואילך, מריצים את סקריפט ההתקנה:

    npm install edgemicro -g
  3. אם התקנתם את Edge Microgateway בפעם הראשונה או שדרגתם אותו, מריצים את הפקודה הבאה:

    edgemicro init

    אם אתם זקוקים לעזרה נוספת, תוכלו לעיין במאמר בנושא התקנת Edge Microgateway.

השלב הבא

עכשיו אפשר לפרוס את Edge Microgateway ב-Kubernetes.