전체 글 28

[K8S] 쿠버네티스 네트워킹이란

1. 쿠버네티스 네트워킹 모든 포드는 클러스터 내 사용가능한 고유의 IP를 할당받는다. 포드와 포드, 포드와 노드 간 통신은 NAT 없이 가능한다. 시스템 데몬 또는 kubelet과 같은 에이전트는 자신이 속한 노드의 포드와 통신할 수 있다. 출처: https://kubernetes.io/docs/concepts/services-networking/ 출처: https://kubernetes.io/docs/concepts/cluster-administration/networking/

[K8S] 어노테이션이란

1. 어노테이션 어노테이션은 레이블과 동일하게 Key-Value를 통해 리소스의 특성을 기록한다. 레이블과 달리, 포드를 실행하는 Administrator 전달을 목적으로 한다. ① 쿠버네티스에 특정 정보 전달을 목적으로 사용 (디플로이의 롤링 업데이트 기록) ② 관리를 위해 필요한 정보 기록 목적으로 사용 (릴리즈, 로깅, 모니터링) 2. 어노테이션 예시 어노테이션이 추가된 포드 YAML은 아래와 같다. apiVersion: v1 kind: Pod metadata: name: {포드 명} annotations: {어노테이션 키}:{어노테이션 값} spec: containers: - name: {컨테이너 명} image: {이미지 명} 어노테이션 확인 명령은 아래와 같다. kubectl describe ..

[K8S] 노드 레이블이란

1. 노드 레이블 노드 레이블(Node Label)은 노드에 부여되는 레이블을 의미한다. 2. 노드 레이블 명령어 노드에 레이블 키, 값 부여 kubectl label nodes {노드 명} {레이블 키}={레이블 값} 노드에 부여된 레이블 확인 kubectl get nodes --show-labels kubectl get nodes -L {레이블 명} 노드 레이블 변경 kubectl label node {노드 명} {레이블 키}={레이블 값} --overwrite 노드 레이블 제거 kubectl label node {노드 명} key- 3. 포드 YAML에서 노드 레이블 설정 포드 YAML에서 노드 레이블 설정 시, 해당 노드에 포드가 생성된다. apiVersion: v1 kind: Pod metada..

[K8S] 레이블이란

1. 레이블 레이블(Label)은 포드와 같은 오브젝트에 첨부된 키와 값을 쌍을 의미한다. 레이블은 직접적인 의미는 없지만, 오브젝트 하위 집합을 선택하고 구성하는데 사용할 수 있다. 느슨하게 결합한 방식으로 조직 구조와 시스템 오브젝트를 맵핑할 수 있다. 2. 레이블 YAML Pod YAML apiVersion: v1 kind: Pod metadata: name: {포드 명} spec: containers: - name: {컨테이너 명} image: {이미지 명} Pod + Label YAML apiVersion: v1 kind: Pod metadata: name: {포드 명} label: environment: {환경 명, production} app: {레이블 명} version: {버전, "1.0..

[K8S] 프로비저닝이란

1. 프로비저닝 프로비저닝(Provisioning)은 쿠버네티스 내 저장소 자원을 구성하고 할당하는 과정을 의미한다. 2. 정적 프로비저닝 정적 프로비저닝은 관리자가 수동으로 PV를 생성함을 의미한다. PV의 storage, access, directory 등을 직접 지정한다. 사용자가 PVC를 생성하면 쿠버네티스는 PVC의 요구 사항과 일치하는 사용 가능한 PV에 바인딩한다. 3. 동적 프로비저닝 동적 프로비저닝은 PVC 요청에 대한 PV를 자동으로 생성하는 과정을 의미한다. 관리자는 자동으로 볼륨을 생성·할당하는 StorageClass를 사용한다.

[K8S] 공유 볼륨이란

1. 공유 볼륨 공유 볼륨(Shared Volume)은 하나의 포드 내, 두 개의 컨테이너가 하나의 볼륨을 공유하는 것을 의미한다. 위 구조로 YAML을 작성할 경우, 아래와 같다. apiVersion: v1 kind: Pod metadata: name: {포드 명} spec: containers: - name: {컨테이너 명} image: {이미지 명} volumeMounts: - mountPath: /alpha-directory name: shared-data - name: {컨테이너 명} image: {이미지 명} volumeMounts: - mountPath: /beta-directory name: shared-data volumes: - name: shared-data emptyDir: {}

[K8S] RBAC란

1. 롤 롤(Role)은 특정 API나 자원 사용 권한을 명시한 규칙 집합을 의미한다. 롤과 클러스터롤이 있다. 롤은 해당 롤이 속한 네임스페이스에만 적용된다. 클러스터롤은 특정 네임스페이스가 아닌, 클러스터 전체 사용 권한을 관리한다. 2. RBAC 쿠버네티스 초기에는 ABAC를 주로 사용했으나, 현재는 RBAC를 사용하고 있다. RBAC(Role Based Access Control)는 사용자의 역할을 기반으로 쿠버네티스 클러스터 내 사용자 액세스를 허용하거나 제한하는 역할을 수행한다. 누가(주체), 무엇을(동사), 어디에(네임스페이스) 실행할 수 있는지 결정하는 권한 또는 템플릿 집합을 수반하는 아이덴디티 및 액세스 관리 형식이다. 3. 바인딩 바인딩에는 역할 바인딩과 클러스터 역할 바인딩이 있다...