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

신고