ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 클라우드: 쿠버네티스 설치하기
    K8S 2021. 1. 31. 20:30

     

    쿠버네티스는 사용환경과 목적에 따라 설치하는 방법이 매우 다양하고 복잡하다. 

     

    하나의 호스트에서 개발용도로만 사용하려면  Minikube, Docker for Mac/Windows에 내장된 쿠버네티스가 적당하다

     

    하지만 서비스 테스트 또는 운영용도로 사용하려면 다른 것들이 필요하다. 

     

    (쿠버네티스는 여러 자원을 클러스터링해서 컨테이너를 배치하는것이 핵심 기능이기 때문)

     

     

    우선 어떤 환경에 설치할 것인지 결정해야 한다. 

     

    1. 온프레미스 환경에 설치할 것이냐

    2. 클라우드 환경에 설치할 것이냐

     

     

    온프레미스 환경에 설치할 경우, 쿠버네티스를 포함한 모든 인프라를 직접 관리해야 한다.

    원하는 대로 구성할 수 있지만, 유지 보수를 스스로 해야하는 것이 단점

     

    클라우드 플랫폼을 이용할 경우, 서버 인스턴스에 직접 쿠버네티스를 설치할 것인지

    쿠버네티스 서버 자체를 서비스로써 제공하는 매니지드 서비스를 사용할지 선택해야 한다. 

     

    서버인스턴스에 쿠버네티스를 설치하는 경우, 서버 및 네트워크 인프라관리는 클라우드 담당자가 맡고, 쿠버네티스 설치 및 관리는 스스로 한다. 

     

     

    AWS의 EKS, GCP의 GKE등의 매니지드 서비스를 이용해 쿠버네티스를 사용하면 쿠버네티스의 설치 및 관리까지도

    클라우드 제공자가 담당하므로 유지보수 비용을 절감할 수 있다.

     

     

    하나의 노드만으로 쿠버네티스를 사용해보는 것은 별로 의미가 없을 것 같아서 우분투 로컬에 우분투 vm 여러개를 만들어서

    쿠버네티스를  설치할 것이다. 

     

     

     클라우드 환경이 아닌 로컬에 설치할 것이므로 kubeadm을 이용해서 설치한다.

    (kubeadm은 온프레미스든 클라우드 인프라든 리눅스서버라면 모두 사용가능)

     

     

     

    쿠버네티스(Kubernetes) 설치 및 환경 구성하기

    How to configure a Kubernetes cluster

    medium.com

    (url앞뒤에 <, >가 문제되어 삽질했음)

     

     

     

    1. 쿠버네티스 클러스터 초기화

    kubeadm init --apiserver-advertise-address 172.30.1.44 --pod-network-cidr=10.244.0.0/16

    (초기화전 swapoff -a 해주기)

     

     

     

    2.  컨테이너 네트워크 애드온 설치

     

    쿠버네티스의 컨테이너간 통신을 위해 flannel, weaveNet등 여러 오버레이 네트워크를 사용할 수 있지만

    여기서는 calico를 사용한다.

     

    --pod-network-cidr=192.168.0.0/16일때 다음과 같이 설정해준다.

    kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml

     

     

     

    만약 --pod-network-cidr=10.244.0.0/16이라면 clico.yaml파일을 다음과 같이 설정해주어야 한다.

    (calico.yaml에는 기본 IP대역이 192.168.0./16이기 때문에 이를 변경해주어야 한다)

    wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml
    
    sed -i -e 's?192.168.0.0/16?10.244.0.0/16?g' calico.yaml
    
    kubectl apply -f calico.yaml
    

     

    또는 다른 네트워크 애드온으로 위브넷을 이용하고 싶은 경우

    $ kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"

     

     

     

    다음 명령어를 통해 설치가 정상적으로 되었는지 확인

    kubectl get pods --namespace kube-system

     

    또는

     

    kubectl get pods -A

     

     

    쿠버네티스에 설치된 노드 확인하기 

    kubectl get nodes

     

     

    로그 확인하기 

    kubectl logs -f <포드> (--namespace=kube-system)
    kubectl get events --namespace=kubesystem

     

     

     

     

    용찬호 개발자님의 "시작하세요! 도커/쿠버네티스"를 인용해서 작성했습니다.

     

     

    반응형

    댓글

Designed by Tistory.