본문 바로가기

전체 글120

쿠버네티스(5) - 레이블과 셀렉터 레이블이란?레이블이란 클러스터 내의 오브젝트(예: Pod, Node, Service 등)를 식별하고 그룹화하는 데 사용되는 key-value 쌍이다. 레이블은 오브젝트에 첨부되어 여러 목적을 위해 활용될 수 있다. 예를 들어, 레이블을 사용하여 특정 오브젝트를 선택하거나 필터링할 수 있으며, 오토스케일링, 롤링 업데이트, 서비스 디스커버리 등의 기능을 구현하는 데 유용하다. Node를 포함하여 pod, deployment 등 모든 리소스에 할당가능리소스의 특성을 분류하고, Selector를 이용해서 선택할 수 있다.  yaml 예시apiVersion: v1kind: Podmetadata: name: mypod labels: app: myapp environment: productionspe.. 2024. 7. 15.
쿠버네티스(4) - 인그레스 4-1 ingress, ingress controller란? (Feat. Istio Gateway와 API Gateway)인그레스(ingress)는 클러스터 외부에서 내부로 접근하는 요청들을 어떻게 처리할 지 정의해둔 규칙들의 모음이다.인그레스 컨트롤러(Ingress Controller)는 클러스터에서 실행되고 수신 리소스에 따라 HTTP 로드 밸런서를 구성하는 응용 프로그램이다. HTTP(s)를 통해 클러스터 내부의 서비스를 외부로 노출ingress는 규칙이다. 이것을 ingress controller에 등록시켜준다. 즉 인그레스는 규칙들을 정의해둔 리소스이고, 이를 실제 동작하기 위해서는 인그레스 컨트롤러가 필요하다.ingress controller에 접근할 때는 service로 접근한다. (ingr.. 2024. 7. 15.
쿠버네티스(3) - 서비스 Kubernetes에서는 서비스라는 개념을 사용하여 파드(Pod)들에 대한 네트워크 접근을 관리한다.서비스는 일종의 가상 IP 주소와 포트를 제공하며, 그 파드들에 대한 로드 밸런싱, 서비스 발견 등을 담당한다.서비스는 동일한 Pod 그룹의 단일 진입점을 제공한다. (로드밸런싱 역할) 단일진입점: 여러 개의 동일한 역할을 하는 파드들을 하나로 묶어서 외부에서 접근할 수 있는 단일한 접근 지점을 제공한다는 의미서비스는 ClusterIp 서비스에 접근할 때 서비스 ip 혹은 서비스 이름 외에도 DNS명으로도 접근할 수 있다. e.g. http://my-service.default.svc.cluster.localDNS이름은 {서비스 이름}.{네임스페이스}.svc.cluster.local 형식을 따른다. 3-1.. 2024. 7. 8.
쿠버네티스(2) - 컨트롤러 2-1 컨트롤러란?쿠버네티스 컨트롤러는 파드를 관리하는 역할을 한다.즉 파드(컨테이너)의 상태를 판단해 문제가 생기면 재생성, 관리를 해주는 역할을 한다. 컨트롤러는 다양한 목적에 따라 쿠버네티스에서 제공하는 컨트롤러를 사용하면 된다. 쿠버네티스에서 제공하는 컨트롤러의 종류로는 "레플리케이션 컨트롤러", "레플리카 세트", "디플로이먼트", "데몬" , "스테이트풀세트", "크론잡" 등이 있다. 2-2 각 컨트롤러의 용도일반적으로 상태를 유지하지 않아도 되는 파드를 관리하는 경우레플리케이션 컨트롤러(Relication Controller) // 디플로이먼트(레플리카 셋) 때문에 거의 사용안함레플리카 셋(Replica Set) // 레플리카 셋을 직접적으로 사용안하고 디플로이먼트를 사용디플로이먼트(Depl.. 2024. 7. 8.
쿠버네티스(1) - 파드 1-1 파드의 개념파드란 컨테이너를 표현하는 쿠버네티스의 API의 최소단위Pod에는 하나 또는 여러 개의 컨테이너가 포함될 수 있음 Pod안에 여러 컨테이너가 존재하더라도 Pod의 IP는 무저건 하나다.2가지 파드 생성방법1. kubectl run 명령어2. pod yaml을 이용해서 생성multiple podapiVersion: v1kind: Podmetadata: name: multipodspec: containers: - name: nginx-container1 image: nginx:1.14 ports: - containerPort: 80 - name: nginx-container2 image: nginx:1.14 ports: - containerPo.. 2024. 7. 5.
Spring Data JPA - 쿼리 메서드(3) 7. 벌크성 수정 처리 벌크 업데이트란 단건 UPDATE, DELETE가 아닌 다건의 UPDATE, DELETE 연산을 하나의 쿼리로 하는 것을 말한다. // Bulk Update @Modifying(clearAutomatically = true) @Query("update Member m set m.age = m.age + 1 where m.age >= :age") int bulkAgePlus(@Param("age") int age); 벌크성 수정 쿼리 사용시 주의점 JPA에서 벌크 연산성 조심해야할 게 있다. JPA라는것은 영속성 컨텍스트에서 Entity들이 flush()를 통해서 DB에 반영이 되는건데 벌크연산은 영속성 컨테이너를 안거치고 직접 DB에 update 연산을 해버린다. 그래서 영속성 컨.. 2023. 4. 13.