This site uses cookies

We and selected third parties use cookies (or similar technologies) for technical purposes, to enhance and analyze site usage, to support our marketing efforts, and for other purposes described in our Cookies policy.

By School Of Devops - Complete Kubernetes Tutorial

volumes: - name: storage persistentVolumeClaim: claimName: app-pvc Install NGINX Ingress:

kubectl create configmap app-config --from-literal=db_url=postgres://db:5432 # Use in pod env: - name: DB_URL valueFrom: configMapKeyRef: name: app-config key: db_url (base64 encoded):

helm create mychart # Edit templates/deployment.yaml, values.yaml helm install myapp ./mychart Metrics Server: Complete Kubernetes Tutorial by School of Devops

helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update helm search repo nginx helm install my-release bitnami/nginx helm list helm uninstall my-release

sudo apt-get update && sudo apt-get install -y apt-transport-https curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get install -y kubelet kubeadm kubectl sudo kubeadm init --pod-network-cidr=10.244.0.0/16 Pod Example ( pod.yaml ): apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx image: nginx:latest ports: - containerPort: 80 kubectl apply -f pod.yaml kubectl port-forward pod/nginx-pod 8080:80 Deployment & Service: apiVersion: apps/v1 kind: Deployment metadata: name: web-deploy spec: replicas: 3 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - name: nginx image: nginx ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: web-service spec: type: NodePort selector: app: web ports: - port: 80 targetPort: 80 nodePort: 30001 kubectl apply -f deploy-svc.yaml kubectl get svc,deploy,pods 5. ConfigMaps & Secrets ConfigMap (non-sensitive data): myapp.example.com Install Helm:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml kubectl top nodes kubectl top pods

kubectl create secret generic db-secret --from-literal=password=supersecret env: - name: DB_PASSWORD valueFrom: secretKeyRef: name: db-secret key: password PersistentVolume (cluster storage): Complete Kubernetes Tutorial by School of Devops

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# Install Minikube curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 sudo install minikube-linux-amd64 /usr/local/bin/minikube minikube start --driver=docker Verify kubectl cluster-info kubectl get nodes

apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: web-ingress spec: rules: - host: myapp.example.com http: paths: - path: / pathType: Prefix backend: service: name: web-service port: number: 80 kubectl apply -f ingress.yaml # Add to /etc/hosts: <minikube_ip> myapp.example.com Install Helm: