* 아래 강의 학습 중📚
데브옵스(DevOps)를 위한 쿠버네티스 마스터 - 인프런 | 강의
컨테이너 기반 오픈 소스 가상화 프로젝트인 "쿠버네티스"를 이용한 컨테이너 환경의 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 활용하는 방법을 입문부터 활용까지 다룹니다., [
www.inflearn.com
쿠버네티스란
구글이 만든 오픈소스 시스템
컨테이너 배포, 관리 도구
구글 드라이브와 같이 쿠버네티스가 컨테이너를 관리해준다고 보면 됨
쿠버네티스 구성
마스터노드와 워커 노드로 구성됨
마스터노드는 관리, 통제, 워커노드는 애플리케이션 실행 담당
pod(포드, 파드, 팟)
- 컨테이너의 공동 배포된 그룹
- 단일 노드에서만 생성됨(두개의 노드에 걸쳐서 생성되지 않는다)
- 파드 권장 구성
- 하나의 컨테이너에 두개의 프로세스가 들어가는 것 X
- 하나의 파드에 두개의 컨테이너 들어가는 것 X
- 하나의 파드에 하나의 컨테이너에 하나의 프로세스로 구성하기

- 파드 정의 구성 요소
- apiVersion : 쿠버네티스 api 버전
- kind : 어떤 리소스 유형인지
- 메타데이터 : 파드와 관련된 이름, 네임스페이스, 라벨 등
- 스펙 : 컨테이너, 볼륨 정보
- 상태 : 파드의 상태, 각 컨테이너의 설명 및 상태, 파드 내부의 IP 등
GKE 구축
- GCP 프로젝트 생성
- 쿠버네티스 엔진 API 사용 클릭(비용 X)

- 클러스터 만들기(클릭 3번이면 된다.)
- 클러스터 모드는 standard로 선택
- autopilot는 서버리스 방식으로 컨테이너당 비용 청구, standard는 가상머신 대여로 가상머신당 비용 청구됨
GKE 클러스터 접속
- cloud shell 활성화
- cloud shell은 가상머신이고 클러스터에 원격 접속하는 것임, cloud shell과 클러스터 연결된 거 아님.
- tomcat 컨테이너 5대 배포
kubectl create deploy tc --image=consol/tomcat-7.0 --replicas=5
- 위 명령어로 배포는 됐지만 실제 서비스 되고 있는 것은 아님, 외부에 노출시키기 위해서 포트포워딩을 해줘야 함
kubectl expose deploy tc --type=LoadBalancer --port=80 --target-port=8080
- pod와 서비스 정보 조회
kubectl get pods,svc
- pod의 상세 정보 조회(어느 노드에 배치되었는지,,)
kubectl get pods -owide