-
k8s Secret 적용 및 Containers 에서 사용하기Computer Science/k8s 2023. 6. 30. 19:52
k8s Secret 종류
1. Opaque
일반적인 key-value 형태의 Secret 이다.
데이터는 base64로 인코딩하여 등록하여야 하며 주로 패스워트, 토큰, 인증 정보 값들을 등록한다.
2. service-acount-token클러스터 내에서 서비스 계정 인증에 사용되는 정보를 저장하기 위한 유형이다.
ServiceAccount 마다 접근할 수 있는 권한, 토큰 등을 설정하게 된다.
3. tlsTLS 인증서를 Secret으로 관리할 수 있다.
보통 Service가 가져와 https 통신을 한다.
Opaque 예시
#secret.yaml apiVersion: v1 kind: Secret metadata: name: <secret-name> namespace: <your-namespace> type: Opaque data: secret-key1: <your-secret-key encoding by base64> secret-key2: <your-secret-key encoding by base64>
해당 secret 의 이름과 사용가능한 namespace를 입력해준다.
내가 저장할 secret의 key, value를 입력하는데 주의할 점은 base64로 인코딩하여 저장하여야한다.
예를들어 1234를 저장하려고한다면
MTIzNAo=
위의 값을 입력해야한다.Linux 의 경우 아래의 명령어로 인코딩이 가능하며 -n 옵션은 엔터를 제거해서 인코딩해준다.
echo -n <인코딩할 값> | base64
아래의 명령어로 디코딩을 하여 재확인할 수 있다.
echo <디코딩할 값> | base64 -d
이렇게 secret 파일을 생성한뒤 적용해줍니다.
kubectl apply -f ./secret.yaml
적용이 되었는지 확인합니다.
kubectl get secret -n <your-namespace> -o yaml
Containers에서 가져와 사용하기
containers: - name: <container-name> image: <image-url> imagePullPolicy: <image-policy> ports: - containerPort: <your-port> env: - name: <your-env-name> valueFrom: secretKeyRef: name: <secret-name> key: secret-key1 - name: <your-env-name2> valueFrom: secretKeyRef: name: <secret-name> key: secret-key2
위처럼 valueFrom을 이용하여 secretKeyRef에서 위에서 설정한 secretname과 key를 이용하여 가져와 사용합니다.
'Computer Science > k8s' 카테고리의 다른 글
kubeadm을 통한 kubernetes(1.27) EC2에 설치하기 (0) 2023.07.31 k8s 설치 방식 종류 (0) 2023.07.28 Pod - readiness, liveness, startup probe (0) 2023.03.26 Pod의 Lifecycle (0) 2023.03.26 k8s service (0) 2023.03.04