הגדרת דומיינים מותאמים אישית ל-Cloud Workstations

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

ארכיטקטורה

כדי להשתמש ב-Cloud Workstations עם שם מארח בהתאמה אישית, צריך להגדיר אשכול פרטי ולהגדיר את נקודת הקצה (endpoint) של Private Service Connect ‏(PSC) לכניסת HTTP לאשכול הפרטי. צריך גם ליצור מאזן עומסים של אפליקציות עם קצה עורפי מסוג PSC שמכוון לנקודת הקצה של ה-PSC שנוצרה עבור האשכול הפרטי. מאזן העומסים של האפליקציות יכול להיות חיצוני או פנימי, והוא מנהל את אישור ה-SSL של הדומיין המותאם אישית.

התרשים הבא מדגים אשכול עם דומיין בהתאמה אישית:

איור 1. אשכול עם דומיין מותאם אישית

לפני שמתחילים

כדי להגדיר דומיין מותאם אישית ב-Cloud Workstations, פועלים לפי השלבים הבאים:

  1. יוצרים אשכול פרטי ומציינים דומיין מותאם אישית מהימן באמצעות פקודות של gcloud CLI או API בארכיטקטורת REST.

  2. יוצרים מאזן עומסים של אפליקציות (ALB) חיצוני גלובלי עם בק-אנד של Private Service Connect ‏(PSC) באותו פרויקט שבו השתמשתם עבור פרויקט אשכול תחנות העבודה. שימו לב לנקודות הבאות:

    1. אם רוצים שהתחנות יהיו פרטיות (לא ניתן לגשת אליהן דרך האינטרנט הציבורי), צריך ליצור מאזן עומסים פנימי. כדי לעשות זאת, יוצרים אזור DNS פרטי ומוסיפים רשומה שממפה את הדומיין לכתובת ה-IP הפנימית שמשמשת את מאזן העומסים. מידע נוסף על יצירת מאזן עומסים פנימי זמין במאמר בנושא ענן וירטואלי פרטי (VPC).

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

    3. חשוב לוודא שקיבלתם תעודה וציינתם אותה במאזן העומסים כתעודת wildcard לדומיין שלכם – לדוגמה, *.us-west1-cluster1.example.com. במאמר בנושא אישורים ומאזני עומסים מפורטים סוגי האישורים שנתמכים במאזן העומסים שבחרתם. Google Cloud

    4. אפשר גם ליצור את מאזן העומסים בפרויקט אחר, בתנאי שמוסיפים אותו לרשימה PrivateClusterConfig.allowedProjects.

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

  3. הגדרת מערכת שמות דומיין (DNS). מכיוון שזה דומיין שאתם מנהלים, צריך להגדיר DNS לדומיין הזה על ידי מיפוי כל תתי-הדומיינים של הדומיין שצוין למאזן העומסים. לדוגמה, יוצרים תחום DNS בשביל us-west1-cluster1.example.com ומוסיפים רשומה שממפה את *.us-west1-cluster1.example.com לכתובת ה-IP החיצונית שמשמשת את מאזן העומסים.

  4. כדי לגשת לתחנות עבודה באמצעות הדומיין המותאם אישית, משתמשים באשכול שיצרתם כדי ליצור הגדרה של תחנת עבודה, ואז יוצרים תחנת עבודה באמצעות ההגדרה הזו.

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

    https://PORT-WORKSTATION_NAME.DOMAIN
    

    החלקים הבאים בכתובת ה-URL תלויים בהגדרות שלכם:

    • PORT: מספר היציאה, שהוא יציאה 80 כברירת מחדל.
    • WORKSTATION_NAME: השם של תחנת העבודה.
    • DOMAIN: שם הדומיין הספציפי לאשכול

יצירת אשכול פרטי

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

gcloud

  1. לפני שמתחילים, חשוב לוודא שאתחלתם את ה-CLI של gcloud על ידי הרצת הפקודה gcloud init וציינתם פרויקט שמוגדר כברירת מחדל. בדוגמאות הבאות אנחנו מניחים שהגדרתם את פרויקט ברירת המחדל.

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

    gcloud workstations clusters create WORKSTATION_CLUSTER \
      --region=REGION \
      --domain=DOMAIN \
      --network=NETWORK \
      --subnetwork=SUBNETWORK \
      --enable-private-endpoint
    

    מחליפים את מה שכתוב בשדות הבאים:

    • WORKSTATION_CLUSTER: השם של אשכול תחנות העבודה שרוצים ליצור.
    • REGION: שם האזור של האשכול.
    • DOMAIN: שם הדומיין שמשמש את Cloud Workstations לכניסת HTTP. משתמשים בתת-דומיין ייחודי לאשכול הזה, לדוגמה us-west1-cluster1.example.com.
    • NETWORK: השם של רשת ה-VPC. אם לא מציינים רשת VPC, המערכת משתמשת ב-VPC שמוגדר כברירת מחדל.
    • SUBNETOWRK: השם של רשת המשנה ברשת ה-VPC. אם לא מציינים רשת ולא מציינים רשת משנה, המערכת משתמשת ב-VPC שמוגדר כברירת מחדל וברשת המשנה שמוגדרת כברירת מחדל באזור שצוין.

מידע נוסף על הפקודה gcloud ב-CLI זמין במאמרי העזרה בנושא gcloud workstations clusters create.

curl

curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"  -d '{"domain_config": {"domain": "DOMAIN"}, "private_cluster_config": {"enable_private_endpoint":true}, "network": "NETWORK", "subnetwork": "SUBNETWORK"}'  https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstation_cluster_id=WORKSTATION_CLUSTER

מחליפים את מה שכתוב בשדות הבאים:

  • DOMAIN: שם הדומיין שמשמש את Cloud Workstations לכניסת HTTP. זה צריך להיות תת-דומיין ייחודי לאשכול הזה, לדוגמה, us-west1-cluster1.example.com.
  • NETWORK: השם של רשת ה-VPC. אם לא מציינים רשת VPC, המערכת משתמשת ב-VPC שמוגדר כברירת מחדל.
  • SUBNETOWRK: השם של רשת המשנה ברשת ה-VPC. אם לא מציינים רשת ולא מציינים רשת משנה, המערכת משתמשת ב-VPC שמוגדר כברירת מחדל וברשת המשנה שמוגדרת כברירת מחדל באזור שצוין.
  • PROJECT_NAME: שם הפרויקט.
  • REGION: שם האזור של האשכול.
  • WORKSTATION_CLUSTER: השם של אשכול תחנות העבודה שרוצים ליצור.

מידע נוסף על שיטת ה-API הזו מופיע בworkstationClusters.create מאמרי העזרה.

REST

POST https://workstations.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION/workstationClusters?workstationClusterId=WORKSTATION_CLUSTER
{
  "domainConfig": {
    "domain": "DOMAIN"
  },
  "privateClusterConfig": {
    "enablePrivateEndpoint": true
  }
  "network": "NETWORK"
  "subnetwork": "SUBNETWORK"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_NAME: שם הפרויקט.
  • REGION: שם האזור של האשכול.
  • WORKSTATION_CLUSTER: השם של אשכול תחנות העבודה שרוצים ליצור.
  • DOMAIN: שם הדומיין שמשמש את Cloud Workstations לכניסת HTTP. זה צריך להיות תת-דומיין ייחודי לאשכול הזה, לדוגמה, us-west1-cluster1.example.com.
  • NETWORK: השם של רשת ה-VPC. אם לא מציינים רשת VPC, המערכת משתמשת ב-VPC שמוגדר כברירת מחדל.
  • SUBNETOWRK: השם של רשת המשנה ברשת ה-VPC. אם לא מציינים רשת ולא מציינים רשת משנה, המערכת משתמשת ב-VPC שמוגדר כברירת מחדל וברשת המשנה שמוגדרת כברירת מחדל באזור שצוין.

מידע נוסף על שיטת ה-API הזו מופיע בworkstationClusters.create מאמרי העזרה.

יצירת מאזן עומסים גלובלי חיצוני של אפליקציות (ALB) עם קצה עורפי מסוג PSC

כדי ליצור מאזן עומסים גלובלי-חיצוני של אפליקציות עם קצה עורפי מסוג PSC, פועלים לפי השלבים הבאים ל-CLI ול-REST API:gcloud

  1. יצירת NEG לחיבור לשירות שפורסם
  2. הוספת קצה עורפי למאזן עומסים גלובלי חיצוני של אפליקציות (ALB)
  3. יצירת מפת URL כדי להפנות בקשות נכנסות לשירות לקצה העורפי
  4. יצירת proxy ל-HTTPS עם יעד
  5. יצירת כתובת גלובלית
  6. יצירת כלל להעברה

יצירת NEG לחיבור לשירות שפורסם

כשיוצרים קבוצת נקודות קצה ברשת (NEG) שמפנה לשירות שפורסם, צריך את ה-URI של קובץ ה-Service Attachment של השירות. הפורמט של קובץ השירות הוא: projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME. אפשר למצוא את ה-URI במשאב של אשכול תחנות העבודה.

gcloud

gcloud compute network-endpoint-groups create NEG_NAME \
  --network-endpoint-type=private-service-connect \
  --psc-target-service=TARGET_SERVICE \
  --region=REGION \
  --subnet=SUBNET

מחליפים את מה שכתוב בשדות הבאים:

  • NEG_NAME: שם לקבוצת נקודות הקצה ברשת.
  • TARGET_SERVICE: ה-URI של קובץ השירות המצורף.
  • REGION: האזור שבו רוצים ליצור את קבוצת נקודות הקצה ברשת. האזור חייב להיות זהה לאזור של שירות היעד.
  • SUBNET: תת-הרשת שבה רוצים ליצור את קבוצת נקודות הקצה ברשת. רשת המשנה צריכה להיות באותו אזור כמו שירות היעד. אם מציינים רשת, צריך לציין גם רשת משנה. אם לא מציינים רשת וגם לא רשת משנה, המערכת משתמשת ברשת ברירת המחדל וברשת המשנה שמוגדרת כברירת מחדל ב-REGION שצוין.

מידע נוסף על הפקודה gcloud ב-CLI זמין במאמרי העזרה בנושא gcloud compute network-endpoint-groups create.

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/REGION/networkEndpointGroups
{
  "pscTargetService": "TARGET_SERVICE",
  "networkEndpointType": "PRIVATE_SERVICE_CONNECT",
  "name": "NEG_NAME"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_NAME: שם הפרויקט.
  • REGION: האזור שבו רוצים ליצור את קבוצת נקודות הקצה ברשת. האזור חייב להיות זהה לאזור של שירות היעד.
  • NEG_NAME: שם לקבוצת נקודות הקצה ברשת.
  • TARGET_SERVICE: ה-URI של קובץ השירות המצורף.

הוספת קצה עורפי למאזן עומסים גלובלי חיצוני של אפליקציות (ALB)

gcloud

  1. יוצרים שירות קצה עורפי לשירות היעד:

    gcloud compute backend-services create BACKEND_SERVICE_NAME \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTPS \
    --global
    

    מחליפים את BACKEND_SERVICE_NAME בשם של שירות לקצה העורפי.

  2. מוסיפים את ה-NEG של Private Service Connect שמפנה לשירות היעד.

    gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
    --network-endpoint-group=NEG_NAME \
    --network-endpoint-group-region=NEG_REGION \
    --global
    

    מחליפים את מה שכתוב בשדות הבאים:

    • BACKEND_SERVICE_NAME: השם של השירות לקצה העורפי.
    • NEG_NAME: השם של קבוצת נקודות הקצה ברשת.
    • NEG_REGION: האזור של קבוצת נקודות הקצה ברשת.

מידע נוסף על הפקודה gcloud ב-CLI זמין במאמרי העזרה בנושא gcloud compute backend-services create וgcloud compute backend-services add-backend.

REST

  1. יוצרים שירות קצה עורפי לשירות היעד:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices
    {
      "protocol": "HTTPS",
      "loadBalancingScheme": "EXTERNAL_MANAGED",
      "name": "BACKEND_SERVICE_NAME"
    }
    

    מחליפים את BACKEND_SERVICE_NAME בשם של שירות לקצה העורפי.

  2. מוסיפים את ה-NEG של Private Service Connect שמפנה לשירות היעד.

    PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME
    {
      "backends": [
        {
          "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/NEG_REGION/networkEndpointGroups/NEG_NAME "
        }
      ]
    }
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_NAME: שם הפרויקט.
    • BACKEND_SERVICE_NAME: השם של השירות לקצה העורפי.
    • NEG_REGION: האזור של קבוצת נקודות הקצה ברשת.
    • NEG_NAME: השם של קבוצת נקודות הקצה ברשת.

יצירת מפת URL לניתוב בקשות נכנסות לשירות הקצה העורפי

gcloud

gcloud compute url-maps create URL_MAP_NAME \
  --default-service=BACKEND_SERVICE_NAME \
  --global

מחליפים את מה שכתוב בשדות הבאים:

  • URL_MAP_NAME: השם של מפת ה-URL שרוצים ליצור.
  • BACKEND_SERVICE_NAME: השם של שירות ה-Backend שבו יש להשתמש לבקשות אם אין מיפויים במפת כתובות ה-URL הזו.

מידע נוסף על הפקודה gcloud ב-CLI זמין במאמרי העזרה בנושא gcloud compute url-maps create.

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps
{
  "name": "URL_MAP_NAME",
  "defaultService": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/backendServices/BACKEND_SERVICE_NAME "
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_NAME: שם הפרויקט.
  • URL_MAP_NAME: השם של מפת ה-URL שרוצים ליצור.
  • BACKEND_SERVICE_NAME: השם של שירות ה-Backend שבו יש להשתמש לבקשות אם אין מיפויים במפת כתובות ה-URL הזו.

יצירת שרת proxy של HTTPS ליעד

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

gcloud

gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
  --ssl-certificates=SSL_CERTIFICATE_NAME \
  --url-map=URL_MAP_NAME \
  --global

מחליפים את מה שכתוב בשדות הבאים:

  • TARGET_HTTPS_PROXY_NAME: השם של ה-proxy ל-HTTPS עם יעד שרוצים ליצור.
  • SSL_CERTIFICATE_NAME: אישור ה-SSL שמשויך למאזן העומסים.
  • URL_MAP_NAME: משאב מפת ה-URL.

מידע נוסף על הפקודה gcloud ב-CLI זמין במאמרי העזרה בנושא gcloud compute target-https-proxies create.

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies
{
  "sslCertificates": [
    "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/sslCertificates/SSL_CERTIFICATE_NAME"
  ],
  "urlMap": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/urlMaps/URL_MAP_NAME",
  "name": "TARGET_HTTPS_PROXY_NAME"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_NAME: שם הפרויקט.
  • SSL_CERTIFICATE_NAME: אישור ה-SSL שמשויך למאזן העומסים.
  • URL_MAP_NAME: משאב מפת ה-URL.
  • TARGET_HTTPS_PROXY_NAME: השם של ה-proxy ל-HTTPS עם יעד שרוצים ליצור.

יצירת כתובת גלובלית

שומרים כתובת IP סטטית לשימוש במאזן העומסים:

gcloud

gcloud compute addresses create LB_IP_ADDRESS_NAME \
  --global

מחליפים את מה שכתוב בשדות הבאים:

  • LB_IP_ADDRESS_NAME: השם של כתובת ה-IP החיצונית או הפנימית הסטטית השמורה של מאזן העומסים.

מידע נוסף על הפקודה gcloud ב-CLI זמין במאמרי העזרה בנושא gcloud compute addresses create.

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses
{
  "name": "LB_IP_ADDRESS_NAME"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_NAME: שם הפרויקט.
  • LB_IP_ADDRESS_NAME: השם של כתובת ה-IP החיצונית או הפנימית הסטטית השמורה של מאזן העומסים.

יצירת כלל העברה

יוצרים כלל העברה כדי לנתב בקשות נכנסות לשרת ה-proxy:

gcloud

gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
  --load-balancing-scheme=EXTERNAL_MANAGED \
  --network-tier=PREMIUM \
  --address=LB_IP_ADDRESS_NAME  \
  --target-https-proxy=TARGET_HTTPS_PROXY_NAME  \
  --global \
  --ports=443

מחליפים את מה שכתוב בשדות הבאים:

  • HTTPS_FORWARDING_RULE_NAME: השם של כלל ההעברה שרוצים ליצור.
  • LB_IP_ADDRESS_NAME: השם של כתובת ה-IP החיצונית או הפנימית הסטטית השמורה של מאזן העומסים.
  • TARGET_HTTPS_PROXY_NAME: שרת ה-proxy ל-HTTPS של היעד שמקבל את התנועה.

מידע נוסף על הפקודה gcloud ב-CLI זמין במאמרי העזרה בנושא gcloud compute forwarding-rules create.

REST

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/global/forwardingRules
{
  "loadBalancingScheme": "EXTERNAL_MANAGED",
  "networkTier": "PREMIUM",
  "IPAddress": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/addresses/LB_IP_ADDRESS_NAME",
  "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/global/targetHttpsProxies/TARGET_HTTPS_PROXY_NAME",
  "name": "HTTPS_FORWARDING_RULE_NAME",
  "portRange": "443-443"
}

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_NAME: שם הפרויקט.
  • LB_IP_ADDRESS_NAME: השם של כתובת ה-IP החיצונית או הפנימית הסטטית השמורה של מאזן העומסים.
  • TARGET_HTTPS_PROXY_NAME: שרת ה-proxy ל-HTTPS של היעד שמקבל את התנועה.
  • HTTPS_FORWARDING_RULE_NAME: השם של כלל ההעברה שרוצים ליצור.

הגדרת DNS

מגדירים DNS ומוסיפים רשומה שממפה את *.DOMAIN – לדוגמה, *.example.com – לכתובת ה-IP שהוזמנה בשלב הקודם. אם אתם משתמשים ב-Cloud DNS כדי לנהל את ה-DNS של הדומיין, אתם יכולים לעיין במאמר בנושא הוספת רשומת DNS.

יצירת הגדרות של תחנת עבודה ותחנת עבודה

כדי לגשת לתחנות עבודה באמצעות הדומיין המותאם אישית:

  1. משתמשים באשכול עם הדומיין המותאם אישית כדי ליצור הגדרה של תחנת עבודה.

  2. יוצרים תחנת עבודה באמצעות הגדרת תחנת העבודה עם הדומיין המותאם אישית.

המאמרים הבאים

מידע נוסף על הגדרת דומיינים בהתאמה אישית וקלאסטרים פרטיים זמין במאמרים הבאים: