전체 글
-
[Kubernetes] Owners 와 Dependents공부/쿠버네티스&헬름 2023. 4. 9. 23:38
Kubernetes는 컨테이너 오케스트레이션 플랫폼으로, 여러 개의 컨테이너를 관리하고 배포하는 데 사용됩니다. 이러한 환경에서는 여러 사용자가 동시에 작업을 수행할 수 있으며, 이러한 사용자를 owner 또는 dependent로 나눌 수 있습니다. Owner(소유자): Kubernetes에서 소유자는 특정 리소스를 만들고 관리하는 사용자를 의미합니다. 이러한 사용자는 해당 리소스에 대한 모든 권한을 가지며, 다른 사용자를 추가하거나 삭제할 수 있습니다. 또한, 소유자는 다른 사용자와 공유하지 않고 해당 리소스를 사용할 수 있습니다. Dependent(부양가족?): Kubernetes에서 부양가족은 소유자가 만든 리소스를 공유하는 사용자 그룹을 의미합니다. 부양가족은 소유자와 동일한 권한으로 해당 리소스..
-
[Kubernetes] 필드 셀렉터공부/쿠버네티스&헬름 2023. 3. 6. 15:36
Kubernetes 필드 셀렉터는 레이블 셀렉터와 유사하지만, 필드 셀렉터는 레이블이 아닌 오브젝트의 필드를 사용하여 셀렉션을 수행합니다. Kubernetes에서는 많은 오브젝트를 사용합니다. 예를 들어, Pod, Service, Node, Namespace 등이 있습니다. 이러한 오브젝트들은 다양한 필드를 가지고 있습니다. 필드 셀렉터는 이러한 오브젝트들의 필드를 사용하여 셀렉션을 수행합니다. 필드 셀렉터는 쿠버네티스 리소스에서 한 개 이상의 필드 값을 기준으로 선택하는 데 사용됩니다. 예를 들어, Pod 오브젝트의 경우에는 Pod의 이름, IP 주소, 레이블 등이 있습니다. 이러한 필드들을 사용하여 특정한 Pod를 선택할 수 있습니다. 다른 예로는 Node 오브젝트의 경우에는 Node의 이름, IP ..
-
[Kubernetes] 파이널라이저공부/쿠버네티스&헬름 2023. 3. 6. 15:27
Kubernetes API 객체를 삭제할 때, 파이널라이저는 해당 객체와 관련된 다른 리소스들도 함께 삭제되도록 합니다. 이를 위해 파이널라이저는 해당 객체가 삭제될 때 모든 관련 리소스들이 함께 삭제되도록 보장하는 메커니즘입니다. 파이널라이저는 오브젝트가 삭제되기 전에 특정 조건이 충족될 때까지 대기하기 위한 네임스페이스에 있는 키(namespaced key)입니다. 이를 통해 삭제가 완료된 오브젝트의 리소스를 정리할 수 있도록 컨트롤러에게 알립니다. 파이널라이저는 Kubernetes API 객체의 metadata 필드에 정의됩니다. 해당 객체를 삭제하도록 지시하면, 쿠버네티스 API는 .metadata.delationTimestamp을 추가하여 객체를 삭제하고 202 상태 코드(HTTP "Accept..
-
[Kubernetes] 어노테이션공부/쿠버네티스&헬름 2023. 3. 5. 12:37
Kubernetes 어노테이션은 리소스의 부가정보를 제공합니다. 레이블과 유사하지만 더 많은 메타데이터를 저장하고 비식별 메타데이터를 오브젝트에 첨부할 수 있습니다. 클라이언트는 이 메타데이터를 검색할 수 있습니다. 어노테이션에는 다음과 같은 정보가 포함될 수 있습니다. 리소스 구성에 대한 추가 정보 인증 정보 클러스터 또는 네임스페이스 수준의 설정 정보 빌드 또는 배포에 대한 버전 정보 어노테이션은 일반적으로 클러스터 관리자 또는 개발자가 사용합니다. 어노테이션을 사용하여 리소스를 더 잘 추적하고, 리소스 간의 관계를 더 잘 이해하며, 리소스를 더 효과적으로 관리할 수 있습니다. 오브젝트에 메타데이터 첨부 쿠버네티스 오브젝트에는 메타데이터를 첨부할 수 있습니다. 레이블을 사용하여 오브젝트를 선택하고, ..
-
[Kubernetes] 레이블과 셀렉터공부/쿠버네티스&헬름 2023. 3. 5. 12:22
레이블 레이블은 파드와 같은 오브젝트에 첨부된 키-값 쌍으로, 오브젝트의 특성을 식별하는 데 사용됩니다. 이는 사용자에게 중요하지만, 코어 시스템에 직접적인 의미는 없습니다. 레이블은 오브젝트의 하위 집합을 선택하고 구성하는 데 사용될 수 있습니다. 레이블은 오브젝트 생성 또는 생성 이후에 붙일 수 있으며, 각 오브젝트마다 키와 값으로 정의할 수 있습니다. Kubernetes에서는 리소스에 레이블(Label)을 달아, 리소스에 대한 여러 가지 정보를 기반으로 선택하거나 그룹화할 수 있습니다. "metadata": { "labels": { "key1" : "value1", "key2" : "value2" } } 레이블은 UI와 CLI에서 쿼리 및 검색에 효율적이며, 식별되지 않는 정보는 어노테이션으로 기록..
-
[Kubernetes] 네임스페이스공부/쿠버네티스&헬름 2023. 3. 5. 11:14
Kubernetes는 컨테이너 오케스트레이션 시스템의 대표적인 예시입니다. 하지만, 대규모 애플리케이션을 운영하다보면, 수 많은 컨테이너와 그들의 리소스들을 한 곳에 두면, 서로 간의 충돌이나 오작동과 같이 다양한 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 Kubernetes는 네임스페이스 기능을 제공합니다. 네임스페이스는 리소스를 논리적으로 분리하고 격리시키는 개념입니다. Kubernetes에서 네임스페이스를 사용하면, 클러스터 내에서 리소스를 분리하고 다른 네임스페이스와 격리시킬 수 있습니다. 이를 통해, 서로 다른 팀이나 프로젝트 간에 리소스를 분리하여 충돌을 방지하고, 보안을 강화할 수 있습니다. 네임스페이스의 가장 큰 특징은 네임스페이스 내에서만 유효하다는 것입니다. 예를 들어, ..
-
[Kubernetes] 오브젝트 이름과 ID공부/쿠버네티스&헬름 2023. 3. 4. 16:38
각 클러스터 오브젝트는 해당 유형의 리소스에 대한 고유 이름과 UID를 가집니다. 예를 들어, 이름이 myapp-1234인 파드는 동일한 네임스페이스 내에서 하나만 존재할 수 있지만, 이름이 같은 파드와 디플로이먼트는 각각 존재할 수 있습니다. 사용자 정의 속성이 필요한 경우, 레이블과 어노테이션을 사용할 수 있습니다. 이름 /api/v1/pods/some-name은 클라이언트가 오브젝트를 가리키는 데 사용하는 문자열입니다. 한 종류(kind) 내에서는 한 이름이 하나의 오브젝트에만 지정될 수 있지만, 삭제된 오브젝트와 같은 이름을 새로운 오브젝트에 지정할 수 있습니다. 💡 물리적 호스트를 나타내는 노드와 같이 오브젝트가 물리적 엔티티를 나타내는 경우, 노드를 삭제한 후 다시 생성하지 않은 채 동일한 이..
-
[Kubernetes] 쿠버네티스 오브젝트 관리공부/쿠버네티스&헬름 2023. 3. 4. 16:21
kubectl 커맨드라인 툴은 쿠버네티스 오브젝트를 생성하고 관리하는 다양한 방법을 지원합니다. 이 문서는 여러 가지 접근법에 대한 개요를 제공합니다. 관리 기법 💡 쿠버네티스 오브젝트는 하나의 기법으로만 관리해야 합니다. 다른 기법을 혼용하면 예상치 못한 문제가 발생할 수 있습니다. 명령형 커맨드 kubectl 커맨드를 사용하여 클러스터 내의 활성 오브젝트를 직접 동작시킬 수 있습니다. 이 방법은 일회성 작업을 시작하거나 실행하는 데 추천됩니다. 그러나 이 방법은 활성 오브젝트에 직접적인 영향을 미치기 때문에, 이전 구성에 대한 이력을 제공하지 않습니다. 예를 들어, 아래와 같이 디플로이먼트 오브젝트를 생성하여 nginx 컨테이너의 인스턴스를 구동시킬 수 있습니다. kubectl create deplo..
-
[Kubernetes] 쿠버네티스 오브젝트 이해하기공부/쿠버네티스&헬름 2023. 3. 4. 15:55
쿠버네티스 오브젝트 이해하기 쿠버네티스는 컨테이너 오케스트레이션 시스템으로, 애플리케이션을 배포, 확장 및 관리하는 데 사용됩니다. 이를 위해 쿠버네티스는 다양한 오브젝트를 사용합니다. 쿠버네티스 오브젝트는 쿠버네티스 시스템의 영속성을 가지는 오브젝트입니다. 이 오브젝트를 이용하여 쿠버네티스는 클러스터의 상태를 표시합니다. 구체적으로는 다음과 같습니다. 어떤 컨테이너화된 애플리케이션이 동작 중인지 (그리고 어느 노드에서 동작 중인지) 애플리케이션이 이용할 수 있는 리소스 애플리케이션이 재구동, 업그레이드, 내고장성 등에 대해 어떻게 동작해야 하는지에 대한 정책 쿠버네티스 오브젝트는 하나의 의도를 담은 레코드입니다. 오브젝트를 생성하면, 쿠버네티스 시스템은 그 오브젝트 생성을 보장하기 위해 지속적으로 작동..
-
[Kubernetes] 쿠버네티스 API공부/쿠버네티스&헬름 2023. 3. 4. 15:27
쿠버네티스의 핵심은 API 서버입니다. API 서버는 HTTP API를 통해 최종 사용자, 클러스터의 다른 부분 및 외부 컴포넌트가 서로 통신할 수 있도록합니다. 쿠버네티스 API를 사용하면 API 오브젝트 (예 : 파드, 네임스페이스, 컨피그맵 및 이벤트)를 질의 및 조작할 수 있습니다. 즉, 쿠버네티스 API를 사용하면 클러스터 내의 노드, 파드, 서비스, 볼륨 등의 리소스를 관리할 수 있습니다. 뿐만 아니라, 쿠버네티스 API는 클러스터의 상태를 조회하고, 설정을 변경하고, 이벤트를 모니터링할 수 있는 다양한 기능을 제공합니다. 쿠버네티스 API는 RESTful API로 구현되어 있으며 대부분의 작업은 kubectl 또는 kubeadm과 같은 커맨드 라인 도구를 사용하여 수행 가능하지만 REST 호..