דלג לתוכן הראשי

פריסת האפליקציה הראשונה שלך

1. מבוא לפריסת יישומים ב-Kubernetes

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

2. מיכלול האפליקציה שלך

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

יצירת תמונת Docker:

  • התקן את Docker.
  • צור Dockerfile שמפרט את התמונה הבסיסית ואת השלבים לבניית האפליקציה שלך. דוגמה לאפליקציית Node.js פשוטה:
FROM node:14
WORKDIR /app
COPY . .
RUN npm install
CMD ["node", "app.js"]
  • בנה את תמונת Docker: docker build -t my-node-app .
  • העלה את התמונה לרישום מיכלים (כמו Docker Hub).

3. כתיבת קובץ YAML לפריסה

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

יצירת קובץ ה-YAML:

  • deployment.yaml לדוגמה לאפליקציית Node.js:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: my-node-app
    spec:
    replicas: 2
    selector:
    matchLabels:
    app: my-node-app
    template:
    metadata:
    labels:
    app: my-node-app
    spec:
    containers:
    - name: my-node-app
    image: [Your Docker Hub username]/my-node-app
    ports:
    - containerPort: 80

4. פריסת היישום

שימוש ב-kubectl:

  • החל את הפריסה: kubectl apply -f deployment.yaml.
  • וודא את הפריסה: kubectl get deployments.

5. גישה לאפליקציה

חשיפת האפליקציה:

  • צור שירות כדי לחשוף את האפליקציה.
  • service.yaml לדוגמה:
    apiVersion: v1
    kind: Service
    metadata:
    name: my-node-app-service
    spec:
    type: NodePort
    selector:
    app: my-node-app
    ports:
    - protocol: TCP
    port: 80
    nodePort: 30007
  • החל את השירות: kubectl apply -f service.yaml.

סוגי שירותים:

  • ClusterIP: ברירת מחדל, תקשורת פנימית.
  • NodePort: חושף את האפליקציה מחוץ ל-cluster על ידי הוספת פורט בכל צומת.
  • LoadBalancer: משתלב עם מאזני עומס מבוססי ענן.

6. הרחבה ועדכון האפליקציה

הרחבת האפליקציה:

  • עדכן את replicas ב-deployment.yaml והחל את השינויים.

עדכון האפליקציה:

  • שנה את קוד היישום, בנה מחדש את תמונת Docker, העלה אותה ועדכן את התמונה בקובץ הפריסה. Kubernetes יבצע עדכון מתגלגל.

7. ניקוי

מחיקת משאבים:

  • מחק את הפריסה: kubectl delete deployment my-node-app.
  • מחק את השירות: kubectl delete service my-node-app-service.