220527 Today I Learned
일지
특이 사항 없음
오늘의 할일
- 220527 TIL 작성
- Kubernetes 공부
주요 키워드
K8s
ConfigMap&Secrets
- ConfigMap
- Secrets
수업 정리
시크릿(Secret)
- 컨피그맵과 유사한 키/값 저장소
- 데이터를 조금 더 안전하게 보관하기 위한 용도
- 특정 용도로 사용되는 시크릿 유형이 있음
시크릿 유형
- generic: 일반적인 시크릿의 유형. 컨피그맵과 유사한 유형
type: Opaque - docker-registry: 도커 로그인정보 저장
type: kubernetes.io/dockerconfigjson - tls: TLS 암호화를 하기 위한 키 저장소
type: kubernetes.io/tls - serviceAccount: 사용자가 임의로 지정할 수 있는 유형이 아님. 사용자 계정의 토큰 정보 저장
type: kubernetes.io/service-account-token
시크릿 리소스 생성
- 명령어를 사용하는 방법
kubectl create secret<시크릿이름> <값을 넣기="" 위한="" 내용=""> 값을>시크릿이름> - generic 타입의 시크릿 생성
생성: kubectl create secret generic mysecret –from-literal=key1=value1
확인1: kubectl describe secrets mysecret
확인2: kubectl get secrets mysecret -o yaml
- generic 타입의 시크릿 생성
- 오브젝트 파일을 사용하는 방법
시크릿으로 저장할 키의 값을 base4로 변환하여 입력apiVersion: v1 kind: Secret metadata: name: my-credential data: ID: dXNlcg== PW: UEBzc3cwcmQ=
시크릿 데이터 사용
-
환경변수 형태로 사용 (개별 키)
env: - name: ID valueFrom: secretKeyRef: name: <Secret이름> key: <Key이름>
apiVersion: v1 kind: Pod metadata: name: secret-env-pod spec: containers: - name: secret-env-container image: ubuntu command: ["sleep", "infinity"] env: - name: ID valueFrom: secretKeyRef: name: my-credential key: ID - name: PW valueFrom: secretKeyRef: name: my-credential key: PW
-
환경변수 사용 (전체 키)
envFrom: - secretRef: name: <시크릿 이름>
apiVersion: v1 kind: Pod metadata: name: secret-env-pod spec: containers: - name: secret-env-container image: ubuntu command: ["sleep", "infinity"] envFrom: - secretRef: name: my-credential
-
시크릿을 볼륨으로 사용
spec: containers: ... volumeMounts: - name: <볼륨이름> mountPath: <마운트위치> volumes: - name: <볼륨이름> secret: name: <시크릿이름>
apiVersion: v1 kind: Pod metadata: name: secret-volumemount-pod spec: containers: - name: test-container image: ubuntu command: ["sleep", "infinity"] volumeMounts: - name: mycredvol mountPath: /tmp volumes: - name: mycredvol secret: secretName: mycredfile
BASE64 Encoding
Byte: 8bit = 2^8 = 256
A-Z, a-z, 0-9, !@#$%^&*()<>?”;
ASCII = American Standard Code for Information Interchange
Byte단위로 글자를 표기 - 모든 Byte의 값을 글자로 표현하지 못함
BASE64
- 2^6 만큼의 경우의 수를 가지는 단위로 글자를 표기
- A-Z(26) + a-z(26) + 0-9(10) + ‘+’ + ‘/’ = 64개
000000(A)
000001(B)
000010(C)
…
111110(+)
111111(/)
01010101 11110000 10101010
→ 010101 011111 000010 101010
ABC → QUJD
$ echo -n ABC | base64
Leave a comment