[Kubernetes]Kubernetes

ksp7331·2024년 1월 25일

Kubernetes란?

컨테이너화된 애플리케이션을 효과적으로 배포, 확장, 관리하기 위한 오픈 소스 플랫폼이다.

Kubernetes의 특징에는 다음과 같은 것들이 있다.

  • 자동화된 배포: 애플리케이션을 컨테이너로 패키징하고, 이를 자동으로 배포하고 스케일링하는 기능을 제공한다.
  • 로드 밸런싱 사용 가능: 트래픽의 분산을 통해 서비스의 안정성을 유지할 수 있다.
  • 자동 복구: 노드나 컨테이너의 장애 시 자동으로 해당 리소스를 복구하여 시스템의 높은 가용성을 보장한다.
  • 선언적 구성: YAML 파일을 사용하여 애플리케이션의 상태 및 구성을 선언적으로 정의하고, Kubernetes를 이용해 이를 원하는 상태로 조정한다.

이러한 특징들 덕분에 Kubernetes는 개발자와 운영팀에게 확장 가능하고 안정적인 서비스 운영을 제공한다.

Kubernetes 설치

Kubernetes의 설치방법은 여러가지가 있으며, 아래는 그 예시들이다.

  1. Minikube를 사용한 로컬 설치:

    • 목적: 로컬 환경에서 간단한 Kubernetes 클러스터를 띄워 테스트 및 개발용으로 사용.
    • 장점: 빠르게 설치하고 사용 가능. 로컬 환경에서 편리하게 테스트 가능.
    • 단점: 실제 운영 환경과는 다르며, 대규모 애플리케이션 배포에는 적합하지 않음.

    minikube 참고문서

  2. Kubeadm을 사용한 클러스터 구축:

    • 목적: On-premise 또는 가상 머신에서 실제 Kubernetes 클러스터를 설치.
    • 장점: 커스터마이징이 가능하며, 프로덕션 환경에 적합.
    • 단점: 수동으로 설정해야 하므로 초기 구성에 시간이 소요됨.
  3. Managed Kubernetes Services (예: AWS EKS, Google GKE, Azure AKS):

    • 목적: 클라우드 제공업체에서 제공하는 Kubernetes 서비스를 활용하여 손쉽게 클러스터 구축.
    • 장점: 관리 및 업데이트에 대한 부담이 적음. 스케일링 및 로드 밸런싱이 쉬움.
    • 단점: 클라우드 벤더에 종속적이며, 비용이 발생.

Kubectl

Kubernetes를 CLI로 조작할 수 있게 해주는 프로그램이다.

명령어

  • kubectl apply -f

    kubectl apply -f [파일명 혹은 URL]

    쿠버네티스의 상태를 설정하는 명령어이다. yaml 파일을 이용해 자원을 생성한다. 링크도 사용 가능하다.
  • kubectl get

    kubectl get [TYPE]

    쿠버네티스의 리소스의 목록을 확인하는 명령어이다.
  • kubectl describe

    kubectl describe [TYPE]/[NAME]

    쿠버네티스에 선언된 리소스의 상세한 상태를 확인하는 명령어이다.
  • kubectl delete

    kubectl delete [TYPE]/[NAME]

    쿠버네티스에 선언된 리소스를 제거하는 명령어이다.
  • kubectl logs kubectl logs [POD_NAME] 컨테이너의 로그를 확인하는 명령어이다.
  • kubectl exec

    kubectl exec [-it] [POD_NAME] -- [COMMAND]

    kubectl exec [-it] [POD_NAME] --container [CONTAINER_NAME] -- [COMMAND]

    컨테이너에 명령어를 전달하는 명령어이다.

0개의 댓글