本頁面將逐步說明如何在 Google Distributed Cloud (GDC) 氣隙環境中,為新網域設定 DNS 解析。在 GDC 中使用 DNS 區域。
本頁面適用於負責管理機構 DNS 解析的平台管理員和應用程式運算子。
您可以在 GDC 環境中建立公開或私人的 DNS 區域,以符合服務的瀏覽權限和存取權需求:
如要讓服務可見於外部網路並供外部存取:請設定公開 DNS 區域,允許網路外部的使用者和系統存取您的服務。如果您有網站、面向大眾的 API,或任何需要從 GDC Cloud 環境外部連線的服務,您需要公開 DNS 區域,將網域名稱對應至適當的 IP 位址。
需要安全且受限制地存取內部系統的服務:設定私人 DNS 區域,隱藏內部網域名稱並限制內部服務的存取權。如果您有內部應用程式、資料庫或微服務,需要僅使用安全通訊協定和私人 IP 位址與其他內部服務通訊,則需要私人 DNS 區域,將網域名稱對應至適當的 IP 位址。私人 DNS 區域可確保這些服務能使用內部網域名稱互相尋找,而不會向外部網路公開其存在或 IP 位址。這項功能可提升安全性,並簡化內部網路。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-04 (世界標準時間)。"],[],[],null,["# Create DNS zones\n\n| **Preview:** This is a Preview feature that is available as-is and is not recommended for production environments. Google provides no Service-Level agreements (SLA) or technical support commitments for Preview features. For more information, see GDC's [feature stages](/distributed-cloud/hosted/docs/latest/gdch/resources/feature-stages).\n\nThis page guides you through how to configure DNS resolution for a new domain in Google Distributed Cloud (GDC) air-gapped.\nIn GDC through the use of DNS zones.\n\nThe intended audience for this page is platform administrators and application operators\nresponsible for managing DNS resolution for their organization.\n\nYou can create public or private DNS zones in your GDC environment to match the visibility and access requirements of your services:\n\n- **For services that require external network visibility and access:** Set up a public DNS zone to allow users and systems outside your network access to your service. If you have a website, a public-facing API, or any service that needs to be reachable from outside your GDC Cloud environment, you need a public DNS zone to map your domain name to the appropriate IP addresses.\n- **For services that require secure and restricted access to internal\n systems:** Set up a private DNS zone to hide your internal domain name and restrict access to your internal services. If you have an internal application, database, or microservice that needs to communicate with other internal services using only secure protocols and private IP addresses, you need a private DNS zone to map your domain name to the appropriate IP addresses A private DNS zone ensures that these services can find each other using internal domain names without exposing their existence or IP addresses to the external network. This enhances security and simplifies internal networking.\n\nFor more information about the difference between public and private DNS zones, see [Zone types for Cloud DNS](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/dns/dns-overview#zone-types).\n\nBefore you begin\n----------------\n\nTo configure DNS zones in GDC and add records, you must\nhave the following:\n\n- An existing project. For more information, see [Create a\n project](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/create-a-project).\n- The necessary identity and access roles. For more information, see [Prepare IAM permissions](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/dns/dns-permissions).\n\nCreate a public DNS zone\n------------------------\n\nUse the Kubernetes API in GDC to create a public DNS zone:\n\n1. Create and apply a `ManagedDNSZone` resource to create a DNS zone\n accessible from outside of GDC:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eGLOBAL_API_SERVER\u003c/var\u003e apply -f - \u003c\u003cEOF\n apiVersion: networking.global.gdc.goog/v1\n kind: ManagedDNSZone\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDNS_ZONE_NAME\u003c/span\u003e\u003c/var\u003e\n namespace: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePROJECT_NAMESPACE\u003c/span\u003e\u003c/var\u003e\n spec:\n dnsName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDOMAIN_NAME\u003c/span\u003e\u003c/var\u003e\n description: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDESCRIPTION\u003c/span\u003e\u003c/var\u003e\n visibility: PUBLIC\n EOF\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eGLOBAL_API_SERVER\u003c/var\u003e: the global API server's kubeconfig path. For more information, see [Global and zonal API servers](/distributed-cloud/hosted/docs/latest/gdch/resources/multi-zone/api-servers). If you have not yet generated a kubeconfig file for the API server, see [Sign in](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/iam/sign-in) for details.\n - \u003cvar translate=\"no\"\u003eDNS_ZONE_NAME\u003c/var\u003e: the name of your DNS zone.\n - \u003cvar translate=\"no\"\u003ePROJECT_NAMESPACE\u003c/var\u003e: the namespace of your project.\n - \u003cvar translate=\"no\"\u003eDOMAIN_NAME\u003c/var\u003e: the domain name for your public DNS zone, such as `example.com`.\n - \u003cvar translate=\"no\"\u003eDESCRIPTION\u003c/var\u003e: a description for your DNS zone. For example, `Public DNS zone for example.com`. This field is optional.\n2. For a public DNS zone, you must configure the DNS resolver in your network to forward\n DNS requests for that DNS zone to the name servers in GDC that host that\n DNS zone. The name servers are listed in the status of a `ManagedDNSZone` custom resource:\n\n apiVersion: networking.global.gdc.goog/v1\n kind: ManagedDNSZone\n metadata:\n name: public-example-com\n namespace: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePROJECT_NAMESPACE\u003c/span\u003e\u003c/var\u003e\n spec:\n dnsName: example.com\n description: \"Public DNS zone for example.com\"\n visibility: PUBLIC\n status:\n ...\n nameServers:\n - ns.managed-dns-public.gdc1.staging.gpcdemolabs.com\n\n For this example, the DNS resolver needs to be updated to forward\n requests for `example.com` to\n `ns.managed-dns-public.gdc1.staging.gpcdemolabs.com`. This configuration assumes that the resolver already has the configuration needed to appropriately forward DNS requests for GDC's infrastructure DNS zone `gdc1.staging.gpcdemolabs.com`.\n\nCreate a private DNS zone\n-------------------------\n\nUse the Kubernetes API to create a private DNS zone:\n\n- Create and apply a `ManagedDNSZone` resource to create a DNS zone\n accessible only from within the default customer VPC:\n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eGLOBAL_API_SERVER\u003c/var\u003e apply -f - \u003c\u003cEOF\n apiVersion: networking.global.gdc.goog/v1\n kind: ManagedDNSZone\n metadata:\n name: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDNS_ZONE_NAME\u003c/span\u003e\u003c/var\u003e\n namespace: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003ePROJECT_NAMESPACE\u003c/span\u003e\u003c/var\u003e\n spec:\n dnsName: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDOMAIN_NAME\u003c/span\u003e\u003c/var\u003e\n description: \u003cvar translate=\"no\"\u003e\u003cspan class=\"devsite-syntax-l devsite-syntax-l-Scalar devsite-syntax-l-Scalar-Plain\"\u003eDESCRIPTION\u003c/span\u003e\u003c/var\u003e\n visibility: PRIVATE\n EOF\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eGLOBAL_API_SERVER\u003c/var\u003e: the global API server's kubeconfig path. For more information, see [Global and zonal API servers](/distributed-cloud/hosted/docs/latest/gdch/resources/multi-zone/api-servers). If you have not yet generated a kubeconfig file for the API server, see [Sign in](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/iam/sign-in) for details.\n - \u003cvar translate=\"no\"\u003eDNS_ZONE_NAME\u003c/var\u003e: the name of your DNS zone.\n - \u003cvar translate=\"no\"\u003ePROJECT_NAMESPACE\u003c/var\u003e: the namespace of your project.\n - \u003cvar translate=\"no\"\u003eDOMAIN_NAME\u003c/var\u003e: the domain name for your private DNS zone, such as `example.com`.\n - \u003cvar translate=\"no\"\u003eDESCRIPTION\u003c/var\u003e: a description for your DNS zone. For example, `Private DNS zone for example.com`. This field is optional.\n\nWhat's next\n-----------\n\n- [Create a DNS record](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/dns/create-dns-records)"]]