Kubernetes – When to use Which ServiceTypes?

Kubernetes supports different kinds of service types such as following:

  • ClusterIP: The service of type, ClusterIP, can only be exposed to other services running within the same Kubernetes cluster. The default ServiceType is ClusterIP.
    kind: Service
    apiVersion: v1
    metadata:
      name: hello-service
    spec:
      selector:
        app: HelloApp
      ports:
      - protocol: TCP
        port: 80
        targetPort: 9376
        nodePort: 30061
    
  • NodePort: The service of type, NodePort, can be exposed externally at a static port. The service address would look like  NodeIP:NodePort. External APIs can invoke the NodePort services.
  • LoadBalancer: The service of type, LoadBalancer, can be exposed externally using cloud providers’ load balancer.
    kind: Service
    apiVersion: v1
    metadata:
      name: hello-service
    spec:
      selector:
        app: HelloApp
      ports:
      - protocol: TCP
        port: 80
        targetPort: 9376
        nodePort: 30061
      clusterIP: 10.0.171.239
      loadBalancerIP: 78.11.24.19
      type: LoadBalancer
    status:
      loadBalancer:
        ingress:
        - ip: 146.148.47.155
    
  • ExternalName: The service of type, ExternalName, is mapped to an external name, such as helloapp.vitalflux.com.
Ajitesh Kumar

Ajitesh Kumar

I have been recently working in the area of Data analytics including Data Science and Machine Learning / Deep Learning. I am also passionate about different technologies including programming languages such as Java/JEE, Javascript, Python, R, Julia, etc, and technologies such as Blockchain, mobile computing, cloud-native technologies, application security, cloud computing platforms, big data, etc. I would love to connect with you on Linkedin. Check out my latest book titled as First Principles Thinking: Building winning products using first principles thinking.
Posted in CloudNative, Kubernetes. Tagged with .