Skip to content

Infrastructure as Code to Install Kubernetes using Vagrant, Ansible and Kubespray for dev, learning or lecture

License

Notifications You must be signed in to change notification settings

rayshoo/vansible_with_kubespray

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Vansible with Kubespray

이 프로젝트는 더이상 관리 되지 않기에 추천되지 않습니다. 대신 Vansinetes 프로젝트를 사용하시기 바랍니다.(21.06.23)
This project is not recommended as it is no longer maintained. Use the Vansinetes project instead.(21.06.23)


소개

쉽고 빠른 Docker+Kubernetes 개발, 학습 및 강의 환경 구축을 위해 설계된
Vagrant, Ansible, Kubespray를 사용한 IaC(Infra as Code) 도구

사용 전 필요 조건

사용자의 환경에 VagrantVirtualBox가 미리 설치되있어야 한다.

사용 방법

1. .env 파일을 구성한다.

2. kubespray를 수동으로 구성하고 싶다면, CLUSTER_STRUCTURE_AUTO_CREATE=no으로 옵션을 설정하고, cluster folder 를 목적에 맞게 구성한다.

3. Vagrantfile이 위치한 경로에서 하단의 명령어를 bash 쉘에 입력한다.

$ vagrant plugin install vagrant-env
$ vagrant up --color
$ vagrant ssh $(vagrant status | tail -5 | sed -n '1p' | awk '{ print $1}') // 기본 설정 $ vagrant ssh m1

참고 사항

몇 가지 alias가 자동 등록된다.

alias ans='ansible'
alias anp='ansible-playbook'
alias k='kubectl'

문제 해결

1. 프로비전이 실패한 경우 vagrant provision 명령어로 이를 다시 시도한다.

2. vagrant destroy --force && vagrant up 와 같이 가상머신을 삭제하고 다시 생성할때,
간혹 정상적으로 삭제된 것으로 보이지만 실제로는 삭제되지 않아서 실패하는 경우가 있으므로 버추얼 머신 환경설정의 가상머신 파일 저장 경로에서 이를 직접 확인해서 삭제 후 다시 시도한다.

3. kubernetes 프로비전이 계속 실패하는 경우, 다음의 명령어를 입력하여 다시 시도한다.

// host machine
$ vagrant ssh $(vagrant status | tail -5 | sed -n '1p' | awk '{ print $1}') // 기본 설정, $ vagrant ssh m1

// guest machine
$ cd environment/kubernetes && ansible-playbook -i inventory.ini kubespray/reset.yml -v --become --become-user=root
$ yes
$ exit

// host machine
$ vagrant provision $(vagrant status | tail -5 | sed -n '1p' | awk '{ print $1}') // 기본 설정, $ vagrant provision m1

Introduce

IaC (Infra as Code) tool designed for easy and fast Docker + Kubernetes development, learning, and lecture environment construction
with using Vagrant, Ansible, Kubespray.

Requirements before use

Vagrant and VirtualBox must be installed in the user's environment in advance.

How to Use

1. Configure the .env file.

2. If you want to configure kubespray with manually, set CLUSTER_STRUCTURE_AUTO_CREATE=no then configure the cluster folder.

3. Type the following command into the bash shell in the path where the Vagrantfile is located.

$ vagrant plugin install vagrant-env
$ vagrant up --color
$ vagrant ssh $(vagrant status | tail -5 | sed -n '1p' | awk '{ print $1}') // By default, $ vagrant ssh m1

Note

Several aliases are automatically registered.

alias ans='ansible'
alias anp='ansible-playbook'
alias k='kubectl'

Trouble Shooting

1. If provisioning fails, try again with the vagrant provision command.

2. When deleting and recreating a virtual machine like vagrant destroy --force && vagrant up,
it appears to have been deleted normally, but it is not actually deleted once at a time. Check it yourself, delete it, and try again.

3. If kubernetes provisioning continues to fail, try again by entering the following command.

// host machine
$ vagrant ssh $(vagrant status | tail -5 | sed -n '1p' | awk '{ print $1}') // By default, $ vagrant ssh m1

// guest machine
$ cd environment/kubernetes && ansible-playbook -i inventory.ini kubespray/reset.yml -v --become --become-user=root
$ yes
$ exit

// host machine
$ vagrant provision $(vagrant status | tail -5 | sed -n '1p' | awk '{ print $1}') // By default, $ vagrant provision m1

라이센스, License


개인 블로그, Personal Blog


공식 문서, Official Documents


참고한 책, Book referenced

카와무라 세이고,기타노 타로오,나카야마 타카히로,구사카베 타카아키,리쿠르트 테크놀로지
번역 양성건,영진닷컴(2020),IT 운용 체제 변화를 위한 데브옵스

정원천,공용준,홍석용,정경록,동양북스(2020),쿠버네티스 입문


참고한 곳, Site referenced

Shell script

핸드오버,일상 메모장
양햄찌가 만드는 세상

ruby

조묵헌,Ruby 처음 배우기:데이터타입
yundream,Joinc

vagrant

asdf,노력 이기는 재능 없고 노력 외면하는 결과도 없다
YOUNG.K

ansible

세모데
Sentimental Programmer
부들잎의 이것저것
mydailytutorials,Working with Environment​ Variables in Ansible
How to create a file in ansible

python j2 template

Python2.net

kubespray

브랜든의 블로그
alice_k106님의 블로그
teamsmiley 블로그

serverspec

Tunelinux home
Daegwon Nacyot Kim,44BITS

lecture

조훈,다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant)

git repository

kairen/kubeadm-ansible
kubernetes-sigs/kubespray
junegunn/vim-plug
pearofducks/ansible-vim
tpope/vim-pathogen
chase/vim-ansible-yaml
telus/ansible-motd

About

Infrastructure as Code to Install Kubernetes using Vagrant, Ansible and Kubespray for dev, learning or lecture

Topics

Resources

License

Stars

Watchers

Forks