Vagrant에 Kubernetes 클러스터(cluster) 구성하기

Kubernetes|2017. 8. 15. 08:49

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

댓글()

Vagrant - CoreOS에 vagrant ssh 접속 시 인증 실패

DevOps|2017. 8. 13. 11:06

Vagrant에 CoreOS를 설치하고 ssh 접속을 시도 했을 때 인증이 안되는 경우가 있습니다.

    $ vagrant ssh
    Password:
    Password:
    Password:
    vagrant@127.0.0.1's password:
    vagrant@127.0.0.1's password:
    Authentication failed.

저의 경우는 alpha 채널에서 1492.1.0 버전을 받아서 설치했었습니다.

CoreOS는 기본 계정이 vagrant가 아니라 core 더군요. 그리고 key 방식 인증만 지원하고 passowrd 방식은 지원 안합니다. 이런 경우 Vagrant의 insecure key를 이용하면 됩니다.

    $ ssh core@localhost -p 2222 -i $VAGRANT_HOME/insecure_private_key

$VAGRANT_HOME 은 윈도(windows)의 경우 C:\Users\[사용자ID]\.vagrant.d 폴더입니다. 명령 프롬프트에서 cd %USERPROFILE%\.vagrant.d 명령으로 이동할 수 있습니다.

혹은 Vagrantfile에서 아래와 같이 ssh username을 core로 변경한 후 VM을 reload 하면 vagrant ssh 명령으로 접속이 가능합니다.

    config.ssh.username = "core"



EOF

댓글()