지금까지 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)
*시크릿과 구성관
쿠버네티스 컴포넌트
쿠버네티스 컴포넌트
쿠버네티스 클러스터는 컴퓨터 집합인 노드 컴포넌트와 컨트롤 플레인 컴포넌트로 구성된다.
kubernetes.io

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 |