Node Port vs Cluster IP Kubernetes | DevOps | Interview | Tech Arkit



In Kubernetes, NodePort and ClusterIP are both mechanisms for exposing services to the outside world, but they serve different purposes.

  1. NodePort:

    • NodePort is a type of service that exposes a service on a specific port of each node in the cluster.
    • When you expose a service using NodePort, Kubernetes will allocate a specific port on every node in the cluster (usually in the range 30000-32767) and any traffic sent to this port will be forwarded to the corresponding service.
    • NodePort is typically used when you need to access a service from outside the Kubernetes cluster, for example, to expose a web application to the internet.

    Example Usage:

    yaml
    apiVersion: v1 kind: Service metadata: name: my-service spec: type: NodePort selector: app: my-app ports: - port: 80 targetPort: 8080 nodePort: 30000
  2. ClusterIP:

    • ClusterIP is a type of service that exposes a service on an internal IP address that is only reachable from within the Kubernetes cluster.
    • This is the default type of service in Kubernetes.
    • ClusterIP is used for communication between services within the cluster.

    Example Usage:

    yaml
    apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: my-app ports: - port: 80 targetPort: 8080

Usage scenarios:

  • If you have an application that needs to be accessed from outside the cluster, you would typically use NodePort. For example, a web application that needs to be accessed via a browser.
  • If you have microservices within your cluster that need to communicate with each other, you would typically use ClusterIP. For example, a frontend service communicating with a backend service.

In summary, NodePort is used for exposing services to the outside world, while ClusterIP is used for internal communication within the cluster.

No comments:

Post a Comment