Vagrant에 Kubernetes 클러스터(cluster) 구성하기
Minikube로도 랩탑에서 많은 작업을 할 수 있지만 아무래도 멀티 노드로 구성해서 직접 검증을 해야 할 일이 생긴다.
Vagrant에 직접 CentOS나 Ubuntu 박스를 이용해서 구성을 시도했지만 시간만 낭비했고, 구글링 끝에 kubernetes-vagrant-coreos-cluster 프로젝트를 찾았다.
https://github.com/pires/kubernetes-vagrant-coreos-cluster/
프로젝트 메인의 README
를 보면서 설치를 진행해 봤는데, 아래는 윈도(windows)에서 설치한 경험을 정리한 것이다. 몇 가지 시행착오가 있었기 때문에 도움이 될 것이다.
그리고 시간이 없더라도 README
는 꼭 읽을 것을 권장한다.
Installation
NFS 공유 기능을 활성화 하기 위해서 Vagrant 플러그인 설치
$ vagrant plugin install vagrant-winnfsd
Vagrant WinNFSd 플러그인의 깃 저장소
https://github.com/winnfsd/vagrant-winnfsd
저장소를 clone 하기 전에 Git 옵션을 변경
$ git config --global core.autocrlf false
$ git config --global core.eol lf
Deploy Kubernetes
vagrant를 시작하고 프로비저닝을 실행한다.
$ vagrant up
kubernetes-vagrant-coreos-cluster 프로젝트는 CoreOS의 alpha 버전을 사용하도록 기본 구성되어 있는데, 만약 현재 버전이 1492.3.0
이라면 아래와 같이 403
에러가 발생할 수도 있다.
==> master: Box 'coreos-alpha' could not be found. Attempting to find and install...
master: Box Provider: virtualbox
master: Box Version: = 1492.3.0
==> master: Loading metadata for box 'http://alpha.release.core-os.net/amd64-usr/current/core
os_production_vagrant.json'
master: URL: http://alpha.release.core-os.net/amd64-usr/current/coreos_production_vagrant
.json
==> master: Adding box 'coreos-alpha' (v1492.3.0) for provider: virtualbox
master: Downloading: http://builds.release.core-os.net/alpha/amd64-usr/1492.3.0/coreos_pr
oduction_vagrant.box
master: Progress: 0% (Rate: 0/s, Estimated time remaining: --:--:--)
An error occurred while downloading the remote file. The error
message, if any, is reproduced below. Please fix this error and try
again.
The requested URL returned error: 403 Forbidden
아마도 박스 다운로드 주소를 잘못 설정한 것이 아닐까 의심된다.
어쨌든 다음과 같이 바로 전 버전인 1492.1.0
을 사용하도록 설정하고 실행하면 해결된다.
$ COREOS_VERSION=1492.1.0 vagrant up
이제 master 노드에 ssh로 접속하여 kubectl
을 사용해서 이런저런 작업을 해 볼 수가 있게 됐다.
$ vagrant ssh master
$ kubectl cluster-info
만약 vagrant ssh master
명령으로 접속했을 때 인증이 안되면, 아래 링크를 참고한다.
Vagrant - CoreOS에 vagrant ssh 접속 시 인증 실패
Environment variables
CHANNEL: CoreOS의 채널을 지정한다. alpha, beta, stable을 중 하나를 넣는다.
기본 값(default)은 alpha.
COREOS_VERSION: CoreOS의 버전을 지정한다. 위에서 언급했다.
USE_KUBE_UI: Kubernetes UI 를 deploy 할 것인지의 여부를 지정.
기본 값은
false
http://#{MASTER_IP}:8080/ui 에 접속하면 화면을 볼 수 있다.
이외에도 변수가 많은데 굳이 여기에 옮길 필요는 없을 것 같다. 앞으로 필요한 부분이 있으면 다른 글에서 덧붙이기로 하자.
EOF
'Kubernetes' 카테고리의 다른 글
도커(docker) 이미지의 내용이 궁금할 때 (0) | 2018.05.05 |
---|---|
Minikube의 docker-env 명령 취소 (0) | 2018.05.04 |
도커(Docker)의 쿠버네티스(Kubernetes) 지원 (0) | 2018.03.23 |
외부에서 Kubernetes API(apiserver) 접근 (0) | 2017.09.04 |
Minishift로 간편하게 Openshift 사용해 보기 (2) | 2017.07.29 |