Its a open source container orchestration tool designed to automate, deploying, scaling and operating containerized applications. Its a distributed system. Can use different container runtimes.
- Declarative configurations
- Deploy Containers
- Wire up networks
- Expose and scale services
- Atuomated deployment rollout and roolback
- RBAC
- Persistent volume management
- Seamless horizontal scalling
- Supports Linux & Windows Clusters
- Clusters
- Nodes (master & worker)
- Pods
- Services
- Deployments
- DC/OS
- Amazon ECS
- Docker Swarm Mode
- Docker Desktop
- Minikube
- kubeadm
- Its a container orchestration tool
- Composed of group of Nodes
- Conatiners run in a Pod
- Nodes are machine in clustres
- Control plane run's on master node and schedules containers on thde nodes
- Pod can have one or more containers
- K8s service exposes Pods to Cluster and outside them
kubectl get pods -n default
kubectl run redis --image=redis -l name=ninad --port 8080
kubectl create deploy nginx-deploy --image=redis --replicas=5 -n development
kubectl get configmaps kubectl create configmap webapp-config-map --from-literal=APP_COLOR=darkblue
kubectl get secrets kubectl describe secret kubectl create secret generic some-secret --from-literal=SOME_VAR=SomeTopSecret --from-literal=ANOTHER_VAR=SomeAnotherValue
kubectl get pod pod-name -o yaml > pod-definition.yaml
kubectl explain pods --recursive kubectl explain pods --recursive | less kubectl explain pods --recursive | grep -A10 envFrom
kubectl get pv pvc
- Sidecar pattern
- Ambassador pattern
- Adapter pattern
kubectl completion --help
Enable: source < (kubectl completion bash) echo "source < (kubectl completion bash)" >> ~/.bash_profile
Press tab or press tab twice
kubectl
kubectl get nodes
pods = po
--sort-by='{.metadata.creationTimestamp}'
kubectl create namespace tricks -o yaml --dry-run
kubectl get pod -n app -o yaml --export | wcl -l