이 게시물은 아래 강의를 참고 하였습니다.
참고 강의 https://www.youtube.com/watch?v=KdATmTulf7s&list=PLApuRlvrZKojqx9-wIvWP3MPtgy2B372f&index=1
이론)
Secret
- Key Value 타입으로 데이터가 저장된다.
- 데이터가 BASE64로 인코딩된 ASCII text가 들어간다.
- Binary Data는 ASCII text로 변환되어 BASE64로 인코딩되어 저장된다.
- BASE64는 암호화는 아니다.
문제)
Create a kubernetes secret and expose using a file in the pod.
1. Create a kubernetes Secret as follows:
- Name : super-secret
- DATA : password=secretpass
2. Create a Pod named pod-secrets-via-file, using the redis image, which mounts a secret named super-secret at /secrets.
3. Create a second Pod named pod-secrets-via-env, using the redis image, which exports password as PASSWORD
답안)
- Secret 생성
https://kubernetes.io/docs/concepts/configuration/secret/#use-cases 에서 Secret 생성 명령어 참고
$ sudo kubectl create secret generic super-secret --from-literal=password=secretpass
- pod-secrets-via-file 파드 생성
https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod
$ sudo vi pod-secret-via-file.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-secrets-via-file
spec:
containers:
- name: mypod
image: redis
volumeMounts:
- name: foo
mountPath: "/secrets"
volumes:
- name: foo
secret:
secretName: super-secret
$ sudo kubectl apply -f pod-secret-via-file.yaml
- pod-secrets-via-env
https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-environment-variables 를 참고
$ sudo vi pod-secret-via-env.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-secrets-via-env
spec:
containers:
- name: mycontainer
image: redis
env:
- name: PASSWORD
valueFrom:
secretKeyRef:
name: super-secret
key: password
$ sudo kubectl apply -f pod-secret-via-env.yaml
'k8s' 카테고리의 다른 글
CKA 준비 (19) Persistent Volume 생성 (0) | 2022.06.17 |
---|---|
CKA 준비 (18) Ingress 구성 (2) | 2022.06.11 |
CKA 준비 (16) ConfigMap 운영 (0) | 2022.06.11 |
CKA 준비 (15) NodePort 서비스 생성 (0) | 2022.06.11 |
CKA 준비 (14) Init container를 포함한 pod 운영 (0) | 2022.06.07 |