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