Service Directory ל-Google Kubernetes Engine (GKE) מספק תצוגה יחידה של כל השירותים בכל הפריסות של GKE ומחוצה להן. אפשר להוסיף סוגים שונים של שירותי GKE, להוסיף להם הערות ואז לראות את השירותים האלה בספריית השירותים.
אלה התכונות של Service Directory for GKE:
- הוא מאפשר לכם לגלות שירותים באמצעות gRPC ו-HTTP, ולפענח שירותים באמצעות אזורי DNS של Service Directory. השילוב של Service Directory ו-Cloud DNS מאפשר לכם להגדיר אזור DNS של Service Directory.
- Service Directory רושם שירותים מחוץ ל-GKE, ומאפשר לשירותי GKE ולשירותים אחרים לגלות אחד את השני בקלות.
- ב-Service Directory נאכפות הרשאות IAM ובדיקות של VPC Service Controls כדי להבטיח אבטחה ופרטיות נאותות של נתוני הלקוחות.
- אפשר להגדיר את Service Directory ל-GKE עם אשכולות GKE במצב Autopilot או עם אשכולות GKE רגילים. מידע על שני המצבים זמין במאמר בחירה של מצב פעולה ב-GKE.
במאמר הגדרת Service Directory ל-GKE מוסבר איך להגדיר את Service Directory כך ששירותי GKE יירשמו בו באופן אוטומטי.
מיפוי שירותים
כשרושמים שירות ב-Service Directory, נוצר שירות בפרויקט Google Cloud fleet באמצעות השם של מרחב השמות של Kubernetes והאזור של אשכול GKE. בטבלה הבאה מתואר המיפוי של המאפיינים בשירות GKE למאפיינים בשירות שנוצר בספריית השירותים עבור כל סוגי השירותים של GKE.
נכסים ברמה העליונה
| מאפיין Service Directory | נכס GKE |
| פרויקט | פרויקט Fleet |
| אזור | האזור של האשכול |
| מרחב שמות | מרחב שמות Kubernetes |
סוג שירות אחד (LoadBalancer)
בדוגמה הבאה מוצג מיפוי של שירות GKE LoadBalancer ל-Service Directory. שירות Service Directory קיים במרחב שמות עם אותו שם כמו מרחב השמות של Kubernetes בפרויקט ה-Fleet ובאזור של אשכול GKE.
| מאפיין Service Directory | נכס GKE |
| שם השירות | שם השירות |
| השם של נקודת הקצה | נוצר באופן אוטומטי על ידי Service Directory Controller |
| כתובת ה-IP של נקודת הקצה | תעבורת נתונים נכנסת (ingress) מסוג LoadBalancer |
| יציאה של נקודת קצה | יציאת שירות מאזן העומסים |
| רשת נקודות קצה | רשת ה-VPC של האשכול |
הדוגמה הבאה היא של שירות LoadBalancer ב-GKE:
apiVersion: v1 kind: Service metadata: name: hello-app annotations: cloud.google.com/load-balancer-type: "Internal" labels: app: hello-app sd-import: "true" spec: ports: - port: 80 targetPort: 8080 protocol: TCP selector: app: hello-app type: LoadBalancer status: loadBalancer: ingress: - ip: 10.140.0.5
הדוגמה הבאה היא של שירות בספריית השירותים:
service: endpoints: - address: 10.140.0.5 metadata: cloud.google.com/load-balancer-type: "Internal" name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345 port: 80 network: projects/my-project/locations/global/networks/default name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
סוג שירות אחד (NodePort)
בדוגמה הבאה אפשר לראות איך שירות NodePort של GKE ממופה ל-Service Directory. שירות Service Directory קיים במרחב שמות עם אותו שם כמו מרחב השמות של Kubernetes בפרויקט של ה-hub והאזור של אשכול GKE.
| מאפיין Service Directory | נכס GKE |
| שם השירות | שם השירות |
| השם של נקודת הקצה | נוצר באופן אוטומטי על ידי Service Directory Controller |
| כתובת ה-IP של נקודת הקצה | כתובת ה-IP הפנימית של הצומת לכל צומת שמריץ פוד בשביל השירות |
| יציאה של נקודת קצה | יציאת צומת סטטית |
| רשת נקודות קצה | רשת ה-VPC של האשכול |
הדוגמה הבאה היא של שירות NodePort ב-GKE:
apiVersion: v1 kind: Service metadata: name: hello-app annotations: key1: "value1" spec: ports: - nodePort: 30007 port: 80 targetPort: 8080 protocol: TCP selector: app: hello-app type: NodePort
דוגמה לצמתים של GKE:
apiVersion: v1 items: - apiVersion: v1 kind: Node metadata: name: gke-hello-cluster-default-pool-a40cbab6-d2rr status: addresses: - address: 10.142.0.27 type: InternalIP - address: 34.73.248.170 - apiVersion: v1 kind: Node metadata: name: gke-hello-cluster-default-pool-a40cbab6-kb38 status: addresses: - address: 10.142.0.29 type: InternalIP - address: 35.196.219.215 type: ExternalIP - apiVersion: v1 kind: Node metadata: name: gke-hello-cluster-default-pool-a40cbab6-x34q status: addresses: - address: 10.142.0.28 type: InternalIP - address: 34.75.202.26 type: ExternalIP
הדוגמה הבאה היא של שירות בספריית השירותים:
service: endpoints: - address: 10.142.0.27 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345 port: 30007 network: projects/my-project/locations/global/networks/default - address: 10.142.0.28 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-23456 port: 30007 network: projects/my-project/locations/global/networks/default - address: 10.142.0.29 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-34567 port: 30007 network: projects/my-project/locations/global/networks/default name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
שירות ClusterIP
בדוגמה הבאה מוצג מיפוי של שירות GKE ClusterIP ל-Service Directory. שירות Service Directory קיים במרחב שמות עם אותו שם כמו מרחב השמות של Kubernetes בפרויקט ה-Fleet ובאזור של אשכול GKE.
| מאפיין Service Directory | נכס GKE |
| שם השירות | שם השירות |
| השם של נקודת הקצה | נוצר באופן אוטומטי על ידי Service Directory Controller |
| כתובת ה-IP של נקודת הקצה | ClusterIP |
| יציאה של נקודת קצה | יציאת שירות |
| רשת נקודות קצה | רשת ה-VPC של האשכול |
הנה דוגמה לשירות GKE ClusterIP:
apiVersion: v1 kind: Service metadata: name: hello-app annotations: key1: "value1" labels: app: hello-app sd-import: "true" spec: clusterIP: 10.15.254.17 ports: - port: 80 targetPort: 8080 protocol: TCP selector: app: hello-app type: ClusterIP
הדוגמה הבאה היא של שירות בספריית השירותים:
service: endpoints: - address: 10.15.254.17 metadata: key1: value1 name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app/endpoints/gke-hello-cluster-12345 port: 80 network: projects/my-project/locations/global/networks/default name: projects/my-project/locations/us-central1/namespaces/default/services/hello-app
המאמרים הבאים
- במאמר סקירה כללית על Service Directory תוכלו לקרוא סקירה כללית על השירות.
- כדי למצוא פתרונות לבעיות נפוצות שאולי תיתקלו בהן כשאתם משתמשים ב-Service Directory, אפשר לעיין במאמר פתרון בעיות.