7. Secret이 마운트된 Pod 생성하기

[문제 요건]

  • admin1401 네임스페이스에 busybox이미지를 가지고 secret-1401라는 파드를 생성
  • 파드 내 컨테이너명은 반드시 secret-admin 여야함
  • 4800초동안 sleep하는 명령어 실행
  • 컨테이너에 마운트 되는 시크릿 볼륨은 read-only 여야 하며,
  • 컨테이너는 /etc/secret-volume 경로에 시크릿 볼륨을 마운트해야한다.
  • 시크릿 이름은 dotfile-secret
  • 채점 기준: 파드가 올바르게 생성되었는가?



[내 풀이]

  • kubectl 명령어로 pod의 yaml 파일을 생성해준다.
    • Tip: --dry-run 옵션을 사용해 파드를 생성하지 않고 매니페스트 파일만 생성한다.
root@controlplane:~# k run -n admin1401 --image=busybox secret-1401 --dry-run=client -o yaml --command -- sleep 4800 > pod.yaml

  • 생성한 매니페스트 파일(yaml)을 편집한다.
root@controlplane:~# vi pod.yaml
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: secret-1401
  name: secret-1401
  namespace: admin1401
spec:
  containers:
  - command:
    - sleep
    - "4800"
    image: busybox
    name: secret-1401
  dnsPolicy: ClusterFirst
  restartPolicy: Always

  • 문제 요건에 맞게 pod의 yaml 파일을 수정한다.
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: secret-1401
  name: secret-1401
  namespace: admin1401
spec:
  containers:
  - command:
    - sleep
    - "4800"
    image: busybox
    name: secret-admin
    volumeMounts:
    - name: secret-volume
      readOnly: true
      mountPath: "/etc/secret-volume"
  dnsPolicy: ClusterFirst
  restartPolicy: Always
  volumes:
  - name: secret-volume
    secret:
      secretName: dotfile-secret
  • 파드의 컨테이너명을 secret-admin 으로 수정한다.
  • 쿠버네티스 공식 문서의 Secret 문서를 참고하여 Secret Volume과 VolumeMounts 구문을 추가한다.

  • kubectl create -f <yaml파일명> 명령어를 사용해 파드를 생성한 뒤, 잘 생성되었는지 확인한다.
root@controlplane:~# kubectl create -f pod.yaml 
pod/secret-1401 created
root@controlplane:~# kubectl get pods -n admin1401
NAME          READY   STATUS    RESTARTS   AGE
secret-1401   1/1     Running   0          12s

[참고 URL]