Services Demo

1. hostNetwork: true - DEMO

Source code: hostNetwork.yaml

Content of a file:

apiVersion: v1
kind: Pod                                         
metadata:
  name: podsdemo                    
spec:
  hostNetwork: true # This should be true to access outside your Kubernetes cluster
  containers:
  - image: iam7hills/learnkubernetes:podsdemo-1.0  
    name: podsdemo
    ports:
    - containerPort: 80                          
      

Step 1: Create a Pod

kubectl create -f hostNetwork.yaml

pod/podsdemo created

Step 2: 

kubectl get pods podsdemo -o wide

NAME       READY   STATUS    RESTARTS   AGE   IP              NODE        

podsdemo   1/1     Running   0          44s   <IP- will be here>   iam7hills   

Step 3: Access your pods from your browser(outside your cluster)

http://<your-host-ip>:80

2. hostPort DEMO

source code: hostPath.yaml

apiVersion: v1
kind: Pod                                         
metadata:
  name: podsdemo                    
spec:
  containers:
  - image: iam7hills/learnkubernetes:podsdemo-1.0  
    name: podsdemo
    ports:
    - containerPort: 80                          
      hostPort: 8080   # This port is mapped with listener port 80, in the url need to provide 8080

Step 1: Create pod
kubectl create -f hostPath.yaml
pod/podsdemo created
Step 2:
hit the url as http://<host-ip>:8080

3. Services DEMO 

Source code 1: services.yaml
Source code 2: servicepods.yaml

services.yaml
apiVersion: v1
kind: Service
metadata:
  name: vcdemo
spec:
  type: NodePort
  ports:
  - port: 9090
    targetPort: 80
    nodePort: 30001
  selector:
     app: nginxapp

servicepods.yaml
apiVersion: v1
kind: Pod                                          # Kind can be Pod/Deployment/Service/Ingress
metadata:
  name: serdemo
  labels:
    app: nginxapp
spec:
  containers:
  - image: iam7hills/learnkubernetes:podsdemo-4.0
    name: serdemo
    ports:
    - containerPort: 80
    imagePullPolicy: Always

Run both the yaml using 
kubectl create -f services.yaml
kubectl create -f servicepods.yaml

access the page using http://<host-ip>:30001