Skip to content

An easy and ready-to-go bootstrap for k8s installation and automatic cluster deployment!

License

Notifications You must be signed in to change notification settings

kdgyun/k8s-cluster-bootstrap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

한글 문서 | English Document



k8s-cluster-bootstrap

🔨 k8s 설치 및 클러스터 구축 자동화를 위한 easy 한 부트스트랩


Requirements

  • Ubuntu 18.04 (or Ubuntu Server 18.04) 이상, Ubuntu 22.04 (or Ubuntu Server 22.04) 이하 - 우분투 서버 권장
  • 동일한 subnet 안에 있어야 함. 단, calico까지 자동으로 배포할 시 Master node IP(HOST IP)가 CIDR 내에 있으면 안됨
  • ssh 접속시 pem 키가 아닌 username과 password로 접속이 가능해야 함
  • 스크립트 내 사용포트에 대해 open을 하나, 만약 별도의 자체 방화벽이 있을 경우 port 개방이 필요함 (필수 개방 포트 링크)


Usage

1. 파일 다운로드

홈 디렉토리에서 curl -sSLO http://raw.githubusercontent.com/kdgyun/k8s-cluster-bootstrap/main/k8s-cluster-bootstrap.sh 혹은 깃허브의 latest release 버전을 다운로드하여 k8s-cluster-bootstrap.sh을 받기


2. 파일 실행 권한 부여

k8s-cluster-bootstrap.sh 파일의 실행 권한 부여

chmod +x k8s-cluster-bootstrap.sh

3. 실행

sudo 권한으로 k8s-cluster-bootstrap.sh 파일 실행

sudo ./k8s-cluster-bootstrap.sh [options] <value>

옵션에 대한 상세 설명은 아래에…



Options


다음은 스크립트에서 제공하고 있는 옵션입니다.

Option(Flag) Values Description, example Remarks
-c / --cni CIDR 마스터 노드 생성시 cni(with calico)도 함께 설치합니다. 해당 옵션을 사용할시, master node IP(Host IP)랑 대역이 겹치면 안되며, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 중 하나를 선택하여 입력하시면 됩니다.
-ct / --containertype Container Runtime container runtime 타입을 지정하고자 하는 경우 사용되는 옵션이며 지정하지 않을 경우 기본 값은 docker(cri-dockerd) 입니다. 해당 옵션을 사용할시 cri-dockerd 의 경우 docker ,
containerd 의 경우 containerd 을 파라미터로 설정하여 사용하고자 하는 컨테이너 런타임을 입력하시면 됩니다.
-h / --help 옵션 및 설명을 볼 수 있습니다.
-i / --ip Master node (Host) IP master node의 ip (e.g. 10.0.0.1) 입니다.
만약 클라우드(e.g, aws, gcp …) 등을 사용 할 경우, public IP가 아닌, private IP를 사용해야 합니다.
-kv / --k8sversion 지원하는 쿠버네티스 버전을 보여줍니다.
-m / --master master 노드를 생성하고자 하는 경우 -m 플래그를 사용하면 됩니다. -i/--ip 플래그가 반드시 요구됩니다.
-ms / --metricserver kubernetes의 metrics-server를 설치하고자 하는 경우 -ms 플래그를 사용하면 됩니다. master노드를 구성하는 경우에만 설치가 가능하기 때문에 -m/--master 플래그가 반드시 요구됩니다.
-p / --password Master(Host) node password ssh 로그인시 마스터 노드에 접속하기 위한 비밀번호입니다.
같은 서브넷 안에서 worker 노드 생성시 master 노드로부터 token을 갖고오기 위한 옵션입니다.
-u/--username 플래그와 반드시 같이 사용해야합니다.
-r / --regularuser
(*beta)
HOME_PATH of regular user 현재 sudo 권한으로 실행한 user 외에 다른 일반 유저에 대해서도 접근 권한을 부여하고자 할 때 사용합니다.
-r /home/username 과 같이 사용하며, 이 때 HOME_PATH는 반드시 해당 계정의 홈 디렉토리($HOME) 이어야 합니다.
선택 옵션이나, -m (마스터 노드 생성) 때에만 사용되는 옵션입니다.
-u / --username Master(Host) node username ssh 로그인시 마스터 노드에 접속하기 위한 username입니다.
같은 서브넷 안에서 worker 노드 생성시 master 노드로부터 token을 갖고오기 위한 옵션입니다.
-p/--password 옵션과 반드시 같이 사용해야합니다.
-v / --version k8s version Kubernetes 버전을 설정하기 위해 사용됩니다.
(e.g. -v 1.25.0)
지원 버전은 1.24.15 부터 1.31.2 까지이며 지원 버전을 상세하게 보고자 한다면 -kv 또는
--k8sversion 옵션을 통해 확인이 가능합니다.
해당 옵션을 사용하고자 하는 경우 파라미터는 x.y.z 형식으로 주어져야 합니다.
만약 해당 옵션을 사용하지 않을 경우 기본 버전은 1.24.15 이며 RC 또는 beta 버전의 경우 정식 릴리즈 버전이 아니므로 지원하지 않습니다.
-w / --worker worker 노드를 생성하고자 하는 경우 -w 플래그를 사용하면 됩니다. -i/--ip , -u/--username, -p/-password 3개의 옵션이 반드시 요구됩니다.


어떠한 옵션도 사용하지 않고 실행할 경우 쿠버네티스 클러스터 구성에 필요한 패키지 설치까지만 진행됩니다.

패키지 설치만 할 경우 사용자가 kubeadm init 명령을 실행하여 쿠버네티스 클러스터를 구성할 수 있습니다.

master 노드 생성 예)

sudo ./k8s-cluster-bootstrap.sh -m -c 192.168.0.0/16 -i 10.0.0.1 -ct containerd -v 1.25.0

worker 노드 생성 예)

sudo ./k8s-cluster-bootstrap.sh -w -i 10.0.0.1 -u username -p pwd123! -ct containerd -v 1.25.0

기여 가이드라인

이 프로젝트에 기여를 하고자 한다면 기여 가이드라인 을 읽어보시기를 바랍니다.

About

An easy and ready-to-go bootstrap for k8s installation and automatic cluster deployment!

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages