인프라/시스템 구축

[ EKS ] Secret, ConfigMap 설정

김붕어87 2023. 4. 4. 11:49
반응형
개요
Secret과 Configmap 차이점

Secret은 보안과 관련된 값을 저장하는 기능이다.
패스워드, Oauth토큰, ssh key, 등
Secret에 데이터를 저장할 때 Base64 인코딩해서 넣어야한다.

ConfigMap은 기밀 데이터가 아닌 일반 데이터 및 환경변수등을 저장하는 기능이다.

 

 

ConfigMap 설정

 

1. ConfigMap 생성

  • config 파일과, credentials 파일 생성하는 ConfigMap
vi configmap.yaml

apiVersion: v1
data:
  config: |
    [default]
    region=ap-southeast-1
    output=text
  credentials: |
    [default]
    aws_access_key_id = AKIxxxxxxxxx
    aws_secret_access_key = VMxxxxxxxxxxx
kind: ConfigMap
metadata:
  name: startstop-node
  namespace: infra

 

2. Deployment에 ConfigMap 연결

  • configmap volumes을 root/.aws 폴더 밑에 마운트
vi deployment.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: start-node1
spec:
  selector:
    matchLabels:
      run: start-node1
  replicas: 1
  template:
    metadata:
      labels:
        run: start-node1
    spec:
      containers:
      - name: start-node1
        image: brentley/awscli
        command:
          - "aws"
          - "eks"
          - "describe-nodegroup"
          - "--cluster-name"
          - "comdev-eks"
          - "--nodegroup-name"
          - "comdev-eks-infra-node-group"
        volumeMounts:
          - name: aws
            mountPath: root/.aws
            readOnly: true
      volumes:
        - name: aws
          configMap:
            name: startstop-node

 

 

 

 


Secret 설정

 

1. base64 인코딩 작업

  • Secret에 data의 내용은 base64으로 인코딩된 내용을 넣어야합니다.
  • config 파일 내용을 base64 인코딩 작업
1. config 파일 생성
vi config

[default]
region=ap-southeast-1
output=text

2. config 파일 base64 인코딩
cat config |base64
123xxxxxxxxxxxxxxxxxxxxxxx

 

 

  • credentials 파일 내용을 base64 인코딩 작업
1. credentials 파일 생성
vi credentials

[default]
aws_access_key_id = AKxxxxxxxxx
aws_secret_access_key = VM0oxxxxxx


2. credentials 파일 base64 인코딩
cat credentials |base64
456xxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

2. Secret 생성

  • base64 인코딩 된 내용을 data 필드에 값 넣기 
vi secret.yaml

apiVersion: v1
data:
  config: 123xxxxxxxxxxxxxxxxxxxxxxx
  credentials: 456xxxxxxxxxxxxxxxxxxxxxxxxxxxx
kind: Secret
metadata:
  name: startstop-node
  namespace: infra
type: Opaque

 

 

3. deployment에 Secret 연결

  • Secret volumes을 root/.aws 폴더 밑에 마운트
apiVersion: apps/v1
kind: Deployment
metadata:
  name: start-node1
spec:
  selector:
    matchLabels:
      run: start-node1
  replicas: 1
  template:
    metadata:
      labels:
        run: start-node1
    spec:
      containers:
      - name: start-node1
        image: brentley/awscli
        command:
          - "aws"
          - "eks"
          - "describe-nodegroup"
          - "--cluster-name"
          - "comdev-eks"
          - "--nodegroup-name"
          - "comdev-eks-infra-node-group"
        volumeMounts:
        - mountPath: /root/.aws
          name: startstop-node
      volumes:
      - name: startstop-node
        secret:
          secretName: startstop-node
 

 

반응형

'인프라 > 시스템 구축' 카테고리의 다른 글

[ EKS ] VPA  (0) 2023.04.06
[ EKS ] HPA  (0) 2023.04.04
[ EKS ] ConfigMap, aws-auth 설정  (0) 2023.04.04
[ EKS ] Limit, Request 설정  (0) 2023.04.04
[ EKS ] drain, cordon  (0) 2023.04.04