ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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. tls

    TLS 인증서를 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
Designed by Tistory.