분류 전체보기 1341

Ch01. 시작 - 데이터베이스 테이블 생성

H2 테이블 생성 drop table if exists item CASCADE; create table item ( id bigint generated by default as identity, item_name varchar(10), price integer, quantity integer, primary key (id) ); generated by default as identity identity 전략이고 하는데, 기본 키 생성을 데이터베이스에 위임하는 방법이다. MySQL의 Auto Increment와 같은 방법이다. 여기서 PK로 사용되는 id는 개발자가 직접 지정하는 것이 아니라 비워두고 저장하면 된다. 그러면 데이터베이스가 순서대로 증가하는 값을 사용해서 넣어준다 참고 (권장하는 식별자 선택..

Ch01. 시작 - 프로젝트 구조 설명(테스트)

ItemRepositoryTest @SpringBootTest class ItemRepositoryTest { @Autowired ItemRepository itemRepository; @AfterEach void afterEach() { //MemoryItemRepository 의 경우 제한적으로 사용 if (itemRepository instanceof MemoryItemRepository) { ((MemoryItemRepository) itemRepository).clearStore(); } } @Test void save() { //given Item item = new Item("itemA", 10000, 10); //when Item savedItem = itemRepository.save(i..

Ch01. 시작 - 프로젝트 구조 설명(설정)

MemoryConfig @Configuration public class MemoryConfig { @Bean public ItemService itemService() { return new ItemServiceV1(itemRepository()); } @Bean public ItemRepository itemRepository() { return new MemoryItemRepository(); } } ItemServiceV1 , MemoryItemRepository를 스프링 빈으로 등록하고 생성자를 통해 의존관계를 주입한다. 참고로 여기서는 서비스와 리포지토리는 구현체를 편리하게 변경하기 위해, 이렇게 수동으로 빈을 등록했다. 컨트롤러는 컴포넌트 스캔을 사용한다 TestDataInit @Slf4j ..

Ch01. 시작 - 프로젝트 구조 설명(기본)

Build.gradle plugins { id 'org.springframework.boot' version '2.6.5' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thym..

GCP에 쿠버네티스 설치 및 실행

1. 새 프로젝트 생성 Project만 지우면 프로젝트 내에 인스턴스, 리소스가 한번에 제거가 된다 상위 개념으로 Company를 설정할 수 있지만, 후에 Company 밑에 다른 프로젝트가 있다면,Company를 삭제할 때 문제가 발생하므로 "조직 없음" 으로 설정하자. 프로젝트 이름과 프로젝트 ID를 고유 이름으로 만들어야 관리하기 편하다 2. 쿠버네티스 클러스터 접속 GCP는 모든 기능을 설치해 두지 않기 때문에, 클릭할 때 설치가 진행된다(시간이 걸림) 2-1. 표준 클러스터 만들기 2-2. 지역 설정(region) 2-3. 노드 설정 변경 3. 클러스터 연결 cloud shell 을 통해 크롬에서 연결할 수 있다(별도 설치 안해도 된다) 4. nginx Test kubectl get nodes ..

클러스터 구성 및 쿠버네티스 테스트

1. 마스터 노드 Init kubeadm init #마스터 노드에서만 실행 2. workNode 등록 kubeadm join ~~ 을 복사하여 해당 명령어 실행 이슈) 강의대로 진행하다가 오류가 발생하여 해당 블로그를 보고 해결 https://fusiondeveloper.tistory.com/65 ...accepts at most 1 arg(s), received 3 To see the stack trace of this error execute with --v=5 or higher '워커노드'를 '마스터노드'에 조인 하려니 다음과 같은 에러가 났다. ubuntu@ip-172-31-11-218:~$ sudo kubeadm join 172.31.3.175:6443 --token yevbd3.8h1jeuc6..

master 노드와 work 노드 생성

1. 지금까지 작성한 파일 복사 2. vmx파일로 vmworkspace에 등록 후, 이름 변경 3. node들 IP 변경(고정 IP) 3-1. sudo vim /etc/netplan/00-installer-config.yaml 로 IP 변경 3-2. sudo netplan apply 로 적용 4. hostname 변경 hostnamectl set-hostname 호스트명 #명령어를 통해 호스트명 변경 vim /etc/hosts #해당 파일의 호스트명 수정 sudo -i #root로 접속하여 확인

우분투 환경에 클러스터 설치

쿠버네티스 우분투에 설치 다음 내용을 kube_install.sh 파일에 작성하고 chmod로 권한을 주고 실행 쿠버네티스 설치 사이트에서 스크립트를 가져옴 https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ Installing kubeadm This page shows how to install the kubeadm toolbox. For information on how to create a cluster with kubeadm once you have performed this installation process, see the Using kubeadm to Create a Cluster pag..

구글 클라우드 플랫폼에서 쿠버네티스 시작하기

Google cloud 의 관리형 kubernetes 서비스인 Google Kubernetes Engine(GKE) GKE 는 Kubernetes 를 쉽게 사용자가 활용할 수 있도록 관리형으로 제공 규모에 맞춘 컨테이너식 애플리케이션 관리 다양한 애플리케이션 배포 고가용성을 통한 원활한 운영 수요에 맞게 간편하게 확장 Google 네트워크에서의 안전한 실행 온프레미스 및 클라우드 간의 자유로운 이동 실습 하기 1. 프로젝트 생성 2. 쿠버네티스 설치 Standard는 노드를 직접 할당하고, Autopilot은 컨테이너에서 노드를 할당하는 방식이다. 3. 클러스터 기본 사항 설정 영역보다 리전이 비용이 더 많이 나온다.

쿠버네티스 아키텍처

쿠버네티스의 클러스터는 하드웨어 수준에서 많은 노드로 구성되며 두 가지 유형 나뉨 마스터 노드: 전체 쿠버네티스 시스템을 관리하고 통제하는 쿠버네티스 컨트롤 플레인을 관장 워커 노드: 실제 배포하고자 하는 애플리케이션의 실행을 담당 쿠버네티스 클러스터 아키텍처 컨트롤 플레인 컨트롤 플레인에서는 클러스터를 관리하는 기능 단일 마스터 노드에서 실행하거나 여러 노드로 분할되고 복제돼 고가용성을 보장 클러스터의 상태를 유지하고 제어하지만 애플리케이션을 실행하지 않음 구성요소 쿠버네티스 API 서버: 사용자, 컨트롤 플레인과 통신 스케줄러: 애플리케이션 예약(애플리케이션의 배포 가능한 각 구성 요소에 워커 노드를 할당) 컨트롤 매니저: 구성 요소 복제, 워커 노드 추적, 노드 장애 처리 등 클러스터 수준 기능을 ..