반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- @EnableScheduling
- K번째수
- 모던 자바 인 액션
- 기능개발
- 스택/큐
- 루씬 인 액션
- 가장 큰 수
- 코딩 테스트
- 완주하지 못한 선수
- 스프링 스케쥴러
- 해시
- 프로그래머스
- 다리를 지나는 트럭
- @Getter
- Java
- 롬복 어노테이션
- 알고리즘
- 고차원 함수
- 쿠버네티스
- @configuration
- 영속 자료구조
- kubenetes
- 검색 기능 확장
- @Setter
- 전화번호 목록
- H-index
- 정렬
- 크론 표현식
- 커링
- @Data
Archives
- Today
- Total
Today I Learned
[쿠버네티스 인 액션] 7. 컨피그맵과 시크릿 : 애플리케이션 설정 (1) 본문
728x90
7장에서 다루는 내용
- 컨테이너의 주 프로세스 변경
- 애플리케이션에 명령줄 옵션 전달
- 애플리케이션에 노출되는 환경변수 설정
- 컨피그맵으로 애플리케이션 설정
- 시크릿으로 민감한 정보 전달
7.1 컨테이너화된 애플리케이션 설정
- 애플리케이션에 필요한 설정을 외부에서 전달하는 경우 명령줄 인수 또는 설정 파일을 사용하거나 환경변수를 사용한다.
- 도커 컨테이너 내부에 있는 설정 파일을 사용하는 것은 까다롭기 때문에(설정 파일을 컨테이너 이미지 안에 포함하거나 파일이 포함돼 있는 볼륨을 컨테이너에 마운트) 주로 환경변수가 주로 사용된다.
- 설정 데이터를 저장하는 쿠버네티스 리소스인 컨피그맵을 사용하면 최상위 레벨의 쿠버네티스 리소스에 저장하고 이를 깃 저장소 등에 저장할 수 있다.
7.2 컨테이너에 명령줄 인자 전달
7.2.1 도커에서 명령어와 인자 전달
- 컨테이너에서 실행하는 전체 명령은 명령어와 인자로 구성된다.
ENTRYPOTION와 CMD 이해
- ENTRYPOINT는 컨테이너가 시작될 때 호출될 명령어를 정의한다.
- CMD는 ENTRYPOINT에 전달되는 인자를 정의한다.
$docker run <image>
$docker run <image> <arguments>
shell과 exec 형식 간의 차이점
- 두 명령어는 두 가지 서로 다른 형식을 지원한다.
- shll 형식 - 예 : ENTRYPOINT node app.js
- exec 형식 - 예: ENTRYPOIONT ["node", "app.js"]
- 차이점은 내부에서 정의된 명령을 shell로 호출하는지 여부다.
- exec 형식을 사용하면 다음과 같이 컨테이너의 프로세스 목록이 보여진다.
- shell 형식을 사용할 경우에는 다음과 같다.
fortune 이미지에서 간격을 설정할 수 있도록 만들기
- fortune 스크립트와 이미지에서 반복하는 주기를 변경하도록 수정해보자. INTERNAL 변수를 추가하고 첫 번째 명령줄 인자의 값으로 초기화한다.
- Dockfile을 수정해 exec 버전 ENTRYPOINT 명령을 사용하고 기본 간격으로 10초를 CMD 명령으로 지정한다.
- 이제 이미지를 빌드하고 도커 허브에 푸시할 수 있다.
- 로컬에서 도커로 이미지를 실행해 테스트할 수 있다.
- 또한 기본 sleep 시간 간격을 인자로 전달해 재정의할 수 있다.
7.2.2 쿠버네티스에서 명령과 인자 재정의
- 컨테이너 정의 안에 command와 args 속성을 지정해서 ENTRYPOINT와 CMD를 재정의할 수 있다.
사용자 정의 주기로 fortune 파드 실행
- 컨테이너 정의에 args 배열을 추가했다. 파드를 생성하고 실행하면 배열 값들이 컨테이너에 명령줄 인자로 전달된다.
- 여러 인자를 가졌을 때는 다음 표기법을 사용할 수 있다.
args:
- foo
- bar
- "15"
7.3 컨테이너의 환경변수 설정
- 쿠버네티스는 파드의 각 컨테이너를 위한 환경변수 리스트를 지정할 수 있다.
환경변수로 fortune 이미지 안에 간격을 설정할 수 있도록 만들기
- INTERVAL 변수를 초기화하는 행을 제거한다.
7.3.1 컨테이너 정의에 환경변수 지정
- 환경변수를 컨테이너 정의에 포함해 스크립트에 전달할 수 있다.
- 환경변수는 파드 레벨이 아닌 컨테이너 정의 안에 설정한다.
7.3.2 변수값에서 다른 환경변수 참조
- 환경변수 고정값 외에, $(VAR) 구문을 사용해 이미 정의된 환경변수나 기타 기존 변수를 참조할 수도 있다.
728x90
'쿠버네티스' 카테고리의 다른 글
[쿠버네티스 인 액션] 7. 컨피그맵과 시크릿 : 애플리케이션 설정 (3) (0) | 2022.11.17 |
---|---|
[쿠버네티스 인 액션] 7. 컨피그맵과 시크릿 : 애플리케이션 설정 (2) (0) | 2022.11.07 |
[쿠버네티스 인 액션] 6. 볼륨: 컨테이너에 디스크 스토리지 연결 (2) (0) | 2022.10.20 |
[쿠버네티스 인 액션] 6. 볼륨: 컨테이너에 디스크 스토리지 연결 (1) (0) | 2022.10.07 |
[쿠버네티스 인 액션] 5. 서비스: 클라이언트가 파드를 검색하고 통신을 가능하게 함 (3) (0) | 2022.09.30 |
Comments