2023. 9. 4. 22:05ㆍ쿠버네티스/쿠버네티스
컨테이너 인프라 환경
리눅스 운영 체제의 커널 하나에 여러 개의 컨테이너가 격리된 상태로 실행되는 인프라 환경을 의미

출처
쿠버네티스 이해하기
오케스트레이션
복잡한 단계를 관리하고 요소들의 유기적인 관계를 미리 정의해 손쉽게 사용하도록 서비스를 제공하는 것을 의미합니다. 다수의 컨테이너를 유기적으로 연결, 실행, 종료할 뿐만 아니라 상태를 추적하고 보존하는 등 컨테이너를 안정적으로 사용할 수 있게 만들어주는 것이 컨테이너 오케스트레이션이다.
컨테이너 오케스트레이션 제공 대표적 솔루션 종류
- docker Swarm
- MESOS
- Nomad
- kubernets
쿠버네티스 구성방법
- 관리형 쿠버네티스 : EKS, AKS, GKE
- 설치형 쿠버네티스 : 오픈쉬프트
- 구성형 쿠버네티스 : kubeadm, kubespray 등
쿠버네티스 구성하기
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
N = 3 # max number of worker nodes
Ver = '1.18.4' # Kubernetes Version to install
#=============#
# Master Node #
#=============#
config.vm.define "m-k8s" do |cfg|
cfg.vm.box = "sysnet4admin/CentOS-k8s"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "m-k8s(github_SysNet4Admin)"
vb.cpus = 2
vb.memory = 3072
vb.customize ["modifyvm", :id, "--groups", "/k8s-SgMST-1.13.1(github_SysNet4Admin)"]
end
cfg.vm.host_name = "m-k8s"
cfg.vm.network "private_network", ip: "192.168.1.10"
cfg.vm.network "forwarded_port", guest: 22, host: 60010, auto_correct: true, id: "ssh"
cfg.vm.synced_folder "../data", "/vagrant", disabled: true
cfg.vm.provision "shell", path: "config.sh", args: N
cfg.vm.provision "shell", path: "install_pkg.sh", args: [ Ver, "Main" ]
cfg.vm.provision "shell", path: "master_node.sh"
end
#==============#
# Worker Nodes #
#==============#
(1..N).each do |i|
config.vm.define "w#{i}-k8s" do |cfg|
cfg.vm.box = "sysnet4admin/CentOS-k8s"
cfg.vm.provider "virtualbox" do |vb|
vb.name = "w#{i}-k8s(github_SysNet4Admin)"
vb.cpus = 1
vb.memory = 2560
vb.customize ["modifyvm", :id, "--groups", "/k8s-SgMST-1.13.1(github_SysNet4Admin)"]
end
cfg.vm.host_name = "w#{i}-k8s"
cfg.vm.network "private_network", ip: "192.168.1.10#{i}"
cfg.vm.network "forwarded_port", guest: 22, host: "6010#{i}", auto_correct: true, id: "ssh"
cfg.vm.synced_folder "../data", "/vagrant", disabled: true
cfg.vm.provision "shell", path: "config.sh", args: N
cfg.vm.provision "shell", path: "install_pkg.sh", args: Ver
cfg.vm.provision "shell", path: "work_nodes.sh"
end
end
end
5번째 줄: 워커 노드의 수를 변수 N에3을 넘김, 24번째 줄과 46번째 줄에서 config.sh로 넘김
6번째 줄: 쿠버네티스 버전을 사용자가 선택할 수 있도록 변수 (Ver = '1.18.4')로 지정함. 다른 쿠버네티스 버전을 사용하고 싶을 경우 해당 값을 변경하면 됨.
25번째 줄 : args : [ Ver, "Main"] 코드를 추가해 쿠버네티스 버전 정보(Ver)와 Main이라는 문자를 install_pkg.sh로 넘김.
Ver 변수는 각 노드에 해당 버전의 쿠버네티스 버전을 설치하게 함. 두 번째 인자인 Main 문자는 install_pkg.sh에서 조건문으로 처리해 마스터 노드에만 이 책의 전체 실행 코드를 내려받게 함.
26번째 /48번째 줄 : 쿠버네티스 마스터 노드를 위한 master_node.sh와 워커 노드를 위한 work_nodes.sh 코드를 추가 함.
config.sh는 kubeadm으로 쿠버네티스를 설치하기 위한 사전 조건을 설정하는 스크립트 파일 임
'쿠버네티스 > 쿠버네티스' 카테고리의 다른 글
| kubectl 실습 (1) | 2023.09.10 |
|---|---|
| 마스터 노드 (0) | 2023.09.04 |
| putty와 슈퍼 putty (0) | 2023.09.04 |
| 베이그런트로 테스트 환경 구축하기 (0) | 2023.09.04 |
| vagrant와 virtual box (0) | 2023.09.04 |