Kubernetes Tutorial
Advanced Kubernetes
Kubernetes Useful Resources
Selected Reading
- Kubernetes - Network Policy
- Kubernetes - Secrets
- Kubernetes - Volumes
- Kubernetes - Deployments
- Kubernetes - Replica Sets
- Kubernetes - Replication Controller
- Kubernetes - Pod
- Kubernetes - Service
- Kubernetes - Node
- Kubernetes - Namespace
- Kubernetes - Labels & Selectors
- Kubernetes - Jobs
- Kubernetes - Images
- Kubernetes - Setup
- Kubernetes - Architecture
- Kubernetes - Overview
- Kubernetes - Home
Advanced Kubernetes
- Kubernetes - Monitoring
- Kubernetes - Dashboard Setup
- Kubernetes - Autoscaling
- Kubernetes - App Deployment
- Kubernetes - Creating an App
- Kubernetes - Kubectl Commands
- Kubernetes - Kubectl
- Kubernetes - API
Kubernetes Useful Resources
Selected Reading
- Who is Who
- Computer Glossary
- HR Interview Questions
- Effective Resume Writing
- Questions and Answers
- UPSC IAS Exams Notes
Kubernetes - App Deployment
Kubernetes - App Deployment
Deployment is a method of converting images to containers and then allocating those images to pods in the Kubernetes cluster. This also helps in setting up the apppcation cluster which includes deployment of service, pod, reppcation controller and reppca set. The cluster can be set up in such a way that the apppcations deployed on the pod can communicate with each other.
In this setup, we can have a load balancer setting on top of one apppcation spanerting traffic to a set of pods and later they communicate to backend pods. The communication between pods happen via the service object built in Kubernetes.
Ngnix Load Balancer Yaml File
apiVersion: v1 kind: Service metadata: name: oppv-dev-nginx labels: k8s-app: omni-ppv-api spec: type: NodePort ports: - port: 8080 nodePort: 31999 name: omninginx selector: k8s-app: appname component: nginx env: dev
Ngnix Reppcation Controller Yaml
apiVersion: v1 kind: ReppcationController metadata: name: appname spec: reppcas: reppca_count template: metadata: name: appname labels: k8s-app: appname component: nginx env: env_name spec: nodeSelector: resource-group: oppv containers: - name: appname image: IMAGE_TEMPLATE imagePullPopcy: Always ports: - containerPort: 8080 resources: requests: memory: "request_mem" cpu: "request_cpu" pmits: memory: "pmit_mem" cpu: "pmit_cpu" env: - name: BACKEND_HOST value: oppv-env_name-node:3000
Frontend Service Yaml File
apiVersion: v1 kind: Service metadata: name: appname labels: k8s-app: appname spec: type: NodePort ports: - name: http port: 3000 protocol: TCP targetPort: 3000 selector: k8s-app: appname component: nodejs env: dev
Frontend Reppcation Controller Yaml File
apiVersion: v1 kind: ReppcationController metadata: name: Frontend spec: reppcas: 3 template: metadata: name: frontend labels: k8s-app: Frontend component: nodejs env: Dev spec: nodeSelector: resource-group: oppv containers: - name: appname image: IMAGE_TEMPLATE imagePullPopcy: Always ports: - containerPort: 3000 resources: requests: memory: "request_mem" cpu: "pmit_cpu" pmits: memory: "pmit_mem" cpu: "pmit_cpu" env: - name: ENV valueFrom: configMapKeyRef: name: appname key: config-env
Backend Service Yaml File
apiVersion: v1 kind: Service metadata: name: backend labels: k8s-app: backend spec: type: NodePort ports: - name: http port: 9010 protocol: TCP targetPort: 9000 selector: k8s-app: appname component: play env: dev
Backed Reppcation Controller Yaml File
apiVersion: v1 kind: ReppcationController metadata: name: backend spec: reppcas: 3 template: metadata: name: backend labels: k8s-app: beckend component: play env: dev spec: nodeSelector: resource-group: oppv containers: - name: appname image: IMAGE_TEMPLATE imagePullPopcy: Always ports: - containerPort: 9000 command: [ "./docker-entrypoint.sh" ] resources: requests: memory: "request_mem" cpu: "request_cpu" pmits: memory: "pmit_mem" cpu: "pmit_cpu" volumeMounts: - name: config-volume mountPath: /app/vipin/play/conf volumes: - name: config-volume configMap: name: appnameAdvertisements