본문 바로가기
728x90

[DevOps]/Kubernetes18

kubernetes - Label & Selector의 역할 쉽게 이해하기 📌 Label & Selector 레이블 (Label) 레이블은 쿠버네티스 리소스에 부여되는 키-값 쌍으로, 리소스를 식별하고 분류하는 데 사용된다. 레이블은 사용자가 정의하며 리소스에 유연하게 메타데이터를 추가하는 데 유용하다. 예를 들어, "app: frontend"라는 레이블을 가진 파드는 애플리케이션의 프런트엔드 서비스임을 나타낼 수 있다. 레이블은 특정 리소스에 여러 개 할당할 수 있으며, 다양한 목적으로 사용할 수 있다. 셀렉터 (Selector) 셀렉터는 레이블을 사용하여 특정 리소스를 선택하는 데 사용된다. 리소스를 그룹화하고 쿼리를 만들 수 있으며 이는 특정 레이블과 일치하는 리소스를 선택하기 위한 것이다. 예를 들어 "app=frontend"라는 셀렉터를 사용하면 "app: fronte.. 2023. 10. 26.
ReplicationController와 ReplicaSet 간단 정리 📌 ReplicationController VS ReplicaSet ReplicationController와 ReplicaSet은 쿠버네티스에서 파드의 복제본(replicas)을 관리하는 데 사용되는 리소스이다. 🤔 차이점 Selector의 유연성: ReplicationController는 equality-based selector만 지원한다. 즉, 키-값 쌍이 정확히 일치하는 파드만을 선택한다. 반면에 ReplicaSet은 set-based selector를 지원하여 값 집합 내의 파드를 선택할 수 있다. 이로 인해 보다 유연한 파드 선택이 가능합니다. 쿠버네티스 버전과 호환성: ReplicationController는 초기 쿠버네티스 버전부터 포함되어 있었다. 그러나 쿠버네티스 v1.2 이후로 Rep.. 2023. 10. 25.
CKA 필승 노트 💡 이 글은 쿠버네티스 기본 내용을 단권화하여 정리한 글이다.📌 모든 내용은 자세하게 설명하지 않고, CKA 합격에 포커싱하여 간략하게 정리한다.⌨️ UDemy의 Certified Kubernetes Administrator (CKA) with Practice Tests를 기반으로 한다.시작일 : 2023-10-18최근 수정일 : 2024-06-17종료 : 📌 명령어 정리명령어설명kubectl create -f .yml리소스를 처음 생성할 때 사용기존에 동일한 이름의 리소스가 이미 존재하는 경우 에러가 발생 -f는 파일 이름을 전달할 때 사용하는 옵션관리 그룹 내에 파드를 생성kubectl create -f .yml --namespace=dev네임스페이스 옵션kubectl apply -f .yml.. 2023. 10. 18.
kubernetes - Volumes 쿠버네티스 볼륨의 이해 쿠버네티스에서의 볼륨은 도커의 볼륨과 같다. 도커에서 볼륨의 역할은 컨테이너가 생명 주기를 넘겨 사라지거나, 문제가 생겨 중단이 됐을 때 컨테이너를 삭제해도 컨테이너에서 다루는 데이터는 별도로 저장하여 다른 컨테이너에서도 액세스 할 수 있게 하는 것이다. 쿠버네티스 역시 마찬가지이며 컨테이너에서 파드(pod)와 클러스터(Cluster)로 그 범위를 확장하여 생각하면 된다. 비영구 볼륨(Non-Persistent Volumes) 임시 볼륨이라고도 불린다. 파드가 실행되는 동안에만 존재하는 임시 스토리지 솔루션이다. 파드가 종료되면 모든 데이터가 손실된다. 동일한 파드 내의 컨테이너 간 파일 및 데이터를 공유하거나 단기 작업에 사용된다. EmptyDir 쿠버네티스에서 사용할 수 있는 .. 2023. 7. 30.
kubernetes - 명령적 접근 방식과 선언적 접근 방식 명령적 접근 방식과 선언적 접근 방식 사용자가 쿠버네티스와 상호 작용할 수 있는 두 가지 기본 적인 접근 방식이다. 명령적 접근 방식 사용자가 쿠버네티스에게 개별 명령어를 통해 명령을 직접 내린다. 개별적으로 명령을 내리기 때문에 실수가 있을 확률이 높다. 빠른 일회성 작업, 임시 작업, 테스트 작업에 유용하지만 복잡한 시나리오의 구축을 위해서는 반복성과 확장성이 부족하여 사용하기 힘들다. 선언적 접근 방식 yaml 파일을 활용해 쿠버네티스의 클러스터 상태를 정의하여 명령을 내리는 방식이다. 반복성과 확장성을 통한 구성 관리의 용이함으로 쿠버네티스에서 컨테이너화된 애플리케이션을 관리할 때 일관성을 보장하고 효과적으로 협업할 수 있게 한다. nginx 웹 서버 deployment 객체 만들기 명령적 접근 .. 2023. 7. 19.
kubernetes - pod & deployment Pod 쿠버네티스에서 다루는 가장 작은 유닛이다. 파드는 컨테이너를 보유하고 있고, 쿠버네티스는 이러한 파드와 컨테이너를 관리한다. 파드는 하나 이상의 컨테이너를 가진다. 파드는 컨테이너에서 활용하는 볼륨과 같은 공유 리소스 역시 가지고 있다. 클러스터 외부에서도 파드와 통신할 수 있다. 파드는 컨테이너와 같이 임시적이며 제거하거나 교체하면 모든 상태를 잃는다. deployment 개발자는 쿠버네티스에게 파드를 자동으로 생성, 제거, 교체하기를 지시할 수 있다. 이는 쿠버네티스 사용의 핵심 아이디어이다. 개발자는 수동으로 pod 객체를 생성하여 특정 워커 노드에 할당하지 않다. 그럴 거면 쿠버네티스를 쓸 이유가 없다. 대신 deployment 객체를 생성한다. deployment 객체에게 생성하고 관리해.. 2023. 7. 17.
kubernetes - Service 객체에 대해 알아보고 외부에 파드를 노출시켜보기 📌 Service 객체 클러스터의 파드를 다른 파드(pod)에 노출시키는 역할을 한다. 아예 클러스터 외부에 파드를 노출시키기 위해서도 필요하다. 파드를 그룹화하고 공유 주소나 ip를 제공한다. 💡 Service 객체가 없다면? 서비스 객체는 파드를 외부 네트워크에 노출시키고 외부와의 통신을 관리하는 역할을 한다. 파드는 고유한 IP 주소를 가지고 있지만, 이 IP 주소는 클러스터 내부에서만 유효하며 외부에서 접근할 수 없다. 또한, 파드는 지속적이지 않다. 언제든지 사라질 수 있다. 기본적으로 일회성의 목적이 크기 때문이다. 만약 기존 파드가 사라지고 새로운 파드가 생겨난다면 파드에 접근할 수 있는 IP 주소 역시 달라지게 된다. 서비스 객체가 없다면 쿠버네티스 내부의 파드는 외부와 직접적으로 통신할 .. 2023. 7. 14.
kubernetes - minikube를 이용하여 간단한 로컬 테스트 진행해보기 Minikube란? 단일 노드의 Kubernetes 클러스터를 컴퓨터에서 로컬로 실행할 수 있게 해주는 도구이다. 개발 및 테스트 목적으로 Kubernetes 클러스터를 설정하는 프로세스를 단순화한다. 로컬 시스템에 경량의 가상화 환경을 생성하고 해당 환경 내에서 단일 노드 Kubernetes 클러스터를 실행한다. 전체 규모의 클러스터에 액세스하지 않고도 컨테이너 배포 및 관리, 네트워킹 구성, 다양한 Kubernetes 기능 테스트를 실험할 수 있다. 이 클러스터에는 API 서버, 스케줄러 및 컨테이너 런타임과 같은 Kubernetes의 모든 필수 구성 요소가 포함된다. 개발자는 프로덕션 Kubernetes 클러스터와 매우 유사한 환경에서 애플리케이션과 서비스를 테스트할 수 있다. 또한 로컬 Kuber.. 2023. 7. 12.
728x90