Yandex Cloud
Search
Contact UsTry it for free
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
  • Marketplace
    • Featured
    • Infrastructure & Network
    • Data Platform
    • AI for business
    • Security
    • DevOps tools
    • Serverless
    • Monitoring & Resources
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
    • Price calculator
    • Pricing plans
  • Customer Stories
  • Documentation
  • Blog
© 2026 Direct Cursus Technology L.L.C.
Yandex Managed Service for Kubernetes
  • Comparing with other Yandex Cloud services
  • Getting started
    • All guides
    • Connecting to a node over SSH
    • Connecting to a node via OS Login
    • Updating Kubernetes
    • Configuring autoscaling
    • Activating a Kubernetes Terraform provider
    • Installing applications from Yandex Cloud Marketplace using Terraform
      • Getting started with Cloud Marketplace
      • Installing Bitrix
      • Installing Argo CD
      • Installing Chaos Mesh
      • Installing cert-manager with the Cloud DNS ACME webhook plugin
      • Installing Container Storage Interface for S3
      • Installing Crossplane
      • Installing External Secrets Operator
      • Installing ExternalDNS with a plugin for Cloud DNS
      • Installing Falco
      • Installing Filebeat OSS
      • Installing Fluent Bit
      • Installing Gatekeeper
      • Installing Gateway API
      • Installing the GitLab agent
      • Installing GitLab Runner
      • Installing Gwin
      • Installing HashiCorp Vault
      • Installing Ingress NGINX
      • Installing an Application Load Balancer ingress controller
      • Upgrading the Application Load Balancer Ingress controller
      • Installing Istio
      • Installing Jaeger
      • Installing KEDA
      • Installing Kruise
      • Installing Kubernetes Node Remediation
      • Installing Kyverno & Kyverno Policies
      • Installing Loki
      • Installing Metrics Provider
      • Installing NodeLocal DNS
      • Installing OIDC Authentication
      • Installing Policy Reporter
      • Installing Prometheus Operator
      • Installing Thumbor
      • Installing Velero
      • Installing VictoriaLogs
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • Getting started
  • Installation from Yandex Cloud Marketplace
  • Installation using a Helm chart
  1. Step-by-step guides
  2. Installing applications from Cloud Marketplace
  3. Installing NodeLocal DNS

Installing NodeLocal DNS

Written by
Yandex Cloud
Improved by
Dmitry A.
Updated at January 26, 2026
  • Getting started
  • Installation from Yandex Cloud Marketplace
  • Installation using a Helm chart

NodeLocal DNS reduces the load from DNS queries by running a caching agent on every node in a Managed Service for Kubernetes cluster. This improves the Managed Service for Kubernetes cluster performance and fault tolerance.

Getting startedGetting started

Make sure the security groups for the Managed Service for Kubernetes cluster and its node groups are configured correctly. If a rule is missing, add it.

Warning

The configuration of security groups determines performance and availability of the cluster and the services and applications running in it.

Installation from Yandex Cloud MarketplaceInstallation from Yandex Cloud Marketplace

  1. Navigate to the folder dashboard and select Managed Service for Kubernetes.
  2. Click the name of the Managed Service for Kubernetes cluster you need and select the Marketplace tab.
  3. Under Application available for installation, select NodeLocal DNS and click Go to install.
  4. Configure the application:
    • Namespace: Select the kube-system namespace.

      Warning

      The application works correctly only with the kube-system namespace.

    • Application name: Specify the name for the application to deploy in the Managed Service for Kubernetes cluster.

    • Internal IP address of the kube-dns service: Address for accessing NodeLocal DNSCache. Queries from application pods to the address in the field are translated to local DNS via iptables rules.

      The field contains the ClusterIP address of kube-dns in the kube-system namespace. You can get the value of the field using this command:

      kubectl get svc kube-dns -n kube-system -o jsonpath={.spec.clusterIP}
      

      Since Yandex Cloud adds kube-dns when creating a cluster, its IP address is pre-defined. Therefore, you cannot change it in the kube-dns internal IP address field.

    • Work with Cilium: Select this option if a cluster uses the Cilium network policy controller.

  5. Click Install.
  6. Wait for the application to change its status to Deployed.

Once installed, NodeLocal DNS uses the following values:

  • Managed Service for Kubernetes cluster zone: cluster.local
  • NodeLocal DNS cache address: 169.254.20.10
  • Application port for external queries: 53
  • Port for collecting metrics in Prometheus format: 9253

Installation using a Helm chartInstallation using a Helm chart

  1. Install Helm v3.8.0 or higher.

  2. Install kubect and configure it to work with the new cluster.

  3. Get an address to access NodeLocal DNS Cache. You will need this address to install the Helm chart:

    kubectl get svc kube-dns -n kube-system -o jsonpath={.spec.clusterIP}
    

    The command contains the ClusterIP address of kube-dns in the kube-system namespace. kube-dns is installed automatically when creating a cluster, so its IP address is pre-defined.

    Queries from application pods to this address are translated to local DNS via iptables rules.

  4. To install a Helm chart with NodeLocal DNS, run this command:

    helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/node-local-dns \
      --version 1.5.1 \
      --untar && \
    helm install \
      --set config.cilium=false \
      --set config.clusterIp="<kube-dns_IP_address>" \
      --namespace kube-system \
      node-local-dns ./node-local-dns/
    

    Warning

    The application works correctly only with the kube-system namespace.

    Note

    If you are using a Helm version below 3.8.0, add the export HELM_EXPERIMENTAL_OCI=1 && \ string at the beginning of the command to enable Open Container Initiative (OCI) support in the Helm client.

Learn more about setting up local DNS caching in Setting up NodeLocal DNS Cache.

Was the article helpful?

Previous
Installing Metrics Provider
Next
Installing OIDC Authentication
© 2026 Direct Cursus Technology L.L.C.