쿠버네티스 설치 가이드


서론


쿠버네티스(Kubernetes)는 현대 소프트웨어 개발과 운영에서 필수적인 도구로 자리 잡고 있습니다. 컨테이너화된 애플리케이션의 배포, 확장 및 관리를 자동화하여 개발자와 운영팀 모두에게 큰 이점을 제공합니다. 이 포스팅에서는 로컬 환경과 클라우드 환경에 쿠버네티스를 설치하는 방법을 단계별로 자세히 설명합니다. 초보자도 쉽게 따라할 수 있도록 모든 단계를 상세히 설명하며, 필요한 용어도 함께 소개합니다.


본론


로컬 환경에 쿠버네티스 설치


로컬 환경에서 쿠버네티스를 설치하는 가장 쉬운 방법은 MinikubeDocker Desktop을 사용하는 것입니다. Minikube는 로컬 머신에서 쿠버네티스 클러스터를 쉽게 실행할 수 있도록 도와주는 도구입니다.


Minikube 설치


Minikube는 가상 머신 내에서 쿠버네티스 클러스터를 실행합니다. 다음은 Minikube를 설치하는 방법입니다.


  1. Minikube 설치 전 요구 사항 확인
    • 가상화 기술(Virtualization)이 활성화된 시스템 (Windows, macOS, Linux 모두 가능)
    • kubectl 명령어 설치 (쿠버네티스를 제어하는 CLI 도구)

  2. Minikube 설치
    • Minikube 공식 사이트에서 운영 체제에 맞는 설치 파일을 다운로드하고 설치합니다.
    • 설치 후, 터미널에서 다음 명령어를 실행하여 Minikube를 시작합니다.
      minikube start
      
    • 설치가 완료되면 다음 명령어로 쿠버네티스 클러스터 상태를 확인합니다.
      kubectl get nodes
      

Docker Desktop 설치


Docker Desktop은 로컬 환경에서 쿠버네티스를 실행할 수 있는 또 다른 방법입니다. Docker Desktop에는 Docker와 함께 쿠버네티스가 포함되어 있어 간편하게 사용할 수 있습니다.


  1. Docker Desktop 설치 전 요구 사항 확인
    • Windows 10 (Pro 이상) 또는 macOS 10.13 이상
    • 가상화 기술(Virtualization)이 활성화된 시스템

  2. Docker Desktop 설치
    • Docker 공식 사이트에서 Docker Desktop을 다운로드하고 설치합니다.
    • 설치 후, Docker Desktop을 실행하고 설정(Settings)에서 쿠버네티스를 활성화합니다.
      Docker Desktop -> Settings -> Kubernetes -> Enable Kubernetes 체크박스 선택
      
    • 쿠버네티스가 활성화되면, 터미널에서 다음 명령어로 클러스터 상태를 확인합니다.
      kubectl get nodes
      

클라우드 환경에 쿠버네티스 설치


클라우드 환경에서 쿠버네티스를 설치하는 가장 일반적인 방법은 AWS, GCP, Azure 등의 클라우드 서비스 제공 업체에서 관리형 쿠버네티스 서비스를 이용하는 것입니다. 여기서는 Google Cloud Platform(GCP)과 Amazon Web Services(AWS)에서 쿠버네티스를 설치하는 방법을 설명합니다.


GKE (Google Kubernetes Engine) 설치


GKE는 Google Cloud에서 제공하는 관리형 쿠버네티스 서비스입니다. GKE를 통해 손쉽게 쿠버네티스 클러스터를 생성하고 관리할 수 있습니다.


  1. GCP 계정 생성 및 프로젝트 설정
    • Google Cloud Platform에서 계정을 생성하고 로그인합니다.
    • 새로운 프로젝트를 생성합니다.

  2. GKE API 활성화
    • GCP 콘솔에서 Kubernetes Engine API를 활성화합니다.
      GCP Console -> API & Services -> Enable APIs and Services -> Kubernetes Engine API 검색 후 활성화
      

  3. gcloud CLI 설치
    • gcloud는 GCP 리소스를 관리하는 CLI 도구입니다.
    • gcloud SDK 설치 페이지에서 운영 체제에 맞는 SDK를 다운로드하고 설치합니다.
    • 설치 후, 터미널에서 다음 명령어를 실행하여 gcloud를 초기화합니다.
      gcloud init
      

  4. GKE 클러스터 생성
    • 다음 명령어를 사용하여 GKE 클러스터를 생성합니다.
      gcloud container clusters create my-cluster --zone us-central1-a
      
    • 클러스터가 생성되면 kubectl 명령어를 사용하여 클러스터에 연결합니다.
      gcloud container clusters get-credentials my-cluster --zone us-central1-a
      

  5. 클러스터 상태 확인
    • 다음 명령어를 사용하여 클러스터 상태를 확인합니다.
      kubectl get nodes
      

EKS (Elastic Kubernetes Service) 설치


EKS는 AWS에서 제공하는 관리형 쿠버네티스 서비스입니다. EKS를 통해 안정적이고 확장 가능한 쿠버네티스 클러스터를 쉽게 운영할 수 있습니다.


  1. AWS 계정 생성 및 IAM 역할 설정
    • Amazon Web Services에서 계정을 생성하고 로그인합니다.
    • IAM(Identity and Access Management)에서 EKS를 관리할 수 있는 역할을 생성합니다.

  2. AWS CLI 설치
    • AWS CLI 설치 페이지에서 운영 체제에 맞는 CLI를 다운로드하고 설치합니다.
    • 설치 후, 터미널에서 다음 명령어를 실행하여 AWS CLI를 설정합니다.
      aws configure
      

  3. eksctl 설치
    • eksctl은 EKS 클러스터를 쉽게 생성하고 관리할 수 있는 CLI 도구입니다.
    • eksctl 설치 페이지에서 설치 방법을 확인하고 설치합니다.

  4. EKS 클러스터 생성
    • 다음 명령어를 사용하여 EKS 클러스터를 생성합니다.
      eksctl create cluster --name my-cluster --region us-west-2
      
    • 클러스터가 생성되면 kubectl 명령어를 사용하여 클러스터에 연결합니다.
      aws eks --region us-west-2 update-kubeconfig --name my-cluster
      

  5. 클러스터 상태 확인
    • 다음 명령어를 사용하여 클러스터 상태를 확인합니다.
      kubectl get nodes
      

추가 설정 및 관리


쿠버네티스 클러스터를 설치한 후에는 다양한 추가 설정과 관리를 통해 클러스터를 최적화할 수 있습니다. 다음은 몇 가지 중요한 설정과 관리 방법입니다.


네트워크 설정


쿠버네티스는 다양한 네트워크 설정을 지원합니다. 클러스터 내의 파드 간 통신을 위해 네트워크 플러그인(CNI)을 설정할 수 있습니다. 대표적인 CNI 플러그인으로는 Calico, Flannel, Weave 등이 있습니다.


  1. Calico 설치 예시
    • 다음 명령어를 사용하여 Calico를 설치합니다.
      kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
      

스토리지 설정


쿠버네티스는 영구 스토리지 볼륨을 지원하여 상태 저장 애플리케이션을 실행할 수 있습니다. 퍼시스턴트 볼륨(PV)과 퍼시스턴트 볼륨 클레임(PVC)을 사용하여 스토리지를 관리할 수 있습니다.


  1. 퍼시스턴트 볼륨 예시
    • 다음 YAML 파일을 사용하여 퍼시스턴트 볼륨을 생성합니다.
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: my-pv
      spec:
        capacity:
          storage: 10Gi
        accessModes:
          - ReadWriteOnce
        hostPath:
          path: "/mnt/data"
      

모니터링 및 로깅


쿠버네티스 클러스터를 효과적으로 운영하기 위해 모니터링과 로깅은 필수적입니다. Prometheus와 Grafana를 사용하여 모니터링을 설정하고, EFK(Elasticsearch, Fluentd, Kibana) 스택을 사용하여 로깅을 설정할 수 있습니다.


  1. Prometheus 설치 예시
    • 다음 명령어를 사용하여 Prometheus를 설치합니다.
      kubectl apply -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/master/bundle.yaml
      

  2. EFK 스택 설치 예시
    • 다음 명령어를 사용하여 EFK 스택을 설치합니다.
      kubectl apply -f https://download.elastic.co/downloads/eck/1.6.0/all-in-one.yaml
      

결론


쿠버네티스는 애플리케이션 배포와 관리를 자동화하는 강력한 도구로서, 로컬 및 클라우드 환경 모두에 설치할 수 있습니다. 이번 포스팅에서는 Minikube와 Docker Desktop을 사용한 로컬 설치 방법, GKE와 EKS를 사용한 클라우드 설치 방법을 자세히 설명했습니다. 각 방법을 단계별로 따라하면 쉽게 쿠버네티스를 설치하고 클러스터를 운영할 수 있을 것입니다. 추가 설정과 관리 방법도 함께 소개하여, 더욱 효율적으로 클러스터를 운영할 수 있도록 도왔습니다.

다음 이전