본문 바로가기
DevOps/Kubernates

[CKA] 105-115

by BenKangKang 2023. 4. 7.

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.

댓글