• Home
  • Docker
  • Kubernetes
  • Java
  • Ubuntu
  • Maven
  • Big Data
  • CI
  • Install
  • Samples
  • Archived
Kubernetes | Kubernetes Cluster
  1. Notes
  2. Kubernetes Nodes
  3. Kubernetes DNS Service
  4. Kubernetes Proxy: kube proxy

  1. Notes
    Please visit these pages for more details about Kubernetes:
    https://kubernetes.io/docs/concepts/overview/components/
    https://kubernetes.io/docs/concepts/cluster-administration/
    https://kubernetes.io/docs/concepts/cluster-administration/proxies/
    https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/
    https://kubernetes.io/docs/tasks/debug/debug-cluster/

    To install Kubernetes using Docker Desktop (Windows - WSL 2): Install Docker Desktop (WSL 2) and Enable Kubernetes

    Amazon Elastic Kubernetes Service (EKS): https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html

    Microsoft Azure Kubernetes Service (AKS): https://learn.microsoft.com/en-us/azure/aks/

    Google Kubernetes Engine (GKE): https://cloud.google.com/kubernetes-engine/docs
  2. Kubernetes Nodes
    To List the nodes of the cluster:

    Depending on your installation you might see at least one node with the role "master" (the control plane: kube-apiserver, etcd) and eventually a list of worker nodes (where the containers are scheduled).

    To get information about a node:

    To describe a node:

    The commands above show information about the node (hostname, processor, OS, ...), its capacity (CPU, memory, ...), the Pods running on it (their names, CPU/Memory requests and limits), the total allocated resources (CPU/Memory requests and limits), the conditions of the pressure on the disk and the memory, and the version of some system components is also printed (Linux Kernel, Container Runtime, Kubelet, ...).

    To show the resources usage in the cluster:

    If the metric server is not installed, you will get this error: "error: Metrics API not available".
    For more details see: Kubernetes Metrics Server

    To show the resources usage by the pods:

    To print the events in the cluster:

  3. Kubernetes DNS Service
    If you have installed Docker Desktop, you will see that Kubernetes is using CoreDNS DNS server.

    The DNS server is used as the internal Kubernetes DNS service (cluster DNS) that provides naming and discovery for all Kubernetes Services that are created in the cluster.

    The CoreDNS is running as a Kubernetes Deployment (replicas of Pods) and has a Service (acts as a load balancer for the DNS server).

    The CoreDNS server components run in the "kube-system" namespace (can be filtered with the label "k8s-app=kube-dns").

    To see the CoreDNS Deployment:

    To see the CoreDNS Pods:

    To see the CoreDNS Service (kube-dns):

    Let's install dnsutils utility to help debuging the DNS name resolution for services:

    Check that Pod was created properly:

    First let's validate that the DNS resolution is working correctly.
    The nslookup command can be used to resolve the "kubernetes" Service of the API Server (you should get something like the following):

    Let's check the "/etc/resolv.conf" file (the search path and name server should look like the following):

    The "nameserver" (DNS IP address) and "search" (DNS search domains) are saved in the "/etc/resolv.conf" file of all containers.
  4. Kubernetes Proxy: kube proxy
    kube-proxy is a network proxy that runs on each node in the Kubernetes cluster. It routes network traffic (from inside or outside of the Kubernetes cluster) to Pods of load-balanced services.

    The CoreDNS is running as a Kubernetes DaemonSet in the "kube-system" namespace (can be filtered with the label "k8s-app=kube-proxy").

    To see the "kube proxy" DaemonSet and its Pod:
© 2025  mtitek