To get started with the service discovery features described on this page, refer to the following tutorials:

- [Register your services to Consul](/consul/tutorials/get-started-vms/virtual-machine-gs-service-discovery) includes service queries on VMs
- [Ensure only healthy services are discoverable](/consul/tutorials/developer-discovery/service-registration-health-checks)
- [DNS caching](/consul/tutorials/networking/dns-caching)
- [Forward DNS for Consul service discovery](/consul/tutorials/networking/dns-forwarding)
- [Register external services with Consul service discovery](/consul/tutorials/developer-discovery/service-registration-external-services)
- [Integrate Consul with Ambassador Edge Stack on Kubernetes](/consul/tutorials/developer-mesh/service-mesh-gateway-ambassador)
- [Load Balancing with NGINX Plus' Service Discovery Integration](/consul/tutorials/load-balancing/load-balancing-nginx-plus)
- [Load Balancing with NGINX and Consul Template](/consul/tutorials/load-balancing/load-balancing-nginx)
- [Load Balancing with HAProxy Service Discovery Integration](/consul/tutorials/load-balancing/load-balancing-haproxy)
- [Load balancing with F5 and Consul](/consul/tutorials/load-balancing/load-balancing-f5)

## Runtime specific usage documentation

For runtime-specific guidance, refer to the following pages:

- [Consul service discovery on virtual machines](/consul/docs/discover/vm)
- [Consul service discovery on Kubernetes](/consul/docs/discover/k8s)

## Reference documentation

For reference material related to Consul's service discovery functions, refer to the following pages:

- [Consul DNS reference](/consul/docs/reference/dns)