쿠버네티스 비밀을 이해하는 궁극적인 비밀
Kubernetes 시크릿은 비밀번호, 토큰, 키 및 인증서와 같은 민감한 데이터를 객체로 저장하는 데 사용되는 API 객체입니다. 이러한 객체는 클러스터에 저장되고 애플리케이션에서 사용하기 위해 포드에서 참조합니다. 시크릿은 쿠버네티스에서 소프트웨어 애플리케이션을 분리하는 여러 가지 방법 중 하나입니다.
Pod는 kubernetes의 기본 배포 단위이며, Pod는 컨테이너를 캡슐화하고 컨테이너 이미지가 효과적으로 실행되는 데 필요할 수 있는 기타 추가 데이터를 포함합니다. 팟(Pod)은 자주 파괴, 재생성, 조회 및 편집되기 때문에 시크릿은 팟(Pod)과 독립적으로 생성되기 때문에 중요한 데이터가 노출되지 않도록 방지하는 방법을 제공합니다.
비밀은 우리에게 더 안전하고 유연한 구성을 만들 수 있는 능력을 부여합니다. 포드 매니페스트 또는 포드 사양의 일부로 민감한 데이터가 포함되어 있지 않으므로 구성을 안전하게 공유할 수 있습니다.
비밀은 일반적으로 base64로 인코딩됩니다. 즉, 기본적으로 암호화되지 않습니다. 그러나 클러스터에서 암호화를 설정하거나 Hashicorp Vault과 같은 도구를 활용하여 외부에 저장할 수 있습니다. Base64로 인코딩된 암호는 etcd 데이터 저장소에 저장됩니다. 암호는 네임스페이스가 있는 개체이기도 합니다. 이것이 의미하는 바는 동일한 네임스페이스를 공유하는 포드에서만 비밀을 참조할 수 있다는 것입니다.
포드가 시크릿을 참조하고 해당 시크릿을 사용할 수 없거나 포드와 동일한 네임스페이스에 없는 경우 포드가 시작되지 않는다는 점에 유의해야 합니다. 그러나 kubelet은 포드 시작을 계속 재시도합니다.
포드의 네임스페이스 내에서 시크릿을 사용할 수 있게 되면 포드가 생성됩니다. kubernetes의 비밀은 선택적으로 불변으로 표시될 수 있습니다. 이는 암호를 수정할 수 없음을 의미합니다. 시크릿을 업데이트하려면 kubernetes 관리자가 업데이트된 값을 포함하는 새 시크릿을 삭제하고 생성해야 합니다.
비밀은 명령줄을 통해 명령적으로 또는 매니페스트를 통해 선언적 방식으로 kubernetes에서 생성될 수 있습니다. 문서에 따르면 kubernetes에는 세 가지 비밀 유형이 있습니다.
docker-registry: Creates a secret for use with a Docker registry.
generic: Creates a secret from a local file, directory or literal value.
tls: Creates a TLS secret
비밀을 명령적으로 생성하려면:
kubectl create secret mysecret --from-literal=username=kelvin
위의 코드에서 우리는 mysecret이라는 일반 암호를 생성하고 리터럴 값인 username을 할당했습니다.
비밀에 둘 이상의 값을 할당할 수도 있습니다.
kubectl create secret mysecret --from-literal=username=kelvin \
--from-literal=password=mypass
여기서 우리는 비밀에 사용자 이름과 암호 값을 모두 할당합니다.
Pod에서 비밀 사용
비밀을 생성하는 것과 포드 사양 또는 포드 매니페스트에서 비밀을 참조하는 것은 또 다른 일입니다.
비밀은 두 가지 주요 방법으로 참조할 수 있습니다.
환경 변수로 참조되는 암호는 포드를 제거하고 다시 생성하지 않고는 업데이트할 수 없지만 볼륨 기반 암호는 실시간으로 업데이트할 수 있습니다.
비밀은 쿠버네티스의 매우 중요한 측면입니다. 비밀이 작동하는 방식과 비밀을 사용하는 방법을 이해하는 것은 모든 DevOps 엔지니어 또는 kubernetes 관리자가 도구 상자에 갖추어야 하는 주요 기술입니다.
에서 나와 연결
Reference
이 문제에 관하여(쿠버네티스 비밀을 이해하는 궁극적인 비밀), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kelvinskell/the-ultimate-secret-to-understanding-kubernetes-secrets-44c2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)