105. A note about Secrets
- 인코딩
- Secret은 base64 형식으로 데이터를 인코딩한다.
- base64로 인코딩된 암호를 가진 사람은 누구나 암호를 디코딩할 수 있다. 따라서 Secret은 그다지 안전하지 않은 것으로 간주될 수 있다.
- Secret은 암호 및 기타 중요한 데이터가 실수로 노출될 위험이 줄어들기 때문에 일반 텍스트로 저장하는 것보다 안전하다.
- 보관, 관행
- Secret 정의 파일을 소스 코드 레포지토리에 올리지 않는다
- ETCD에 암호화되어 저장되도록 ETCD에 저장될 때 Secret에 대한 암호화를 가능하게 한다
- 생명주기
- 저장
- 쿠버네티스는 Secret을 안전하게 처리하기 위해 Secret은 해당 노드의 파드에 필요한 경우에만 노드로 전송된다.
- kubelet은 Secret이 디스크 저장소에 기록되지 않도록 Secret을 tmpfs에 저장한다.
- 삭제
- Secret에 의존하는 Pod가 삭제되면 kubelet은 Secret 데이터의 로컬 복사본도 삭제한다.
- 저장
- 개선
- 그러나 Helm Secrets, HashiCorp Valut와 같은 도구를 사용하는 것과 같이 Kubernetes의 비밀번호와 같은 민감한 데이터를 처리하는 다른 더 좋은 방법이 있다.
106. Practice Test - Secrets
107. Solution - Secrets (Optional)
시크릿 생성
kubectl create secret generic db-secret --from-literal=DB_Host=sql01 --from-literal=DB_User=root --from-literal=DB_Password=password123
secret/db-secret created
시크릿 지정
containers:
- image: kodekloud/simple-webapp-mysql
imagePullPolicy: Always
name: webapp
envFrom:
- secretRef:
name: db-secret
Recreate the pod.
- 들여쓰기 적당히 되어야함.
108. Demo: Encrypting Secret Data at Rest
109. Scale Applications
We have already discussed about scaling applications in the Deployments and Rolling updates and Rollback sections.
'DevOps > Kubernates' 카테고리의 다른 글
[CKA] 144-152 (0) | 2023.04.11 |
---|---|
[CKA] 129-143 (0) | 2023.04.09 |
[CKA] 94-104 Configure Application, Commands, ConfigMap, Secret (0) | 2023.04.05 |
[CKA] 62-75 Node Affinity, Taints and Tolerations, DaemonSets, Static Pod (0) | 2023.04.03 |
[CAK] 36-48 Sevice, Namespace, Kubectl commands (0) | 2023.03.30 |
댓글