[k8s] kubespray 사용해서 k8s 설치

전우석·2022년 6월 20일
0
post-thumbnail

k8s(kubernetes)

컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장 가능한 오픈소스 플랫폼이다.
단일 시스템에서 다수의 컨테이너를 구동하는 방식으로 쉽게 구성 가능하다.
구글에 의해 개발된 컨테이너 오케스트레이션 도구이다.
기본적으로 도커 플랫폼을 사용한다.

설치

k8s 설치는 두 가지 방법으로 진행할 수 있다.

  1. kubeadm
  • master node, node에 일일이 설치하는 방법이다.
  1. kubespray
  • ansible 이용해서 환경구축하는 방법이다.

이 글에서는 kubespray 방법으로 설치를 진행할 것이다.

오케스트레이션

다수의 시스템과 애플리케이션을 쉽게 설정하고 유지관리 할 수 있는 방식을 의미한다.
도커 자체적으로 ‘도커 스웜’을 통해서 오케이스트레이션을 지원하고 있다.
도커 스웜은 도커와 유사한 동작 방식으로 쉬운 사용법을 제공하고 있으나 기능이 비교적 단순하고 세세한 조정이 어려운 단점이 존재한다.

Vagrant 사용해서 vm 설치 및 환경설정

C드라이브에 k8s 폴더 생성 후 vagrantfile 작성

Vagrant plugin 설치

vagrant-hostmanger, vagrant-disksize 설치 후 확인

vagrant plugin install vagrant-hostmanager
vagrant plugin install vagrant-disksize
vagrant plugin list

Vagrant ubuntu 이미지 추가

vagrant box add ubuntu/bionic64
vagrant box list

vm 설치

up 명령어 사용해서 vm 설치

vagrant up

접속확인

vagrant ssh kube-master1

ssh-keygen 키 생성

ssh-keygen

ssh-copy-id 사용

localhost부터 node3까지 key 복사 진행

ssh-copy-id localhost
ssh-copy-id kube-node1
ssh-copy-id kube-node2
ssh-copy-id kube-node3

패키지 설치

python, pip, git 설치

sudo apt update
sudo apt install -y python3 python3-pip git

kube git clone

git clone --single-branch --branch v2.14.2 https://github.com/kubernetes-sigs/kubespray.git

kubespray

디렉토리 이동

생성 된 kubespray 디렉토리로 이동

의존성 확인 및 설치

인벤토리 준비

cp -rfp inventory/sample inventory/mycluster

인벤토리 수정

:~%d로 내용삭제 후 인벤토리 작성

vi inventory/mycluster/inventory.ini

파라미터 확인 및 변경

vi inventory/mycluster/group_vars/k8s-cluster/addons.yml

metrics_server_enabled: true
ingress_nginx_enabled: true

ping test

ansible all -i inventory/mycluster/inventory.ini -m ping

playbook 실행

엔서블을 통한 쿠버네티스 설치 시작

ansible-playbook -i inventory/mycluster/inventory.ini cluster.yml --become

k8s

자격증명 가져오기

mkdir ~/.kube
sudo cp ~root/.kube/config ~/.kube
sudo chown vagrant:vagrant -R ~/.kube

kubectl 명령 자동완성

kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl
exec bash

k8s 클러스터 확인

kubectl get nodes
kubectl cluster-info

정상적으로 k8s설치가 완료됐다.

0개의 댓글