반응형

쿠버네티스에서 Secret은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. POD로 배포할 애플리케이션에서 사용하는 비밀번호, 암호, 토큰과 같은 주요 데이터가 직접 노출되는 것을 방지하기 위해 주로 사용한다.
secret은 사용되는 목적에 따라서 종류가 다양하다. secret의 종류와 종류별 생성 방법은 https://kubernetes.io/ko/docs/concepts/configuration/secret/#secret-types에서 확인할 수 있다.
시크릿(Secret)
시크릿은 암호, 토큰 또는 키와 같은 소량의 중요한 데이터를 포함하는 오브젝트이다. 이를 사용하지 않으면 중요한 정보가 파드 명세나 컨테이너 이미지에 포함될 수 있다. 시크릿을 사용한다
kubernetes.io
다음은 secret을 생성하고, deployment 에서 env 값으로 설정하는 예제이다.
- base64 인코딩echo
- 인코딩 할 문자열| base64 명령어를 사용하여 'c2VjcmV0MTIzCg==’ 와 같이 인코딩된 값을 얻을 수 있다.[LYJ@worker nexus]$ echo c2VjcmV0MTIzCg== |base64 --decode secret123
참고로 디코딩 하는 방법은 다음과 같다.[LYJ@worker nexus]$ echo c2VjcmV0MTIzCg== |base64 --decode secret123
- secret 오브젝트 생성하기kubectl apply -f secret.yaml 수행하여 secret 생성
- kubectl apply -f secret.yaml 수행하여 secret 생성# secret.yaml apiVersion: v1 kind: Secret metadata: name: test-secret type: Opaque //임의의 사용자 정의 데이터를 나타낼 때 사용하는 타입이다. data: password: c2VjcmV0MTIzCg==
- POD에서 시크릿을 환경 변수 형태로 사용하기|
- kubectl apply -f deployment.yaml 수행하여 POD배포apiVersion: apps/v1 kind: Deployment metadata: name: test-deployment spec: replicas: 1 selector: matchLabels: app: test template: metadata: labels: app: test spec: containers: - name: nexus image: test-image ports: - containerPort: 8081 env: - name: ADMIN_PASSWORD #사용할 env명 valueFrom: secretKeyRef: #이 부분이 중요함 name: test-secret #위에서 생성한 secret 이름 key: password
- secret 적용 확인
kubectl exec -it bash POD명 수행하여 컨테이너 접속
- 컨테이너 내부에 접속하여 환경변수 확인[root@test-deployment-699b5ddcfc-v4tlp /]# env ADMIN_PASSWORD=secret123
반응형
'쿠버네티스(kubernetes)' 카테고리의 다른 글
쿠버네티스 kubectl 명령어 자동완성 설정하기 (0) | 2025.02.05 |
---|---|
Failed to pull image with x509 ImagePullBackOff 해결하기 - CRIO (0) | 2024.12.11 |
컨테이너 생성시, 컨테이너가 Terminated 상태가 되는 현상(with 커스텀 이미지) (1) | 2024.06.24 |
쿠버네티스 Ingress와 Service 사용하기 (0) | 2024.06.24 |