쿠버네티스(Kubernetes) 설치
개발 용도의 쿠버네티스 설치
- Minikube
- Docker for Mac/Windows
손쉽게 설치할 수 있지만 로컬 노드를 standalone 모드로 사용하기 때문에 쿠버네티스 기능을 완벽하게 사용하기에 적합하지 않다. 여러 서버의 자원을 클러스터링해 컨테이너를 배치하는 것이 핵심 기능인데, 1개의 노드로는 이런 기능을 확인하기가 어려운 단점이 있다.
서비스 테스트 또는 운영 용도의 쿠버네티스 설치
- kops
- kubespray
- kubeadm
- EKS, GKE 등의 managed 서비스
클라우드 플랫폼 환경과 온프레미스 서버 환경으로 나눠진다.
온프레미스에 구성한다면 인프라를 원하는 대로 구성할 수 있지만 운영 및 유지보수가 쉽지 않을 수 있다.
EKS, GKE를 사용하면 쿠버네티스 관리 및 유지보수까지 클라우드 제공자가 담당하지만, 쿠버네티스 전체적인 개념을 파악하기 쉽지 않은 단점이 있다.
쿠버네티스를 학습하는 것이 목적이기에 직접 여러 서버를 구성해서 kubeadm으로 쿠버네티스 클러스터를 설치해보자.
1. VirtualBox 설치
https://www.virtualbox.org/wiki/Downloads
2. Ubuntu 20.04 기반 4개 노드 생성
- 10.0.1.4 (master)
- 10.0.1.5 (worker1)
- 10.0.1.6 (worker2)
- 10.0.1.7 (worker3)
3. 쿠버네티스 저장소 추가
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg I apt-key add -
$ cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
> deb http://apt.kubernetes.io/ kubernetes-xenial main
> EOF
4. kubeadm 설치
$ wget -qO- get.docker.com | sh
$ apt-get install -y kubelet kubeadm kubectl kubernetes-cni
5. 클러스터 초기화
$ kubeadm init --apiserver-advertise-address 10.0.1.4 --pod-network-cidr=10.0.1.0/24
- --apiserver-advertise-address: 마스터 노드에게 접근할 수 있는 IP
- --pod-network-cidr: 컨테이너 네트워크 대역
중간에 출력된 3줄 명령어는 마스터노드에서 실행한다.
마지막에 출력된 kuberadm join ... 관련 명령어는 마스터노드를 제외한 워커노드에서 실행한다.
6. 컨테이너 네트워크 애드온 설치
컨테이너 간 통신을 위해 calico 네트워크 플러그인 설치한다.
calico.yaml 파일에서 --pod-network-cidr에 해당하는 IP 변경 필요하다.
$ kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
쿠버네티스 핵심 컴포넌트 실행 목록 및 등록된 노드 확인
$ kubectl get pods --namespace kube-system
$ kubectl get nodes
Reference.
http://www.yes24.com/Product/Goods/84927385
'DevOps > Kubernetes' 카테고리의 다른 글
쿠버네티스(kubernetes) Namespace, ConfigMap, Secret (0) | 2022.05.14 |
---|---|
쿠버네티스(kubernetes) Deployment, Service (0) | 2022.05.14 |
[troubleshooting] [kubelet-check] It seems like the kubelet isn't running or healthy. (0) | 2022.05.14 |
쿠버네티스(kubernetes) Pod, Replica Set (0) | 2022.05.08 |
쿠버네티스(Kubernetes) 요약 (0) | 2021.06.14 |