kubernets

 

이번 멀티 컨테이너 파드에 대해서 정리해보도록 한다.

 

사실 이전 강의들을 봤으면 쿠버네티스 기능상 특별히 다를 것 없는 설명이었는데,

매니페스트 파일 안에 여러 파드를 설정할 수 있다는 것과 파드 컨테이너의 다양한 디자인 패턴에 대한 설명이었다.

 

강의에선 사이드카(Side-car), 앰배서더 (Ambassador), 어댑터(Adapter) 컨테이너에 대한 개념을 추가로 설명했다.

 

사이드카(Side-car)

sidecar 컨테이너

  • 웹서버를 보조해주는 로깅 에이전트에 해당하며, 로깅 에이전트는 로그 서버로 로그를 보낸다.

 

어댑터(Adapter)

adapter 컨테이너

  • 다양한 웹서버의 로그를 공통 형식으로 바꿔 로그 서버로 보내는 역할을 한다.

 

앰배서더 (Ambassador)

ambassador 컨테이너

  • Dev, Test, Prod 등 다양한 환경의 DB 로 데이터를 보낼때 사용한다. 한마디로 프록시 서버의 역할을 한다고 한다.

 

이렇게 3가지를 간단하게 설명했다~

강의 내용은 5분 짜리 였지만.. 처음에 뭔 소리를 하나 싶어서 번역기도 돌려보고 검색도 해봤다.

 

멀티 컨테이너 설정은 다음과 같이 containers 안에 여러개의 image 를 둔다.

 

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: yellow
  name: yellow
spec:
  containers:
  - image: busybox
    name: lemon
    command:
    - "sleep"
    - "1000"

  - image: redis
    name: gold

 

실습으로는 사이드카 컨테이너를 생성하는 작업을 수행했다.

해당 파드 컨테이너 안에서 명령어 실행하는 명령어가 좀 헷갈린다.

 

# -n [네임스페이스]

kubectl -n elastic-stack describe pods app

kubectl -n elastic-stack get pods app -o yaml

kubectl -n elastic-stack logs kibana

kubectl -n elastic-stack exec -it app -- cat /log/app.log

 

 

이번 실습에서는 네임스페이스가 키포인트였다.

다음 실습땐 네임스페이스도 변수로 등록해놓아야겠다.

 

export ns=default
alias k='kubectl -n $ns'
alias kp='k get pods'
export do="--dry-run=client -o yaml"

alias kcmd='k run tmp --restart=Never --rm -i --image=nginx:alpine -- curl -m 5'
export now="--force --grace-period 0"

 

kibana 에서 로그가 생성된다.

 

생각보다 실습 마치기까지 오래 걸렸다..;

 

다음은 Section 5 : Observability