Skip to content

Question 1

Question1 URL: Question1

Question 2

Question2 URL: Question2

Question 3

Question3 URL: Question3

Question 4

Question4 URL: Question4

yaml

Question 5

Question5 URL: Question5

bash
controlplane:~$ vi sol.yaml
controlplane:~$ vi sol.yaml
controlplane:~$ k apply -f sol.yaml
storageclass.storage.k8s.io/blue-stc-cka created
persistentvolume/blue-pv-cka created
persistentvolumeclaim/blue-pvc-cka created
controlplane:~$ cat sol.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: blue-stc-cka
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: blue-pv-cka
spec:
  capacity:
    storage: 100Mi
  persistentVolumeReclaimPolicy: Retain
  accessModes:
  - ReadWriteOnce
  storageClassName: blue-stc-cka
  local:
    path: /opt/blue-data-cka
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - controlplane
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: blue-pvc-cka
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: blue-stc-cka
  resources:
    requests:
      storage: 50Mi
  volumeName: blue-pv-cka
controlplane:~$

Question 6

Question6 URL: Question6

sh
controlplane:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  filesystem  nginx-pod-cka.yaml
controlplane:~$ cat nginx-pod-cka.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: nginx-pvc-cka
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 80Mi
  storageClassName: nginx-stc-cka
  volumeName: nginx-pv-cka
---
apiVersion: v1
kind: Pod
metadata:
  name: nginx-pod-cka
spec:
  volumes:
  - name: shared
    persistentVolumeClaim:
      claimName: nginx-pvc-cka
  tolerations:
  - operator: Exists
    effect: NoSchedule
    key: node-role.kubernetes.io/control-plane
  containers:
    - name: my-container
      image: nginx:latest
      volumeMounts:
      - name: shared
        mountPath: /var/www/html
controlplane:~$

Question 7

Question7 URL: Question7

sh
controlplane:~$ k apply -f pvc.yaml
persistentvolumeclaim/red-pvc-cka created
controlplane:~$ cat pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: red-pvc-cka
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 30Mi
  volumeName: red-pv-cka
  storageClassName: manual
  
controlplane:~$

Question 8

Question8 URL: Question8

sh
controlplane:~$ vi sol.yaml
controlplane:~$ k apply -f sol.yaml
persistentvolume/my-pv-cka created
persistentvolumeclaim/my-pvc-cka created
pod/my-pod-cka created
controlplane:~$ cat sol.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv-cka
spec:
  capacity:
    storage: 100Mi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: /mnt/data
  storageClassName: standard
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc-cka
spec:
  resources:
    requests:
      storage: 99Mi
  accessModes:
    - ReadWriteOnce
  storageClassName: standard
---
apiVersion: v1
kind: Pod
metadata:
  name: my-pod-cka
spec:
  volumes:
  - name: shared-storage
    persistentVolumeClaim:
      claimName: my-pvc-cka
  containers:
  - name: nginx
    image: nginx
    volumeMounts:
    - mountPath: /var/www/html
      name: shared-storage
    
controlplane:~$

Question 9

Question9 URL: Question9

sh
ontrolplane:~$ k get pv,pvc
NAME                           CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
persistentvolume/gold-pv-cka   50Mi       RWX            Retain           Available           gold-stc-cka   <unset>                          2m48s

NAME                                 STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
persistentvolumeclaim/gold-pvc-cka   Pending                                      gold-stc-cka   <unset>                 2m48s
controlplane:~$ k get pv,pvc
NAME                           CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   VOLUMEATTRIBUTESCLASS   REASON   AGE
persistentvolume/gold-pv-cka   50Mi       RWX            Retain           Available           gold-stc-cka   <unset>                          2m53s

NAME                                 STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
persistentvolumeclaim/gold-pvc-cka   Pending                                      gold-stc-cka   <unset>                 2m53s
controlplane:~$ k get pvc,pvc
NAME           STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
gold-pvc-cka   Pending                                      gold-stc-cka   <unset>                 2m57s
controlplane:~$ k get pvc,pvc
NAME           STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
gold-pvc-cka   Pending                                      gold-stc-cka   <unset>                 3m1s
controlplane:~$ cat *.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: gold-pv-cka
  labels:
    tier: white
spec:
  capacity:
    storage: 50Mi
  accessModes:
    - ReadWriteMany
  storageClassName: gold-stc-cka
  persistentVolumeReclaimPolicy: Retain

  hostPath:
    path: /opt/gold-stc-cka

  nodeAffinity:
    required:
      nodeSelectorTerms:
        - matchExpressions:
            - key: kubernetes.io/hostname
              operator: In
              values:
                - node01

apiVersion: v1
kind: PersistentVolume
metadata:
  name: gold-pv-cka
  labels:
    tier: white
spec:
  storageClassName: gold-stc-cka
  capacity:
    storage: 50Mi

Question 10

Question10 URL: Question10

sh
controlplane:~$ ls
Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos  filesystem
controlplane:~$ vi pv.yaml 
controlplane:~$ k apply -f pv.yaml
The PersistentVolume "black-pv-cka" is invalid: spec.accessModes: Required value
controlplane:~$ vi pv.yaml
controlplane:~$ k apply -f pv.yaml
persistentvolume/black-pv-cka created
controlplane:~$ cat pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  name: black-pv-cka
spec:
  hostPath:
    path: /opt/black-pv-cka
  capacity:
    storage: 50Mi
  accessModes:
  - ReadWriteMany
  
controlplane:~$ vi

Released under the MIT License.