Kubernetes Concepts
Kubernetes is a orchestration manager/Cluster Manager for Container. Basically it creates infrastructure(cluster, nodes, etc) and deploy the container, loadbalanceing, managing, monitoring etc.
There are few terminologies/concepts used in kubernetes, which we need to understood.
Administrator will setup Nodes and Cluster (its a kubernetes deployment stuff).
Nodes
Nodes is a machine running kubernetes where the pods(containers) will be launched. (Similar to nova compute). Node can be a master or worker nodes.
Master Node: ??
Worker Node: ??
Commands:
cloud@mkube:~$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
minikube Ready <none> 7d v1.5.3
cloud@mkube:~$
cloud@mkube:~$ kubectl describe nodes
Name: minikube
Roles: <none>
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/hostname=minikube
Annotations: volumes.kubernetes.io/controller-managed-attach-detach=true
Taints: <none>
.......
cloud@mkube:~$
Cluster
Cluster is collection of Nodes, storages and other resources, used for launching the pods(containers)
Cluster has minimum 1 master node and worker node.
High available cluster means, multiple master and worker nodes.
cloud@mkube:~$ kubectl cluster-info
Kubernetes master is running at https://192.168.42.19:8443
KubeDNS is running at https://192.168.42.19:8443/api/v1/namespaces/kube-system/services/kube-dns/proxy
kubernetes-dashboard is running at https://192.168.42.19:8443/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
cloud@mkube:~$
User will create Pods, Service, Deployment, Replication Controller (These are used for deploying the application in the kubernetes ).
Pods
Pod is a one or more containers for deploying the application. Its a abstraction for managing group of container with shared volumes and network namespace.
loud@mkube:~$ kubectl get pods
NAME READY STATUS RESTARTS AGE
hello 1/1 Running 0 5d
cloud@mkube:~$ kubectl describe pods hello
Name: hello
Namespace: default
Node: minikube/192.168.42.19
Start Time: Wed, 18 Oct 2017 17:40:08 +0000
Labels: app=hello
Annotations: kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"la
bels":{"app":"hello"},"name":"hello","namespace":"default"},"spec":{"containers":[{"ima...
Status: Running
IP: 172.17.0.4
...........
Replication Controller
RC(Replication Controller) manages the replication of PODs as specified in cmd line or YAML file. RC will ensure POD replicas are running at any point of time. New replica will be started if the existing replica is stopped/failed.
Deployment
Todo
Services
Todo