[Jenkins ] Kubernetes 개념 및 기본 명령어

2023. 8. 21. 20:32초기 과업/DevSecOps

작성자알 수 없는 사용자

728x90
반응형

 

안녕하세요. 기깔나는 사람들에서 DMSO를 맡고있는 정우입니다.

지난번 Jenkins와 Ansible에 대해 알아보고 Jenkins에 Ansible playbook 을 실행해서 

여러개의 서버에 배포하는 작업까지 해봤습니다.

 

[Jenkins] Ansible Playbook

[Jenkins] IaC 와 Ansible의 이해

 

오늘은 쿠버네티스에 대해 알아보도록 하겠습니다.

 


Kubernetes 소개

K8s(Kubernetes)란?

오픈소스 기반의 컨테이너화 된 애플리케이션의 자동 배포, 스케일링 등을 제공하는 관리 플랫폼

 

K8s 의 특징

- 컨테이너화 된 애플리케이션 구동

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

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

- 자동화된 롤아웃과 롤백

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

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

- 시크릿과 구성관리

 

K8s 단점

- 소스 코드 배포 x, 빌드 x

- 애플리케이션 레벨 서비스 x

- 로깅, 모니터링 솔루션 x

- 포괄적인 머신 설정, 유지보수, 관리, 자동 복구 시스템을 제공해주지 x

 

 

 


Kubernetes Cluster

 

  • 쿠버네티스 클러스터는 컨테이너화된 애플리케이션을 실행하는 노드(Node)의 집합
  • 모든 클러스터는 최소한 한개 이상의 마스터 노드일반 노드(워커 노드)로 이루어져 있다
  • 각각의 일반 워커 노드들은 운영하고자하는 여러가지의 컨테이너를 관리하고자하는 Pod라는 개념을 가지고 있다.

Kubernetes Cluster 설치

버츄얼박스에 직접 설치를 하고자 하는 경우 여기에서 가이드 해드리겠습니다.

 

저희는 minikube를 사용해서 쿠버네티스를 테스트 환경에서 실행해볼 수 있도록 해보겠습니다.

 

로컬에서 설치하는 경우 : 

enable Kubernetes 선택하고 Apply&restart를 해보겠습니다.

설치가 완료되었습니다.

 


쿠버네티스 기본명령어

 

노드를 확인해보겠습니다.

kubectl get nodes

 

 서비스 확인

kubectl get services

 

 

nginx를 한번 설치해보도록 하겠습니다.

kubectl run sample-nginx --image=nginx

 

 

실행한 pod들을 확인할 수 있습니다.

kubectl get pod

nginx라는 pod하나가 설치된 것이 보입니다.

 

 

 

특정 Pod 정보 확인

kubectl describe pod/sample-nginx

 

 

pod 삭제

kubectl delete pod/sample-nginx

 

 

deployment 설치 :

스케줄링 작업이나 스케일링 작업시 편하게 할 수 있습니다

kubectl create deployment sample-nginx --image=nginx

 

하나의 deployment에는 하나의 pod가 설치되어있는것을 확인할 수 있습니다.

 

deploy되어있는 pod 하나 삭제하기

 

 

 

다시 확인해보면 deployment 가 완전히 삭제가 되지 않는것이 보여집니다.

최소단위의 deployment가 유지되는 것을 확인할 수 있습니다.  

 

 

스케일링 작업

pod의 갯수를 조정할 수 있습니다.

kubectl scale deployment sample-nginx --replicas=2

하나의 deployment에 두개의 pod가 생성된 것을 확인 할 수 있습니다.

 

 

deployment 삭제

전부 다 삭제 되어있는 것을 확인 할 수 있습니다.

kubectl delete deployment.apps/sample-nginx


오늘은 쿠버네티스란 무엇이지 배워보고 간단한 명령어를 확인해 보았습니다.

다음시간엔 쿠버네티스의 Script 파일을 작성해보고 Ansible과 연동해보는 작업을 해보겠습니다.

 

 

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

 

쿠버네티스란 무엇인가?

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

kubernetes.io


참고자료

🔗 - 인프런- Jenkins를 이용한 CI/CD Pipeline 구축

 

 

 

 

728x90
반응형