쿠버네티스 관리 도구

쿠버네티스를 제대로 활용하려면 여러 대 서버를 클러스터로 구성해 사용해야 한다. 서버 자원에 쿠버네티스 클러스터를 직접 구성할 때 활용하는 도구는 Kubeadm, Kubespray가 있다. Kubeadm Kubeadm은 쿠버네티스에서 공식 제공하는 클러스터 생성/관리 도구이다. 여러 대 서버를 쿠버네티스 클러스터로 손쉽게 구성할 수 있다. 특징은 다음과 같다. 쿠버네티스에서 직접 제공하는 클러스터 생성 tool 클러스터 생성을 위해 필요한 기초 생성, 관리 명령어들이 포함된다. 클러스터를 관리하기 위한 것이므로 개별 node 에 대한 container runtime, kublet, cni 등은 알아서 설치가 필요하다.

쿠버네티스와 클라우드 네이티브

클라우드 네이티브 클라우드 네이티브란 클라우드의 장점을 최대한 활용하여 정보 시스템을 구축 및 실행하는 환경이다. 클라우드 네이티브 기술은 조직이 퍼블릭, 프라이빗, 그리고 하이브리드 클라우드와 같은 현대적이고 동적인 환경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬, 마이크로서비스, 불변(Immutable) 인프라, 그리고 선언형(Declarative) API가 이러한 접근 방식의 예시들이다. 이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고한 자동화 기능을 함께 사용하면 엔지니어는 영향이 큰 변경을 최소한의 노력으로 예측 가능하게 수행할 수 있다.

하드링크, 심볼릭링크

inode 리눅스에는 inode 라는 개념이 있다. inode는 유닉스 계통의 파일 시스템에서 사용하는 자료 구조이다. 모든 파일과 디렉토리는 inode를 하나씩 가지고 있다. 그리고 여기에는 해당 파일의 허가권, 소유권, 파일의 실제 위치 등 중요한 정보들이 들어있다. inode는 실제 파일의 내용을 갖고 있지는 않다. inode는 데이터의 우편번호 역할을 한다고 볼 수 있다. 즉, 파일의 내용을 갖고 있는 주소를 포함할 뿐이다. 리눅스 파일 링크 종류 하드 링크 (Hard link) 하드 링크는 원본 파일과 동일한 inode를 직접적으로 가리킨다.

HTTP

HTTP HTTP는 HyperText Transfer Protocol의 약자로, HTML, text, image, 음성, 영상, 파일, JSON, XML 등 거의 모든 형태의 데이터를 전송 가능한 프로토콜이다. HTTP 특징 클라이언트-서버 구조 클라이언트는 서버에 요청을 보내고, 응답을 대기한다. 서버는 요청에 대한 결과를 만들어서 응답한다. 무상태 프로토콜(Stateless)) 서버가 클라이언트의 상태를 보존하지 않는다. 장점: 서버 확장성 높음(스케일 아웃) 단점: 클라이언트가 추가 데이터 전송 모든 것을 무상태로 설계 할 수 없는 경우에는 브라우저 쿠키와 서버 세션등을 사용해서 상태 유지를 함으로써 무상태 프로토콜의 한계를 극복할 수 있다.

URI, URL, URN

URI URI는 로케이터(locator), 이름(name)을 포함한 개념이다. URI는 다음과 같이 풀이할 수 있다. Uniform: 리소스 식별하는 통일된 방식 Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음) Identifier: 다른 항목과 구분하는데 필요한 정보 URL, URN URL, URN은 다음과 같이 풀이할 수 있다. URL: Uniform Resource Locator : 리소스가 있는 위치를 지정 URN: Uniform Resource Name : 리소스에 이름을 부여 URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않아, 잘 사용하지 않는다.

페치 조인

페치 조인 (Fetch Join) 페치 조인은 JPQL에서 연관된 엔티티나 컬렉션을 SQL 한 번에 함께 조회하는 기능을 한다. 사용 문법은 다음과 같다. 1 페치 조인 ::= [ LEFT [OUTER] | INNER ] JOIN FETCH 조인경로 페치 조인은 SQL 한 번으로 연관된 엔티티들을 함께 조회할 수 있어서 SQL 호출 횟수를 줄여 성능을 최적화할 수 있다. 페치 조인은 엔티티에 직접 적용하는 글로벌 로딩 전략보다 우선한다. 실무에서는 글로벌 로딩 전략은 모두 지연 로딩이므로, 최적화가 필요한 곳은 페치 조인을 적용하면 효과적이다.