푸잉이의 기술블로그

[Day8] Certified Kubernetes Administrator (CKA) with Practice Tests 본문

IT/Kubernetes

[Day8] Certified Kubernetes Administrator (CKA) with Practice Tests

data고수 2023. 1. 11. 03:25

<Configure applications-응용프로그램 구성>

  • Configuring command and argumenets on applications
  • Configuring Environment variables
  • Configuring secrets

95강. Commands

Application commands

가상 머신과 달리 컨테이너는 운영 체제를 호스팅 X.

컨테이너는 웹 서버, 애플리케이션 서버 또는 DB의 인스턴스를 호스팅하는 것과 같은 특정 테스크 or 프로세스를 실행 or 일부 계산 또는 분석 수행

 

ubuntu에선 default command = bash

 

<container 시작 command>

docker run command에 command를 추가하는 것

-> Image에 지정된 기본 명령을 override (재정의)하는 것

 

96강. Commands and Arugments

 

*Docker file에 CMD와 ENTRYPOINT 옵션을 사용하면 Docker 이미지를 실행할 때 사용자가 입력한 특정 명령어를 실행할 수 있음 

  • kubernetes에서도 docker이미지를 사용하여 pod를 생성할 때, command와 args필드 설정을 통해 실행 가능 

*Dockerfile CMD란

  • 컨테이너가 실행될 때, 특정 명령어를 실행할 수 있도록 해주는 기능
  • CMD 옵션은 배열로 구분, 띄어쓰기 또는 대괄호 안에서 JSON 배열 형태로 구분
  • CMD=args

*Dockerfile Entrypoint란 

  • CMD와 동일하지만 명령어가 반드시 실행된다는 차이점이 있음
  • CMD 옵션과 동일하게 배열로 구분, 띄어쓰기 또는 대괄호 안에서 JSON 배열 형태로 구분
  • container 실행시 무조건 실행됨

*차이점

  • CMD는 Docker 실행할 때 파라미터를 변경하여 실행 가능 
  • EntryPoint는 docker를 실행할 때 파라미터를 변경할 수 없음

99강. Configure Environment Variables in applications

<ENV Variables in kubernetes>

ENV: 배열, 모든 ENV Property 아래에 모든 아이템들이 dash로 표현.

 

100강. Configuring ConfigMaps in Applications

<ConfigMaps>

*애플리케이션을 배포하다 보면, 환경에 따라서 다른 설정값을 사용하는 경우 존재

ex) db의 ip, api를 호출하기 위한 api key, 개발/운영에 따른 디버그 모드, 환경설정 파일들이 있는데, 애플리케이션 이미지는 같지만, 이런 환경변수가 차이나는 경우 매번 다른 컨테이너 이미지를 만드는 것은 불편

환경변수나 설정값들을 변수로 관리해서 pod가 생성될 때 이 값을 넣는 방법 --> Configmap과 secret

 

ConfigMap

  • 설정 정보를 저장해놓는 일종의 저장소 
  • key/value 형식으로 저장 
  • 생성방법: 문자, 파일 

1. create configMap

2. Inject into Pod

 

env property is list

103강. Configure Secrets in applications

비밀번호, SSH 인증, TLS Secret과 같은 보안 정보를 관리하는 방법

ConfigMap과 차이점은 데이터가 base64로 저장된다는 점

 

 

declarative접근으로 secret을 생성하면, secret value는 encoded format으로 반드시 만들기

 

*Secret은 암호화되지 않음

secret은 보안 정보를 다루기 때문에 당연히 암호화될 거라고 생각할 수 있지만, 실제로는 그대로 저장됨.

*etcd에 접근이 가능하다면 누구나 저장된 secret을 확인할 수 있음 

-> rest하는 동안엔 encryption 가능

*동일한 namespsace에 pods/deployments를 생성하는 누구나 secret에 접근할 수 있음

*Third-party secretes store proivder 고려 

 

104강. A note about Secrets!

Plain text로 저장하는 것보단 secret (64bit)로 바꾸는 게 더 안전하지만 그렇게 안전하지는 않다. 

 

 

 

 

 

참고:

https://kim-dragon.tistory.com/69

 

[CKA독학]docker CMD/ENTRYPOINT 의 차이와 kubernetes command/args 관계

intro dockerfile에 CMD와 ENTRYPOINT옵션을 사용하면 docker이미지를 실행할때 사용자가 입력한 특정 명령어를 실행할 수 있습니다. 또한 kubernetes에서도 docker 이미지를 사용하여 pod를 생성할때 commnad와 ar

kim-dragon.tistory.com

https://bcho.tistory.com/1267

 

 쿠버네티스 #11 - ConfigMap

쿠버네티스 #11ConfigMap 조대협 (http://bcho.tistory.com) 애플리케이션을 배포하다 보면, 환경에 따라서 다른 설정값을 사용하는 경우가 있다. 예를 들어, 데이타베이스의 IP, API를 호출하기 위한 API KEY,

bcho.tistory.com

https://subicura.com/k8s/guide/secret.html

 

Secret

쿠버네티스에서 비밀번호, SSH 인증, TLS Secret과 같은 보안 정보를 관리하는 방법을 알아봅니다.

subicura.com

 

Comments