DevOps

[DevOps] K8s - Kubernetes 란? Kubernetes 기본 명령어

차노도리 2023. 6. 19. 00:22

https://kubernetes.io/

 

Production-Grade Container Orchestration

Production-Grade Container Orchestration

kubernetes.io

 

Kubernetes

  • 컨테이너 오케스트레이션 플랫폼으로서 대규모의 애플리케이션을 관리하고 배포하기 위한 플랫폼

오케스트레이션 

  • 컨테이너 기반의 애플리케이션을 운영할 때, 애플리케이션의 배포, 확장, 로드 밸런싱, 모니터링, 장애 복구 등 다양한 작업을 효율적으로 관리하는 것

 

Kubernetes 특징

  • 컨테이너화 된 애플리케이션 구동
  • 서비스 디시크버리와 로드밸런싱 기능
  • 스토리지의 오케시트레이션 기능
  • 자동화된 배포 기능
  • 환경 변수, 스크릿 파일 등을 사용하여 애플리케이션을 구성 관리

Kubernetes 할 수 없는기능

  • 소스 코드 배포, 빌드 기능
  • 로깅, 모니터링 서비스

 

K8s - Pod

  • 애플리케이션을 위해 서로 상호 작용해야 하는 컨테이너들의 논리적 집합
  • K8s의 배포 및 실행되는 기본 실행 단위

K8s - Deployment

  • 파드의 배포 및 관리를 위한 K8s의 리소스
  • ReplicaSet을 기반으로 Pod의 복제본을 관리한다.
  • 롱링 업데이트, 롤백, 스케일링 등의 기능을 제공한다.

K8s - Services

  • Replicated된 Pods의 네트워크 노출과 로드벨런싱을 관리

 

 

K8s Minikube 설치

  • Minikube - 테스트용도나 개발용도로 간단하게 사용할수있는 K8s 버전

K8s 기본 명령어

  • 사용 가능한 노드 목록 확인
    • kubectl get nodes 
  • 사용 가능한 파드 목록 확인
    • kubectl get pods 
  • 현재 배포 중인 리소스 목록 가져오기
    • kubectl get deployments
  • 현재 사용 중인 services 목록 가져오기
    • kubectl get services
  • pod 생성
    • kubectl run [pods명] --image=[이미지명] --port=[포트번호]
  • pod 상세 정보 확인
    • kubectl describe pods [pods명]
  • pod 삭제
    • kubectl delete pod/[pods명]
  • deployment 생성
    • kubectl create deployment [deployment명] --image=[이미지명]
  • deployment Scale 변경
    • kubectl scale deployment [deployment명] --replicas=[pods수]
  • deployment 삭제
    • kubectl delete deployment.apps/[deployment명]
// 사용 가능한 노드 목록 확인
kubectl get nodes 
// 사용 가능한 파드 목록 확인
kubectl get pods 
// 현재 배포 중인 리소스 목록 가져오기
kubectl get deployments
// 현재 사용 중인 services 목록 가져오기
kubectl get services

// Nginx 서버 실행
kubectl run gugbab-nginx --image=nginx --port=80
// pod 상세 정보 확인
kubectl describe pods gugbab-nginx
// pod 삭제 삭제
kubectl delete pod/gugbab-nginx

// deployment 생성
kubectl create deployment gugbab-nginx --image=nginx
// deployment Scale 변경
kubectl scale deployment gugbab-nginx --replicas=2
// deployment 삭제
kubectl delete deployment.apps/gugbab-nginx