반응형
[따배쿠] 쿠버네티스 시리즈 강의를 보고 배운 내용을 정리한 글입니다.
https://www.youtube.com/playlist?list=PLApuRlvrZKohaBHvXAOhUD-RxD0uQ3z0c
기존 멀티 호스트 도커 플랫폼에 단점
하나의 컴퓨터에 여러 개의 컨테이너를 관리해야 하는데, 수 십 개, 수 백개가 될 수도 있는 마이크로 서비스 환경에서
해당 컨테이너들을 일일히 관리하는 것은 비효율적입니다.
그래서 각 컴퓨팅 환경에서 컨테이너를 생성 및 관리해 주는 컨테이너 오케스트레이션 기능을 해주는 쿠버네티스 기술을 사용할 수 있습니다.
Container orchestration (컨테이너 오케스트레이션)
컨테이너 오케스트레이션 방법은 마스터 노드(제어 노드)가 다른 워커 노드들을 관리하는 구조입니다.
ex) 워커 노드1에 문제가 있을 경우 해당 컨테이너의 노드 애플리케이션을 워커 노드 2에 옮겨서 실행시켜 줍니다.
컨테이너 계층 구조
Linux 운영체제 컴퓨터에 Docker 엔진이 설치되어 있어야 되고, 그 위에 오케스트레이션 기능인 Kubernetes를 설치하여 컨테이너들을 관리합니다.
Kubernetes (k83)
간단히, 도커 플랫폼의 컨테이너를 스케줄링, 관리, 운영, 스케일링 등 제어를 해줍니다.
컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템
선언적 API
- Control Plane(마스터 노드)에 Request를 API에 보내면, 쿠버네티스가 알아서 워커 노드에 설치 및 실행을 해줍니다.
- 이를 통해 관리하기 힘든 컨테이너 환경을 제어해줍니다.
Kubernetes 기본 명령어
kubectl [command] [type] [name] [flags]
- command : 자원에 실행할 명령어 (create, get, delete, edit..)
- type : 자원의 타입, 종류 (node, pod, service)
- name : 자원의 이름 (webserver, custom name)
- flags : 부가적으로 설정할 옵션 (선택적 / —help, -o …)
kubectl 사용법 명령어로 파악하기
# 제공하는 리소스와 약어를 알 수 있음
kubectl api-resources
kubectl --help
kubectl logs --help # logs 명령어 사용법 보기
실행중인 노드 정보 확인하기 & 세부 정보 확인
kubectl get nodes
kubectl get nodes -o wide
kubectl describe node master.example.com
Kubernetes로 Pod 실행하기
# pod install & run
# webserver pod를 하나 설치해줘
kubectl run webserver --image=nginx:1.14 --port 80
# pod 정보 보기
kubectl get pods -o wide
kubectl get pods webserver
# yaml 파일로 설치 및 실행
kubectl create -f webserver-pod.yaml
- run : command로 pod 설치 및 실행
- create : 애플리케이션을 설정한 yaml 파일로 pod 설치 및 실행
실행 중인 컨테이너 환경 들어가기 - exec
kubectl exec webserver -it -- /bin/bash
포트포워딩 설정
# 포트포워딩 설정
kubectl port-forward webserver 8080:80
동작중인 API Resources 수정하기
# 동작중인 API Resources를 수정함 (mainui)
kubectl edit deployment.apps mainui
--dry-run & -o yaml로 사용 가능한지 확인하고 yaml 형태로 출력하기
kubectl run webserver --image=nginx:1.14 --port 80 --dry-run -o yaml
- --dry-run 사용가능한지 확인
- -o yaml yaml 형태로 정보 출력
설치한 Pod 삭제하기
# 설치한 pod 삭제
kubectl delete pod webserver
# 실행중인 모든 pod 삭제
kubectl delete pods --all
반응형