쿠버네티스 인 엑션 3장

MinSeoCho·2021년 8월 29일
0

3장 중간 정리

파드란?

1개 이상의 컨테이너를 포함하고 고, 배포하고 운영되는 단위 그리고 1파드는 1개의 노드(워커노드)에 속한다. 여러 프로세스를 프로세스 별로 컨테이너에 담은다음 그 컨테이너들을 함께 묶을 상위 단위가 필요하여 파드를 만든다.

파드는 동일한 네트워크 네임스페이스에서 실행되어 동이랗ㄴ ip 주소 와 포트 공간을 공유한다.

그리고 될수 있으면 꼭 필요한 애들끼리만 묶어서 한 파드에 넣어야 한다.

프론트엔드는 프론트엔드 파드에 -> 그래야 개별 확장이 가능하다.

파드를 정의할땐 yaml파일로 하는게 편하다.

meatdata, Spec,status이렇게 세가지 파트로 구분된다.

apiVersion : v1  #api버전
kind: Pod 	#오브젝트 종류가 pod
metatdata:
	name: kubia-maual # 파드 이름
spec:
	containers:
	-image: minmin0902/kubia # 컨테이너를 만드는 컨테이너 이미지
	name: kubia
	ports:
	-containerPort: 8080 #에플리케이션이 수신하는 포트
	protocol: TCP

만드는 방법

kubectl create -f kubia-manual.yaml 

실행중인 파드의 ㅓㄴ체 정의
kubectl get po kubia-manual -o yaml(or json)

파드목록 확인
kubectl get pods

컨테이너는 런타임 과 관련된 로그를 stream을 파일로 전달
docker logs 컨테이너 id를 통해서 확인

파드로그(컨테이너 로그) 눈
kubectl log 컨테이너 이름

만약 여러 컨테이너를 포함한 파드인경우는
kubectl logs 파드 이름 -c 컨테이너 이름
-> 이는 현존하는 파드 컨테이너 로그만 갖고 ㅇㄹ 수 있다.

여기서 확인하는 방법(파드의 실제동작을 확인하고 싶지만 서비스는 만들지 않고 하는 방법은)은 포트 포워딩
kubectl port-forword 파드 이름 로컬포트 : 파드의 포트(컨테이너 설정한 포트)
kubectl port-forword kubia-manual 8888:8080


이는 curl localhost:8888이렇게 접근이 간으한다.

그리고 파드가 증가하니까 부분 집합이 필요해지는데 이걸 레이블로 구분한다.

규칙으론 app은 파드가 속한 애플리케이션이고
rel:  파드에서 실행중인 애플맄이션이 안정인지 베타 혹은 카나리 릴리즈인ㄷ지 확인한다.

그리고 이는
kind: Pod 	
metatdata:
	name: kubia-maual
	labels:  # 레이블 2개를 파드에 붙였다
	creation_method: manual
	env: prod
spec:
	containers:
	-image: minmin0902/kubia 
	name: kubia
	ports:
	-containerPort: 8080
	protocol: TCP

그리고 레이블은

kubectl get po --show-labels
이렇게 레이블을 확인 할 수 있다.

kubectl get po -L creation_method,	env
각 레이블을 -L 스위치로 지정해서 레이블을 자체열에 표시할 수 있따.

레이블을 추가하는 방법은
kubectl label po 파드 이름  추가할 레이블(ex) (creation_method =manual)

변경한느 방법은
kubectl label po 파드 이름  변경할 레이블 --overwrite

레이블 셀렉터를 통해서 분류를 할 수 있다.

profile
열심히 하자..!

0개의 댓글