Tuesday 28 July 2020

Kubernetes: Expose service using NodePort type

In this post, I am going to explain how to expose a Pod using

 

NodePort service type

It is a very basic way to expose a service. NodePort service opens a specific port on all the nodes and any request comes to this port will be forwarded to actual service.

 

Step 1:  Define a deployment definition file.

 

nodePortDemo.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: notification-service-deployment
  labels:
    app: notification-service-deployment
    author: krishna
    serviceType: webservice
spec:
  template:
    metadata:
      name: notification-service
      labels:
        app: notification-service
        author: krishna
        serviceType: webservice
    spec:
      containers:
      - name: notification-service-container
        image: jboss/wildfly

  replicas: 1
  selector:
    matchLabels:
      app: notification-service

Step 2: Create a deployment by executing the below command.

$kubectl create -f nodePortDemo.yml 
deployment.apps/notification-service-deployment created

Step 3: Expose the

kubectl expose deployment notification-service-deployment --port=8080 --type=NodePort

$kubectl expose deployment notification-service-deployment --port=8080 --type=NodePort
service/notification-service-deployment exposed

Step 4: Query all the services by executing the below commands.

$kubectl get svc
NAME                              TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
kubernetes                        ClusterIP   10.96.0.1      <none>        443/TCP          31d
notification-service-deployment   NodePort    10.102.16.86   <none>        8080:30054/TCP   11s

Step 5: Execute below command to open wildfly application in the browser.

minikube service notification-service-deployment

$minikube service notification-service-deployment
|-----------|---------------------------------|-------------|-----------------------------|
| NAMESPACE |              NAME               | TARGET PORT |             URL             |
|-----------|---------------------------------|-------------|-----------------------------|
| default   | notification-service-deployment |        8080 | http://192.168.99.100:30054 |
|-----------|---------------------------------|-------------|-----------------------------|
🎉  Opening service default/notification-service-deployment in default browser...



Previous                                                    Next                                                    Home

No comments:

Post a Comment