This documentation is for the Latest version of Cloud Run for Anthos, which uses Anthos fleets and Anthos Service Mesh. Learn more.

The past version has been archived but the documentation remains available for existing users.

Using test domains

Learn how to access the Cloud Run for Anthos services in your cluster for testing purposes before you choose to map a custom domain.

By default, the services that you deploy to your Cloud Run for Anthos clusters are set to the nip.io base domain. Therefore, you can immediately test your services and send requests without additional configuration. For example: http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.nip.io.

Note that there can be issues around the reliability of requests when using DNS wildcards, including the nip.io domain, which is a free DNS wildcard service. In contrast, setting up and using a custom domain for testing can offer increased reliability.

Optionally, you can also access your services through the external IP address.

Using the nip.io test domain

To access a service using the default nip.io base domain, you can locate the URL from within the Google Cloud Console or you can construct the URL manually.

Console

  1. In the Cloud Console, go to the Cloud Run for Anthos page.

    Go to Cloud Run for Anthos

  2. In the list, click the service for which you want to obtain the URL.

  3. Near the top of the page the URL is displayed.

    For example: http://my-service.default.kuberun.11.111.11.111.nip.io

    service URL

    Where my-service is the name of the Cloud Run for Anthos service, default is the namespace, and 11.111.11.111 is the IP address of your external load balancer.

Manually

To manually construct the URL to your service, you use the name of the service, the namespace in which that service is running, and the IP address of your load balancer:

http://SERVICE.NAMESPACE.kuberun.EXTERNAL_IP.nip.io

Replace:

  • SERVICE_NAME with the name of your service.
  • NAMESPACE with the namespace where you deployed the service. By default, services are deployed to the default namespace.
  • EXTERNAL_IP with the external IP address of your load balancer.

For example, if you have a service named hello in the default namespace and your external IP address is 12.345.67.890, the URL might look like:

http://hello.default.kuberun.12.345.67.890.nip.io

Using the external IP address

Optionally, you can use the external IP address of your load balancer to access your services through cURL commands or by manually configuring an alternative DNS wildcard service.

Before you begin

Getting the external IP address

When your Anthos cluster is created, the Istio ingress controller creates a Google Cloud Network Load Balancer with a publicly available IP address.

To configure access to your service with cURL or a DNS service, you must first obtain the external IP address of the load balancer service:

Console

To get the load balancer's external IP address from the Google Cloud Console:
  1. Go to the GKE page in the Cloud Console:
    Go to GKE
  2. Click Services and ingress.
  3. Identify the service that is your cluster's Istio ingress. The service's Type will be External load balancer, and the Name will be istio-ingressgateway.
  4. Once you've found your cluster's Istio ingress service, copy its Endpoint. This will be the IP address without the port number. For example, you might see 00.000.000.000:11 listed as an endpoint, but you only need to copy 00.000.000.000.

kubectl

To obtain the external IP for the Load Balancer, run the following command:

kubectl get svc istio-ingressgateway -n ASM-INGRESS-NAMESPACE

Replace ASM-INGRESS-NAMESPACE with the namespace where your Anthos Service Mesh ingress is located. Specify istio-system if you installed Anthos Service Mesh using its default configuration.

The resulting output looks similar to the following:

NAME                   TYPE           CLUSTER-IP     EXTERNAL-IP  PORT(S)
istio-ingressgateway   LoadBalancer   XX.XX.XXX.XX   pending      80:32380/TCP,443:32390/TCP,32400:32400/TCP

where the EXTERNAL-IP value is your external IP address of the Load Balancer.

After obtaining the external IP address of your load balancer, you can use it to in cURL commands or with a DNS wildcard service to access your Cloud Run for Anthos services.

Using cURL

You can use cURL commands with the default nip.io base domain to send requests to your service.

You specify the external IP address of your load balancer along with the names of your service and namespace in the cURL command:

curl --header 'Host: SERVICE_NAME.NAMESPACE.kuberun.EXTERNAL_IP.nip.io' EXTERNAL_IP

Replace:

  • SERVICE_NAME with the name of your Cloud Run for Anthos service.
  • NAMESPACE with the namespace in which your service is running.
  • EXTERNAL_IP with the external IP address of your load balancer.

Example:

curl --header 'Host: my-service.default.kuberun.12.345.67.890.nip.io' http://12.345.67.890

Using other DNS wildcard services

By default, your Cloud Run for Anthos services use the nip.io DNS wildcard service. However, you can choose to use other services like sslip.io. To configure other DNS wildcard services you must first obtain the external IP address of your load balancer and then use that IP address to configure the DNS wildcard service.

Configuring your cluster's domain

Cloud Run for Anthos uses the config-domain ConfigMap to define the base domain for which all your deployed Cloud Run for Anthos services use. You can update that ConfigMap through the Google Cloud Console or with kubectl commands.

Console

To change the default base domain from nip.io to one of the DNS wildcard services in the Cloud Console:

  1. Go to the Cloud Run for Anthos Domain mappings page in the Cloud Console:

    Go to Domain mappings

  2. Select Add mapping > Add cluster default domain

  3. Select the checkbox next to "Apply this domain mapping to all Cloud Run for Anthos services deployed to this cluster."

  4. Select your cluster from the drop-down menu.

  5. In the Domain field, enter the wildcard DNS site you want to use. For example: sslip.io

kubectl

To change the default base domain from nip.io to one of the DNS wildcard sites, use the command:

kubectl patch configmap config-domain --namespace knative-serving --patch \
  '{"data": {"kuberun.EXTERNAL_IP.nip.io": null, "DNS_SERVICE": ""}}'

Replace

  • EXTERNAL_IP with the Load Balancer external IP address.
  • DNS_SERVICE with the wildcard DNS site you are using. For example: sslip.io

Your service is now available at http://{SERVICE_NAME}.{NAMESPACE}.kuberun.{EXTERNAL_IP}.{DNS_SERVICE}.