-
클라우드: 쿠버네티스 설치하기K8S 2021. 1. 31. 20:30
쿠버네티스는 사용환경과 목적에 따라 설치하는 방법이 매우 다양하고 복잡하다.
하나의 호스트에서 개발용도로만 사용하려면 Minikube, Docker for Mac/Windows에 내장된 쿠버네티스가 적당하다
하지만 서비스 테스트 또는 운영용도로 사용하려면 다른 것들이 필요하다.
(쿠버네티스는 여러 자원을 클러스터링해서 컨테이너를 배치하는것이 핵심 기능이기 때문)
우선 어떤 환경에 설치할 것인지 결정해야 한다.
1. 온프레미스 환경에 설치할 것이냐
2. 클라우드 환경에 설치할 것이냐
온프레미스 환경에 설치할 경우, 쿠버네티스를 포함한 모든 인프라를 직접 관리해야 한다.
원하는 대로 구성할 수 있지만, 유지 보수를 스스로 해야하는 것이 단점
클라우드 플랫폼을 이용할 경우, 서버 인스턴스에 직접 쿠버네티스를 설치할 것인지
쿠버네티스 서버 자체를 서비스로써 제공하는 매니지드 서비스를 사용할지 선택해야 한다.
서버인스턴스에 쿠버네티스를 설치하는 경우, 서버 및 네트워크 인프라관리는 클라우드 담당자가 맡고, 쿠버네티스 설치 및 관리는 스스로 한다.
AWS의 EKS, GCP의 GKE등의 매니지드 서비스를 이용해 쿠버네티스를 사용하면 쿠버네티스의 설치 및 관리까지도
클라우드 제공자가 담당하므로 유지보수 비용을 절감할 수 있다.
하나의 노드만으로 쿠버네티스를 사용해보는 것은 별로 의미가 없을 것 같아서 우분투 로컬에 우분투 vm 여러개를 만들어서
쿠버네티스를 설치할 것이다.
클라우드 환경이 아닌 로컬에 설치할 것이므로 kubeadm을 이용해서 설치한다.
(kubeadm은 온프레미스든 클라우드 인프라든 리눅스서버라면 모두 사용가능)
(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
용찬호 개발자님의 "시작하세요! 도커/쿠버네티스"를 인용해서 작성했습니다.
반응형'K8S' 카테고리의 다른 글
클라우드: 쿠버네티스 네임스페이스(namespace) 실습하기 (0) 2021.03.28 클라우드: 쿠버네티스 서비스(Service) ClusterIP와 NodePort 실습하기 (0) 2021.02.18 클라우드: 쿠버네티스 디플로이먼트(Deployment) 실습하기 (0) 2021.02.14 클라우드: 쿠버네티스 레플리카셋(Replica Set) 실습하기 (2) 2021.02.05 클라우드: 쿠버네티스 포드(Pod) 오브젝트 사용하기 (0) 2021.02.01