Cloud
PG1
kubectl create deployment nginx --image=nginx:latest
kubectl scale deployment nginx --replicas=3
Output
kubectl get pods
kubectl set image deployment/nginx nginx=nginx:1.21.0
Output
kubectl rollout status deployment/nginx
kubectl get pods -o wide
kubectl rollout undo deployment/nginx
output
kubectl rollout status deployment/nginx
PG2
kubectl create configmap my-config --from-literal=app_name=MyK8sApp --from-literal=version=1.0
output
kubectl get configmap my-config -o yaml
kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=SuperSecret123
output
kubectl get secret my-secret -o yaml
kubectl get secret
kubectl get configmap
kubectl delete configmap my-config
kubectl delete secret my-secret
PG3
nano pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: my-pv
spec:
capacity:
storage: 1Gi # Defines total storage capacity
accessModes:
- ReadWriteOnce # Single node can read/write
persistentVolumeReclaimPolicy: Retain # Retains data even if PVC is deleted
hostPath:
path: "/mnt/data" # Storage path on the host node
kubectl apply -f pv.yaml
output
kubectl get pv
kubectl describe pv my-pv
nano pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-pvc
spec:
accessModes:
- ReadWriteOnce # PVC can be mounted by a single node
resources:
requests:
storage: 500Mi # Requests 500MiB from an available PV
kubectl apply -f pvc.yaml
output
kubectl get pvc
kubectl describe pvc my-pvc
PG4
notepad pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: app-container
image: nginx
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: storage
volumes:
- name: storage
persistentVolumeClaim:
claimName: my-pvc
kubectl apply -f pod.yaml
ouput
kubectl get pods
kubectl describe pod my-app
PG5
nano multi-container-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
containers:
- name: app
image: nginx
- name: sidecar
image: busybox
command: ["sh", "-c", "while true; do echo 'Logging...'; sleep 5; done"]
OR
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
containers:
- name: nginx-container
image: nginx
ports:
- containerPort: 80
volumeMounts:
-mountPath: "/usr/share/nginx/html"
name: shared-storage
- name: busybox-container
image: busybox
command: ["/bin/sh", "-c", "while true; do echo 'Hello from BusyBox' > /output/index.html; sleep 5; done"]
volumeMounts:
- mountPath: "/output"
name: shared-storage
kubectl apply -f multi-container-pod.yaml
kubectl get pods
kubectl describe pod multi-container-pod
kubectl logs multi-container-pod -c busybox-container
PG6
nano cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
name: periodic-job
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: cronjob-container
image: busybox
command: ["date"]
restartPolicy: OnFailure
kubectl apply -f cronjob.yaml
output
kubectl get cronjob
kubectl describe cronjob periodic-job
Comments
Post a Comment