//This is basic pod yaml file apiVersion: "v1" kind: Pod //Service,Pod,Replication controller,node :objects of kubernetes metadata: name: mypod labels: //Additional metadata app: demo env: test spec: //specification for pod, we will be putting containers here containers: - name: nginx image: nginx ports: //ports again a collection - name: http containerPort: 80 protocol: TCP
C:\Users\amitm\Downloads>kubectl describe pod mypod Name: mypod Namespace: default Node: minikube/192.168.99.100 Start Time: Wed, 22 Nov 2017 18:15:53 +0530 Labels: app=demo env=test Annotations: <none> Status: Pending IP: Containers: nginx: Container ID: Image: nginx Image ID: Port: 80/TCP State: Waiting Reason: ContainerCreating Ready: False Restart Count: 0 Environment: <none> Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-4462j (ro) Conditions: Type Status Initialized True Ready False PodScheduled True Volumes: default-token-4462j: Type: Secret (a volume populated by a Secret) SecretName: default-token-4462j Optional: false QoS Class: BestEffort Node-Selectors: <none> Tolerations: <none> Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m default-scheduler Successfully assigned mypod to minikube Normal SuccessfulMountVolume 4m kubelet, minikube MountVolume.SetUp succeeded for volume "default-token-4462j" Normal Pulling 4m kubelet, minikube pulling image "nginx"
C:\Users\amitm\Downloads>kubectl describe pod mypod Name: mypod Namespace: default Node: minikube/192.168.99.100 Start Time: Wed, 22 Nov 2017 18:15:53 +0530 Labels: app=demo env=test Annotations: <none> Status: Running IP: 172.17.0.10 Containers: nginx: Container ID: docker://5851633d71162a58861a48cd2b1a310f1e069df22e449d05c327fd34068e707f Image: nginx Image ID: docker-pullable://nginx@sha256:9fca103a62af6db7f188ac3376c60927db41f88b8d2354bf02d2290a672dc425 Port: 80/TCP State: Running Started: Wed, 22 Nov 2017 18:20:15 +0530 Ready: True Restart Count: 0 Environment: <none> Mounts: /var/run/secrets/kubernetes.io/serviceaccount from default-token-4462j (ro) Conditions: Type Status Initialized True Ready True PodScheduled True Volumes: default-token-4462j: Type: Secret (a volume populated by a Secret) SecretName: default-token-4462j Optional: false QoS Class: BestEffort Node-Selectors: <none> Tolerations: <none> Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 9m default-scheduler Successfully assigned mypod to minikube Normal SuccessfulMountVolume 9m kubelet, minikube MountVolume.SetUp succeeded for volume "default-token-4462j" Normal Pulling 9m kubelet, minikube pulling image "nginx" Normal Pulled 5m kubelet, minikube Successfully pulled image "nginx" Normal Created 5m kubelet, minikube Created container Normal Started 5m kubelet, minikube Started container C:\Users\amitm\Downloads>
//creating the service using expose command C:\Users\amitm\Downloads>kubectl.exe expose pod mypod --type=NodePort service "mypod" exposed C:\Users\amitm\Downloads>kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.0.0.1 <none> 443/TCP 1d mypod NodePort 10.0.0.39 <none> 80:32271/TCP 9s redis ClusterIP 10.0.0.240 <none> 6379/TCP 1d web NodePort 10.0.0.97 <none> 80:31130/TCP 1d C:\Users\amitm\Downloads>kubectl describe svc mypod Name: mypod Namespace: default Labels: app=demo env=test Annotations: <none> Selector: app=demo,env=test Type: NodePort IP: 10.0.0.39 Port: <unset> 80/TCP TargetPort: 80/TCP NodePort: <unset> 32271/TCP //Port where our service is exposed on Endpoints: 172.17.0.10:80 Session Affinity: None External Traffic Policy: Cluster Events: <none> C:\Users\amitm\Downloads>kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready <none> 1d v1.8.0
http://<nodeip>:32271 //port which is mentioned as part of node port