클라우드/Kubernetes

[Kubernetes] k8s, 클러스터

dusqo7951 2024. 9. 25. 14:48

 

지금까지 docker 에대해 배웠으나 요즘은 쿠버네티스를 많이 사용한다고한다.

 

쿠버네티스 (k8s = kubernetes)

컨테이너 기반의 애플리케이션을 개발하고 배포할 수 있도록 설꼐된 오픈소스 플랫폼

컨테이너 오케스트레이션 도구의 사실상 표준

https://kubernetes.io/ko/docs/concepts/overview/#why-you-need-kubernetes-and-what-can-it-do

 

 

쿠버네티스란 무엇인가?

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식할 수 있고, 확장 가능한 오픈소스 플랫폼으로, 선언적 구성과 자동화를 모두 지원한다. 쿠버네티스는 크고 빠르게 성장하

kubernetes.io

 

**왜 필요한것인가?

 

컨테이너는 애플리케이션을 포장하고 실행하는 좋은방법이다. 프로덕션 환경에서는 애플리케이션을 실행하는 컨테이너를 관리하고 중지 시간이 없는지 확인해야하는데 컨테이너가 다운될때 다른컨테이너를 시작시키는걸 시스템에서 처리시키기위해 사용하는것이다.

 

쿠버네티스 = 분산시스템

분산시스템을 탄력적으로 실행하기 위한 프레임워크를 제공한다.

애플리케이션의 확장과 장애 조치를 처리하고 , 배포패턴 등을 제공한다.

제공서비스

* 서비스 디스커버리와 로드 밸런싱

* 스토리지 오케스트레이션

*자동화된 롤아웃과 롤백

*자동화된 빈 패킹 (bin packing)

*자동화된 복구(self-healing)

*시크릿과 구성관

 

쿠버네티스 컴포넌트

https://kubernetes.io/ko/docs/concepts/overview/components/

 

쿠버네티스 컴포넌트

쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다.

kubernetes.io

 

 

 

1 git 내려 받아서 설치 ⇒ https://git-scm.com/download/win

 

Redirecting…

 

git-scm.com

 

2 작업 디렉터리 생성 및 설정 파일 가져오기

 

c:\docker> mkdir c:\k8s : 작업디렉토리 생성

 

c:\docker> cd c:\k8s

c:\k8s> git clone https://github.com/techiescamp/vagrant-kubeadm-kubernetes
Cloning into 'vagrant-kubeadm-kubernetes'...
remote: Enumerating objects: 755, done.
remote: Counting objects: 100% (519/519), done.
remote: Compressing objects: 100% (248/248), done.
remote: Total 755 (delta 385), reused 352 (delta 271), pack-reused 236 (from 1)
Receiving objects: 100% (755/755), 229.13 KiB | 4.41 MiB/s, done.
Resolving deltas: 100% (433/433), done.

c:\k8s> cd vagrant-kubeadm-kubernetes
 

3 가상머신 생성 및 클러스터 구성 (오래걸린다 10분이상)

c:\k8s\vagrant-kubeadm-kubernetes> vagrant up
 

설치가 완료되면

 
사진 삭제

사진 설명을 입력하세요.

이렇게나온다.

 

4 CMD에서 가상머신 생성 확인

C:\k8s\vagrant-kubeadm-kubernetes> vagrant status
Current machine states:

controlplane              running (virtualbox)
node01                    running (virtualbox)
node02                    running (virtualbox)

This environment represents multiple VMs. The VMs are all listed
above with their current state. For more information about a specific
VM, run `vagrant status NAME`.
 

6 controlplane 노드로 SSH 접속

c:\k8s\vagrant-kubeadm-kubernetes> vagrant ssh controlplane
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-83-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Mon Sep 23 07:02:25 AM UTC 2024

  System load:  0.33642578125      Users logged in:        0
  Usage of /:   19.7% of 30.34GB   IPv4 address for cni0:  10.85.0.1
  Memory usage: 22%                IPv4 address for eth0:  10.0.2.15
  Swap usage:   0%                 IPv4 address for eth1:  10.0.0.10
  Processes:    176                IPv4 address for tunl0: 172.16.49.64


This system is built by the Bento project by Chef Software
More information can be found at https://github.com/chef/bento
vagrant@controlplane:~$
 

 

7 클러스터링된 노드의 상태를 확인

vagrant@controlplane:~$ kubectl get node
NAME           STATUS   ROLES           AGE   VERSION
controlplane   Ready    control-plane   45m   v1.31.0
node01         Ready    worker          42m   v1.31.0
node02         Ready    worker          39m   v1.31.0

vagrant@controlplane:~$ kubectl get node -o wide
NAME           STATUS   ROLES           AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
controlplane   Ready    control-plane   46m   v1.31.0   10.0.0.10     <none>        Ubuntu 22.04.3 LTS   5.15.0-83-generic   cri-o://1.32.0
node01         Ready    worker          43m   v1.31.0   10.0.0.11     <none>        Ubuntu 22.04.3 LTS   5.15.0-83-generic   cri-o://1.32.0
node02         Ready    worker          40m   v1.31.0   10.0.0.12     <none>        Ubuntu 22.04.3 LTS   5.15.0-83-generic   cri-o://1.32.0


vagrant@controlplane:~$ exit
logout
Connection to 127.0.0.1 closed.

c:\k8s\vagrant-kubeadm-kubernetes>
 

8 만약, controlplane과 node01, node02가 정상적이지 않은 경우(#4, #7이 동작하지 않는 경우) 가상머신을 삭제 후 다시 실행(3부터 다시)

c:\k8s\vagrant-kubeadm-kubernetes> vagrant destroy
c:\k8s\vagrant-kubeadm-kubernetes> vagrant up


수업 종료 시 가상머신 종료 
c:\k8s\vagrant-kubeadm-kubernetes> vagrant halt


수업 시작 시 가상머신 실행
c:\k8s\vagrant-kubeadm-kubernetes> vagrant up
 

이렇게 로컬에 설치해도되고 만약환경이 안된다면,

아래와 같이 docker desktop 에서 가상으로사용할수도 있다.  

'클라우드 > Kubernetes' 카테고리의 다른 글

[클라우드]쿠버네티스 리소스 / Pod  (1) 2024.10.01
[Kubernetes] 실행, 실행확인 종류  (0) 2024.09.25