במאמר הזה מוסבר איך להתקין את Cloud Service Mesh, שמגיע עם Ingress Gateway שהותקן מראש. בעזרת Cloud Service Mesh, אתם יכולים להגדיר משאב Kubernetes Ingress עבור פריסות אם אתם צריכים בקר Ingress. בנושא הזה מופיעה דוגמה שמראה איך להגדיר משאב לדוגמה של Deployment ו-Ingress.
ההתקנה של Cloud Service Mesh מורכבת משני חלקים עיקריים:
- התקנה של גרסה ספציפית של מישור הבקרה בניהול הלקוח ושל Ingress Gateway ב-Cloud Service Mesh.
- הוספת תווית לציון גרסה למרחבי השמות ופריסה מחדש של עומסי העבודה כדי להוסיף קובץ עזר חיצוני.
אם אתם צריכים להשתמש באובייקט Ingress באמצעות בקר Ingress, אתם לא צריכים להוסיף קובץ עזר חיצוני ל-Pods של עומס העבודה. אבל אם אתם רוצים ליהנות מהיתרונות של האבטחה ש-Cloud Service Mesh מספק, ואם אתם רוצים להשתמש ביכולות של ניתוב תנועה, אתם צריכים להוסיף את פרוקסי ה-sidecar.
לפני שמתחילים
לפני שמתחילים להשתמש ב-GKE on AWS, חשוב לוודא שביצעתם את המשימות הבאות:
- ממלאים את הדרישות המוקדמות.
- מתקינים שירות ניהול.
- יוצרים אשכול משתמשים.
- כדי לרשום את האשכול ב-Connect, פועלים לפי השלבים במאמר חיבור לאשכול באמצעות מסוף Cloud.
- מגדירים את האפשרות שימוש ב-Workload Identity עם Google Cloud באשכול.
אם לאשכולות המשתמשים שלכם יש גישה מוגבלת לאינטרנט, צריך לאפשר גישה לדומיינים הבאים של מאגרי קונטיינרים:
docker.ioquay.io
בספריית
anthos-aws, משתמשים ב-anthos-gkeכדי להחליף הקשר לאשכול המשתמשים. מחליפים את CLUSTER_NAME בשם אשכול המשתמש.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
התקנה של Anthos Service Mesh
פועלים לפי השלבים במאמר בנושא התקנה של Cloud Service Mesh.
דוגמה ליצירת פריסה
בקטע הזה, מתקינים אפליקציה לדוגמה ויוצרים עבורה נקודת קצה של Ingress.
יוצרים פריסה של
hello-appו-ClusterIP לפריסה. מעתיקים את קוד ה-YAML הבא לקובץ בשםhello-app.yaml.apiVersion: apps/v1 kind: Deployment metadata: labels: app: hello-app name: hello-app spec: selector: matchLabels: app: hello-app replicas: 3 template: metadata: labels: app: hello-app spec: containers: - name: hello image: "gcr.io/google-samples/hello-app:2.0" --- apiVersion: v1 kind: Service metadata: labels: app: hello-app name: hello-app spec: type: ClusterIP selector: app: hello-app ports: - protocol: TCP port: 8080 targetPort: 8080מחילים את קובץ ה-YAML על האשכול באמצעות הפקודה
kubectl apply.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app.yamlיוצרים Kubernetes Ingress לאפליקציה לדוגמה. מעתיקים את קוד ה-YAML הבא לקובץ בשם
hello-app-ingress.yamlapiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: annotations: kubernetes.io/ingress.class: istio labels: app: hello-app name: hello-app spec: rules: - host: http: paths: - backend: serviceName: hello-app servicePort: 8080יוצרים את ה-Ingress על ידי החלת ההגדרה באמצעות
kubectl apply.env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f hello-app-ingress.yamlצריך לבדוק את הסטטוס של שער התשלומים עם
kubectl get svc.env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-appהשדה
ADDRESSצריך לכלול שם דומיין של ELB. אםADDRESSהבעיה נמשכתpending, צריך לוודא שהתוויות של ה-VPC ושל רשת המשנה נכונות.אפשר להרכיב את המארח והיציאה כדי לבדוק את כתובת ה-URL של שער הכניסה. כדי לקבל את כתובת ה-URL של השער, מריצים את הפקודות הבאות:
export INGRESS_URL=$(env HTTPS_PROXY=http://localhost:8118 \ kubectl get ingress hello-app -o jsonpath='{.status.loadBalancer.ingress[0].hostname}') echo "Your hello-app Ingress URL is: http://"$INGRESS_URLהפקודה האחרונה מדפיסה את נקודת הקצה של ה-Ingress.
אם יצרתם Ingress גלוי לכולם, תוכלו לראות את
hello-appדף האינטרנט שמוגדר כברירת מחדל ב-curlעל ידי כניסה לכתובתhttp://$INGRESS_URL/.curl $INGRESS_URL/
סידור וארגון
מסירים את הרכיבים hello-app באמצעות kubectl delete.
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete -f hello-app.yaml &&\
kubectl delete -f hello-app-ingress.yaml
אם רוצים להסיר את Cloud Service Mesh, אפשר לעיין במאמר בנושא הסרת ההתקנה של Cloud Service Mesh.
המאמרים הבאים
למידע נוסף על: