민감한 정보를 저장하기 위한 오브젝트이다.
Generic 타입의 secret
secret 문자열로 생성
# kubectl create secret generic <secret 이름> --from-literal <password 정보>
kubectl create secret generic my-password --from-literal password=1234
secret 파일로 생성
# 패스워드(pw1, pw2) 정보 생성
echo mypassword1 > pw1 && echo mypassword2 >
# kubectl create secret generic <secret 이름> --from-file <파일 이름>
kubectl create secret generic my-passwords --from-file pw1 --from-file pw2
secret 조회
kubectl get secret my-password -o yaml
# result
apiVersion: v1
data:
password: MTIzNA== # 기본적으로 Base64로 인코딩이 됨
...
Docker login 정보 scret으로 설정하기
# 방법 1 - 로그인 시 자동으로 생성하는 ~/.docker/config.json 활용하기
docker login
kubectl create secret generic registry-auth \
> --from-file=.dockerconfigjson=/root/.docker/config.json \
> --type=kubernetes.io/dockerconfig.json
# 방법 2 - 직접 명시하기
kubectl create secret docker-registry registry-auth-by-cmd \
--docker-username=<id> \
--docekr-password=<password> \
TLS 타입의 secret
# 키 생성
openssl req -new -newkey rsa:4096 -days 365 -nodes \
-x509 -subj "/CN=example.com" -keyout cert.key -out cert.crt
- openssl req: OpenSSL에서 인증서 요청(Certificate Signing Request, CSR)을 생성
- -new: 새로운 인증서 요청
- -newkey rsa:4096: 새로운 RSA 키 쌍을 생성하며 rsa:4096은 RSA 알고리즘을 사용하여 4096비트 길이의 키를 생성
- -days 365: 인증서가 유효 기간
- -nodes: 개인 키가 비밀번호 없이 평문으로 저장
- -x509: CSR 대신 자체 서명된 인증서(self-signed certificate)를 직접 생성
- -subj "/CN=example.com": 인증서의 주체(subject) 정보 지정, CN은 Common Name을 나타내며, example.com이 Common Name으로 설정
- -keyout cert.key: 개인 키 파일 이름
- -out cert.crt: 인증서 파일 이름
# kubectl create secret tls <secert 이름> --cert <인증서 파일> --key <키 파일>
kubectl create secret tls my-tls-secret --cert cert.crt --key cert.key
'Kubernetes' 카테고리의 다른 글
7-2. Kubernetes IngressController SSL/TLS 보안 적용 (4) | 2024.08.27 |
---|---|
7-1. Kubernetes Ingress (0) | 2024.08.20 |
5. Kubernetes Configmap (0) | 2024.08.13 |
4. Kubernetes Service (0) | 2024.08.07 |
3. Kubernetes Deployment (0) | 2024.08.07 |