2024-03-21 10:30:28 +09:00
2024-02-23 16:37:40 +09:00
2024-02-26 12:59:47 +09:00
2024-02-20 09:33:16 +09:00
2024-03-21 10:30:28 +09:00
2024-02-23 16:37:40 +09:00

Offline Kubespray

개요

현재 모든 고객사가 모두 각기 다른 Kubernetes 버전 , 다른 CNI , 다른 CRI 로 구성이 되어 있음.
작년(2023년) Kubernetes 버전 1.18 및 Docker 로 구축을 한 환경이 존재함.
(최신 버전의 Kubernetes는 1.28 / Docker는 공식적으로 Kubernetes에서 지원에서 제외 되었다)
사실상 이해하기 어려운 구성의 환경들이 있는 관계로 최소한의 버전과 환경 통일을 위해 제작 되었음.

최신 버전의 kubespray 2.24 기준으로 제작되었으며, kubernetes 버전 v1.28.6 을 지원하고 있음

준비물

  1. RHEL 8 계열 환경

    • 고객 환경에서 일반적으로 대부분 RHEL 8 계열을 사용함에 따라 RHEL 8 계열로 패키징 하였음
      (redhat 8.6 / 8.8 / centos stream 8 테스트 완료)
    • 추가적인 유지보수 , 버전 업 , 타OS 지원 예정 없음
    • 필요 할 경우 제공된 offline kubespray 를 참고하여 엔지니어가 유동적으로 수정하여 사용
    • 사용함에 있어서 오작동 혹은 사용법 문의는 언제든지 환영!
  2. root 계정 혹은 root 권한을 가진 계정

  3. offline kubespray 패키지

사용 방법

  1. ssh-keygen -t rsa 커맨드를 사용하여 ssh key 생성 (마스터 노드 혹인 bastion 서버에서만 진행)
  2. ssh-copy-id user@ip 커맨드를 사용하여 모든 master , worker 노드에 key를 등록 (마스터 노드 혹인 bastion 서버에서만 진행 - root 혹은 root 권한을 가진 계정)
  3. offline.tar.gz 패키지를 다운 받아 서버로 옮긴다 (마스터 노드 혹인 bastion 서버)
  4. tar -zxvf offline.tar.gz 커맨드를 사용하여 압축 해제
  5. cd offline 커맨드로 offline 디렉토리 이동
  6. vi kubespray/inventory/exem/inventory.ini 명령어로 invetory.ini 오픈
[all]
hostname1 ansible_host=10.10.43.231 ip=10.10.43.231 etcd_member_name=hostname1 ansible_port=22
hostname2 ansible_host=10.10.43.232 ip=10.10.43.232 ansible_port=22
hostname3 ansible_host=10.10.43.233 ip=10.10.43.233 ansible_port=22

[kube_control_plane]
hostname1

[etcd]
hostname1

[kube_node]
hostname2
hostname3

[calico_rr]

[k8s_cluster:children]
kube_control_plane
kube_node
calico_rr

hostname1,2,3 , etcd_member_name 에 각각 사용할 서버들의 hostname을 입력
ansible_host , ip 두 부분에 각 서버의 IP를 입력
ansible_port 에 각 서버가 사용중인 ssh 포트 입력

  1. ./installer.sh 커맨드로 install.sh 실행 후 1번 메뉴 실행

키보드의 화살표 ↑ , ↓ 키를 눌러서 메뉴 이동 및 엔터로 선택 자동으로 repo 구성 , python3.11 , rsync , ansible 설치

  1. ./installer.sh 커맨드로 install.sh 실행 후 2번 메뉴 실행

httpd 를 마스터 노드에 설치 및 설정 ➝ local repo 생성 모든 노드는 해당 local repo에서(마스터 노드) 필요한 패키지를 다운로드 함

  1. ./installer.sh 커맨드로 install.sh 실행 후 3번 메뉴 실행

local registry 생성 (master node에 container) kubernetes 클러스터 생성

  1. 따란-! Kubernetes v1.28.6 구성 완료---!!
Description
No description provided
Readme 2.3 GiB
Languages
Python 89.4%
Jinja 8.1%
HCL 1.4%
Shell 1%