איך ליצור אשכול Kubernetes עם כלי ה-CLI של AWS EKS

אם אתה מפתח, בדרך כלל תרצה להפעיל יישומים באמצעות תחנות Dockerized על Kubernetes. אך השאלה היא, איך לעשות זאת? למה לא לנסות את AWS EKS CLI?

במדריך זה, תלמד כיצד להגדיר את AWS EKS CLI כדי ליצור אשכול Kubernetes, כך שתוכל להתמקד בקוד שלך במקום לנהל את התשתיות.

קרא והתחל ליצור את האשכול שלך היום!

דרישות מוקדמות

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

יצירת משתמש מנהל

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

1. התחבר ל קונסולת AWS, ונווט אל לוח המחוונים של IAM שלך.

לחץ על משתמשים (לוח שמאל) —> הוסף משתמשים (למעלה-ימין) כפי שמוצג למטה כדי להתחיל בהוספת משתמשים.

Initializing User Creation

2. לאחר מכן, נא לספק שם משתמש בשדה שם משתמש, כאן K8-Admin משמש, לבדוק את האפשרות מפתח גישה – גישה תכנותית וללחוץ על הבא: הרשאות.

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

Configuring User Details

3. נא ללחוץ על האפשרות לצרף מדיניות קיימת ישירות, לבדוק את המדיניות AdministratorAccess, וללחוץ על הבא: תגים.

המדיניות AdministratorAccess מעניקה למשתמש (K8-Admin) גישה מלאה ל-AWS, ועוד כך:

Setting up AdministratorAccess policies

4. נא ללחוץ על הבא: ביקורת כדי לדלג על הוספת תגיות.

Skipping the tags screen

5. לבסוף, נא לבדוק את פרטי המשתמש וללחוץ על יצירת משתמש כדי לסיים את יצירת המשתמש המנהל.

Creating the admin user

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

Previewing the admin user keys

הפעלת מופע EC2

עכשיו שיצרת את K8-Admin, אתה יכול כעת ליצור את המופע הראשון שלך ב-EC2. תשתמש במופע הזה כנקודת ה-Master שלך, שם תריץ את הפקודות שלך כדי ליצור את האשכול שלך.

1. נווט אל לוח המחוונים שלך ב-EC2, לחץ על EC2, ואז על הפעלת מופעים בחלקו הימני ביותר של העמוד. פעולה זו מפנה את הדפדפן שלך לעמוד שבו תוכל לבחור תמונת מכונה של אמזון (AMI) (שלב שני).

Launching an EC2 Instance

2. לאחר מכן, לחץ על בחר ליד (בצד ימין) ב-Amazon Linux 2 AMI (HVM) מהרשימה, כפי שמוצג למטה.

Amazon Linux 2 AMI (HVM) מספק ליבת Linux 5.10 מותאמת עבור ביצועים אופטימליים של הדור האחרון של חומרת. AMI זו גם כוללת מספר תכונות הנדרשות על ידי אשכולי Kubernetes ברמת ייצור.

Selecting Amazon Linux 2 AMI (HVM)

3. השאר את ברירת המחדל (t2.micro) עבור סוג המופע ולחץ על הבא: הגדרת פרטי המופע כדי להגדיר את המופע.

Previewing the instance type

4. הפעל את האפשרות הקצאה אוטומטית של כתובת IP ציבורית ולחץ הבא: הוספת אחסון. אפשרות זו מבטיחה שכל אחד מהתכולים שלך יוכל לגשת ל-IP הציבורי של נקודת המאסטר של Kubernetes שלך ולמופעי ה-EC2 שלך.

Configuring instance details

5. שמור על ברירת המחדל (Root) בדף הוספת אחסון ולחץ על הבא: הוסף תגיות. נכון לשם הגרסה הראשונית הדרושה כדי לקרוא ולכתוב נתונים מבפנים המופע.

Configuring the storage

6. דלג על הוספת התגיות ולחץ על הבא: הגדר קבוצת אבטחה.

Previewing the tags

7. שמור על הגדרות ברירת המחדל בקבוצת האבטחה, כפי שמוצג למטה, ולחץ על בקר והשקה.

Previewing the Security Group

8. בדוק את פרטי ההשקה של המופע ולחץ על השקה כדי להשיק את המופע. יופיע חלון קופץ שבו תוכל לבחור לבחור בזוג מפתחות קיימים או ליצור זוג חדש (שלב תשע).

Launching an instance

9. בתיבת הדו-שיח, הגדר את זוג המפתחות עם התכונות הבאות:

  • בחר צור זוג מפתחות חדש בתיבת הנפתחות.
  • בחר RSA כסוג הזוג המפתחות.
  • ספק את שם זוג המפתחות המועדף שלך. אבל למדריך זה, שם זוג המפתחות מוגדר ל- my-nvkp.
  • לחץ על הורד מפתח זוג, לאחר מכן השק מופעים.
Creating a new key pair

המופע שלך עשוי לקחת דקה או שתיים כדי להשתקל באופן מלא. לאחר שהמופע שלך רץ, תראה אותו ברשימת הלוח שלך של EC2, כפי שמוצג למטה.

Previewing the newly-created instance

קינון כלי ה-CLI של AWS

עכשיו שהמופע שלך רץ, זמן להגדיר את כלי קו הפקודה (CLI). שימוש בכלי CLI בשילוב עם חשבון ה-AWS שלך הוא חיוני ביצירת האשכול של Kubernetes שלך.

1. מלוח המחוונים של EC2 שלך, בדוק את התיבה כדי לבחור במופע, כפי שמוצג למטה. לחץ על התחברות כדי לאתחל את התחברות המופע.

Connecting to the Ec2 instance.

2. לאחר מכן, לחץ על הכפתור התחברות כדי להתחבר למופע שבחרת בשלב הראשון.

Connecting to the instance

כאשר התחברת למופע EC2 שלך, הדפדפן שלך מופנה לקונסולת אינטראקטיבית המוצגת למטה כמהפעלה שלך עם המופע EC2 שלך.

הקונסולה האינטראקטיבית מאפשרת לך להתחבר לקו הפקודה ולהריץ פקודות מנהל למופע החדש שלך.

Previewing the interactive terminal

3. הרץ את הפקודה aws למטה כדי לבדוק את גרסת ה-CLI שלך.

aws --version

כפי שניתן לראות מן הפלט למטה, אתה מריץ גרסה 1.18.147 על מופע ה-Linux 2 שלך של אמזון, שהיא מעודכנת. עליך להוריד ולהתקין את גרסת ה-AWS CLI 2+ כדי לוודא שניתן לך גישה לכל התכונות של Kubernetes (שלב שלוש).

Checking the AWS CLI version

4. כעת, הרץ את הפקודה curl למטה כדי להוריד את כלי ה-CLI v2+ ולשמור אותו בקובץ זיפ בשם awscliv2.zip.

 curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" 
Downloading the CLI tool v2+

5. הרץ את הפקודות הבאות כדי לפתוח את הקובץ שהורד ולקבוע איפה ה-CLI הישן מותקן.

unzip awscliv2.zip
which aws

כפי שניתן לראות מן הפלט למטה, ה-CLI הישן מותקן בנתיב /usr/bin/aws. עליך לעדכן את הנתיב הזה עם הגרסה המעודכנת.

Updating outdated AWS CLI

6. הריצו את הפקודה למטה כדי לבצע את הפעולות הבאות ולעדכן את נתיב ההתקנה של AWS CLI על המכונה שלך:

  • התקינו את כלי AWS CLI המעודכנים על המכונה שלך Amazon Linux 2 (sudo ./aws/install).
  • הגדירו את התיקייה (--install-dir /usr/bin/aws-cli) שבה תתקינו את כלי ה-CLI. ביצוע זה מאפשר לך להעביר את כלי ה-CLI שעודכנו למכונות אחרות מבלי להתקין את כלי ה-CLI מחדש.
  • עדכנו (--update) את סביבת השקול הנוכחית שלכם עם הנתיב החדש לכלי AWS CLI אם יש כזה בסביבת הנוכחית שלכם.
sudo ./aws/install --bin-dir /usr/bin --install-dir /usr/bin/aws-cli --update
Installing the CLI tool v2

7. הריצו מחדש את הפקודה aws --version למטה כדי לוודא שה- AWS CLI עודכן בצורה נכונה.

aws --version

גרסת AWS CLI המותקנת היא 2.4.7, כפי שמוצג למטה, שהיא גרסת AWS CLI העדכנית ביותר 2.4.7 בזמן כתיבת המאמר.

Checking the AWS CLI updated version

8. לאחר מכן, הריצו את הפקודה aws configure כדי להגדיר את המכונה שלכם עם כלי AWS CLI החדשים.

aws configure

הזינו את הערכים המתאימים בהצגה כפי שמופיע למטה:

  • מזהה מפתח לגישה של AWS [ללא] – הזינו את מזהה הגישה של המפתח ששמרתם בקטע הקודם "יצירת משתמש מנהל".
  • מפתח גישה סודי של AWS [ללא] – הזינו את מפתח הגישה הסודי ששמרתם בקטע הקודם "יצירת משתמש מנהל".
  • שם אזור ברירת מחדל [ללא] – בחרו אזור נתמך, כמו us-east-1.
  • תבנית פלט ברירת מחדל [ללא] – הזינו json, מאחר ותבנית JSON היא התקן המועדף לשימוש עם Kubernetes.
Configuring the AWS Environment

הגדרת כלי השורת פקודה של Amazon EKS (eksctl)

מכיוון שהמטרה שלך היא ליצור אשכול Kubernetes עם כלי השורת פקודה של AWS EKS, יש להגדיר גם את כלי השורת פקודה של Amazon EKS (eksctl). כלי זה מאפשר לך ליצור ולנהל אשכולי Kubernetes על Amazon EKS.

1. התקן את הגרסה האחרונה של כלי השורת הפקודה של Kubernetes (kubectl) על מחשב EC2 שלך. כלי זה מאפשר לך להריץ פקודות נגד אשכולי Kubernetes.

2. לאחר מכן, הרץ את פקודת curl למטה כדי לשלוף את הגרסה האחרונה של eksctl מ- GitHub לתיקייה שלך ב-/tmp כקובץ .tar.gz, ואז פשוט את תוכן הארכיון לתיקייה /tmp.

הרץ את הפקודות למטה כדי לבצע את הפעולות הבאות:

  • שלף את הגרסה האחרונה של eksctl מ- GitHub (--location) כארכיון .tar.gz ("<https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$>(uname -s)_amd64.tar.gz")
  • פשוט את תוכן הארכיון לתיקייה /tmp (tar xz -C /tmp), כשדגל --silent משתיק את פלט התקדמות הפקודה.
  • העבר (sudo mv) את הבינארי של eksctl (/tmp/eksctl) לנתיב בו התקנת את כלי ה- AWS CLI (/usr/bin)
curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp
sudo mv /tmp/eksctl /usr/bin

3. לבסוף, הריצו את הפקודה למטה כדי לאמת שהתקנתם בהצלחה את eksctl.

eksctl version

הפלט למטה מאשר שהתקנתם בהצלחה את eksctl.

Checking the eksctl CLI tool version

אם אתם חדשים ל־eksctl, תוכלו להריץ את הפקודה למטה כדי לקבל רשימה של כל הפקודות הנתמכות ב־eksctl ואת שימושן.

eksctl --help
Previewing the eksctl help page

ייבוא האשפתך של אשפתך EKS

עכשיו שהגדרתם את eksctl, תוכלו כעת לייבא את האשפתכם הראשון עם פקודות eksctl.

הריצו את הפקודה eksctl למטה כדי ליצור את האשפתכם הראשון ולבצע את הפעולות הבאות:

  • צור אשפת Kubernetes של 3 צמתים בשם dev עם סוג צומת אחת כ־t3.micro ואזור כ־us-east-1.
  • הגדר מינימום של צומת אחת (--nodes-min 1) ומקסימום של ארבע צמתים (--nodes-max 4) עבור קבוצת הצמתים הזו שמנוהלת על ידי EKS. קבוצת הצמתים נקראת standard-workers.
  • צור קבוצת צמתים בשם standard-workers ובחר סוג מכונה עבור קבוצת הצמתים standard-workers.
eksctl create cluster --name dev --version 1.21 --region us-east-1 --nodegroup-name standard-workers --node-type t3.micro --nodes 3 --nodes-min 1 --nodes-max 4 --managed
Provisioning your EKS Cluster

2. נווטו ללוח המחוונים שלכם של CloudFormation כדי לראות את הפעולות שבוצעו על ידי הפקודה. פקודת eksctl create cluster משתמשת ב־CloudFormation כדי לייבא את התשתיות בחשבון ה־AWS שלך.

כפי שאתה יכול לראות למטה, נוצרת תשתית CloudFormation בשם eksctl-dev-cluster. התהליך יכול לקחת 15 דקות או יותר להשלים.

Previewing the eksctl-dev-cluster stack.

3. כעת, נווט ללוח המחוונים שלך של EKS, ותראה את הקלאסטר בשם dev שניתן לפרוט. לחץ על הקישור dev כדי לגשת ללוח בקרה של EKS של dev.

Navigating to the dev EKS Cluster dashboard.

למטה, תראה את פרטי הקלאסטר של dev, כמו שם ה-Kube Node , סוג המכונה , קבוצת ה-Nodes , וה-Status .

Previewing the dev EKS Cluster dashboard.

4. החלף ללוח המחוונים שלך של EC2, ותראה ארבעה נודים פעילים, כששלושה מתפקידם הוא t3.micro בחשבון ה- AWS שלך (שלושה נודים עובדים ונוד מאסטר).

Previewing the EC2 dashboard.

5. לבסוף, הפעל את הפקודה הבאה כדי לעדכן את קובץ ה- kubeconfig שלך (update-kubeconfig) עם נקודת הקצה, התעודה, וההרשאות של הקלאסטר שלך.

aws eks update-kubeconfig --name dev --region us-east-1
Updating kubectl config

הפעלת אפליקציה על קלאסטר EKS

יצרת את הקלאסטר שלך ב-EKS ואימתת שהוא פועל בצורה מושלמת. אך כרגע, הקלאסטר פשוט עומד בפינה. למענה על זה, תשתמש בקלאסטר EKS זה על ידי הפקת אפליקציה NGINX כדי לבצע הדגמה.

1. הריץ את הפקודה yum למטה כדי להתקין את git ולקבל את כל התגובות באופן אוטומטי (-y) במהלך ההתקנה.

sudo yum install -y git
Installing Git

2. לאחר מכן, הריץ את הפקודה git clone למטה כדי לשכפל את קבצי התצורה ממאגר ה-GitHub לתיקיית הנוכחית שלך. תשתמש בקבצים אלה כדי ליצור פריסת NGINX בקטנוניות שלך וליצור מאזן עומס (ELB).

git clone https://github.com/Adam-the-Automator/aws-eks-cli.git
Cloning the configuration files

3. הריץ את הפקודות הבאות כדי להעביר לתיקייה ata-elk, וליצור (kubectl apply) שירות עבור NGINX (./nginx-svc.yaml).

# שינוי תיקייה ל-ata-elk
cd ata-elk
# החלת התצורה ב־./nginx-svc.yaml לקטנוניה
kubectl apply -f ./nginx-svc.yaml
Creating a service for NGINX

4. לאחר מכן, הריץ את הפקודה kubectl get service כדי לבדוק את מצב השירות שלך של NGINX.

kubectl get service

כפי שאתה רואה למטה, סוג השירות הוא מאזן עומס, ו-Kubernetes יצר שירות (nginx-svc), שהוא הפריסה שלך של NGINX. תוכל גם לראות את שם המארח החיצוני של מאזן העומס שנוצר על ידי EKS תחת העמודה כתובת IP חיצונית.

שים לב לשם המארח החיצוני של מאזן העומס מראש מכיוון שתצטרך אותו מאוחר יותר כדי לבדוק את מאזן העומס.

Checking the status of your NGINX

5. הריץ את הפקודה kubectl למטה כדי לפרוס את קטנוניות ה-NGINX.

kubectl apply -f ./nginx-deployment.yaml
Deploying the NGINX pods

6. הרץ את הפקודות הבאות kubectl get כדי לבדוק את מצב ה־NGINX שלך deployment וה־NGINX שלך pod.

kubectl get deployment
kubectl get pod

כפי שניתן לראות בפלט למטה, יש שלושה פודים באתר הפצתך, וכולם פועלים.

Checking the status of the NGINX deployment and pods

7. לאחר מכן, הרץ את הפקודה kubectl get node כדי לבדוק את מצב צמתי ה־worker שלך.

kubectl get node
Check the status of your worker nodes

8. עכשיו, הרץ את הפקודה curl למטה כדי לבדוק את הטעינה שלך. החלף <LOAD_BALANCER_DNS_HOSTNAME> עם שם ה־DNS שרשמת למעלה (שלב חמישי).

curl "<LOAD_BALANCER_DNS_HOSTNAME>"

תראה את דף הבית של NGINX מהשירות NGINX שנוצר על ידי EKS, כפי שמוצג למטה. הפלט למטה מאשר כי מאזנת העומס שלך עובדת כראוי ושניתן לגשת אל פודי ה־NGINX שלך.

Checking your load balancer

9. לבדיקה נוספת, העתק והדבק את שם ה־DNS של מאזנת העומס לכרטיסיית דפדפן חדשה.

תקבל גם דף בית מ־NGINX, המציין כי היישום שלך פועל.

Checking your load balancer with a browser

בדיקת שליטת Kubernetes מוצפנת

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

באמצעות תכונת שליטת Kubernetes מוצפנת, אתה מגביר את זמינות היישום שלך. אתה תבדוק את התכונה הזו על ידי עצירת צמתי ה־worker של EKS שלך וראיית האם Kubernetes משיב צמתים חדשים להחלפה של הנכשלים.

בלוח המחוונים שלך של EC2, עצור את כל קבוצות העבודה של הצמתים שלך ב־EKS, כפי שמוצג למטה.

Stopping all of your EKS worker node instances

2. לְבָצֵע זאת, הרץ את הפקודה הבאה כדי לבדוק את מצב נוד העובד.

kubectl get node

תקבל מערך של מצבים, כמו Pending, Running, ו־Terminating. למה? מכיוון שכאשר אתה מנסה לעצור את כל נודי העובד, Kubernetes זוהה כשגיאה ומביא מהר לנוד אחר.

Checking the status of the worker node

3. כעת הפעל את הפקודה kubectl get pod כדי לבדוק את יכולת השליטה הזמינה של Kubernetes.

kubectl get pod

תראה בפלט שיש שלושה כדורי עבודה חדשים (מזוהים לפי גיל) במצב Running. הכדורים החדשים אלו מציינים שיכולת השליטה הזמינה של Kubernetes פועלת כצפוי.

Checking the status of the pods

4. הפעל את הפקודה kubectl get service למטה כדי לרשום את כל השירותים הזמינים.

תראה למטה ש־Kubernetes יצרה שירות חדש, ושם ה-DNS של מאזנת העומס שונה כעת. kubectl get service

kubectl get service
Kubernetes has created a new service

5. לבסוף, העתק והדבק את שם ה-DNS של מאזנת העומס לדפדפן שלך. תקבל את עמוד הברכה מ־NGINX כפי שעשית בשלב האחרון של חלק "הפעלת אפליקציה באשף ה- EKS".

Conclusion

מכלל תֹּכוֹת הלמידה במדריך זה, למדת כיצד ליצור אשף EKS, להשיק שירות NGINX מהמיכל שלך ולבדוק את יכולת השליטה הזמינה של מערכת הבקרה.

בנקודה זו, כדאי שיהיה לך הבנה טובה של כיצד ליצור אשף EKS בסביבת AWS שלך.

מה הבא בשבילך? אולי ללמוד כיצד לְ הפעיל אפליקציית NodeJS באמצעות Docker ו-K8s על AWS ?

Source:
https://adamtheautomator.com/aws-eks-cli/