יסודות
1. מבוא לאובייקטי Kubernetes
אובייקטי Kubernetes הם ישויות מתמשכות במערכת Kubernetes. הם מייצגים את מצב ה-cluster והיישומים הפועלים עליו. הבנת אובייקטים אלה היא המפתח לעבודה יעילה עם Kubernetes.
2. הבנת YAML ב-Kubernetes
- מהו YAML?: YAML, שהוא ראשי תיבות של "YAML Ain't Markup Language", הוא תקן סידורי נתונים קריא על ידי בני אדם, שניתן להשתמש בו בשילוב עם כל שפות התכנות, והוא משמש לעתים קרובות לכתיבת קבצי תצורה.
- YAML ב-Kubernetes: Kubernetes משתמש ב-YAML כפורמט להגדרת התצורה של אובייקטים בתוך ה-cluster. הוא מועדף בשל הקריאות והקלות לשימוש שלו.
3. Pods
- הגדרה: יחידות הפריסה הקטנות ביותר שנוצרו ומנוהלות על ידי Kubernetes.
- דוגמה ל-YAML:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
4. פריסות ו-ReplicaSets
- הגדרה: פריסות מנהלות את היצירה וההרחבה של ReplicaSets.
- דוגמה ל-YAML:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: nginx-container
image: nginx
5. שירותים
- הגדרה: לחשוף יישום שפועל על סט של Pods כשירות רשת.
- דוגמה ל-YAML:
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 9376
6. Ingress
- הגדרה: מנהל גישה חיצונית לשירותים ב-cluster.
- דוגמה ל-YAML:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: www.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: my-service
port:
number: 80
7. כרכים
- הגדרה: ספרייה המכילה נתונים, נגישה למיכלים ב-Pod.
- דוגמה ל-YAML:
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: nginx
volumeMounts:
- mountPath: /usr/share/nginx/html
name: my-volume
volumes:
- name: my-volume
hostPath:
path: /data
type: Directory
8. מרחבי שמות
- הגדרה: clusterות וירטואליים נתמכים על ידי אותו cluster פיזי.
- דוגמה ל-YAML:
apiVersion: v1
kind: Namespace
metadata:
name: my-namespace