이해할 때까지 설명하는 개발자
close
프로필 배경
프로필 로고

이해할 때까지 설명하는 개발자

  • 전체 (180) N
    • 경험담(經驗) 경험담(輕險) (0)
    • 독서 (41) N
      • 소프트웨어 장인 (0)
      • tidy first (13)
      • extreme programming (23) N
      • 객체지향의 사실과 오해 (4) N
    • 회고 (3)
    • 단편 (30)
      • Java (22)
      • js (2)
      • scratch (4)
      • tistory (2)
    • 시리즈 (105)
      • 나 혼자 떠드는 자바 (9)
      • Go (29)
      • Java online live study S01 (15)
      • Kubernetes (15)
      • Spring Security (22)
      • Spring Web MVC (15)
    • Archive (1)
  • portfolio
  • tech-blog
  • linked-in
  • naver-blog
Kubernetes 스터디 07 :: ConfigMap, Secret (Env, Mount)

Kubernetes 스터디 07 :: ConfigMap, Secret (Env, Mount)

본격적인 사용 방법을 알아보기에 앞서 ConfigMap 과 Secret 이 언제 사용되는지 먼저 정리한다.개발 환경과 운영 환경이 있다. A Service 는 환경에 따라 SSH 설정 및 User 와 key 값을 설정해야 한다. 하지만 이 값은 Container 안에 있는 Service 에 들어있는 값이기 때문에 이 값을 바꾼다는 것은 환경에 따라 Container Image 를 따로 관리해야 한다는 것을 의미한다. 단순히 이 값을 관리하기 위해 용량이 큰 Image 를 별도로 관리하는 것은 부담되는 일이다.보통 환경에 따라 변하는 값들을 외부에서 결정할 수 있도록 한다. 이것을 도와주는 것이 ConfigMap 과 Secret 이라는 오브젝트 이다. 관리 해야 하는 일반적인 상수들을 모아 ConfigMa..

  • format_list_bulleted 시리즈/Kubernetes
  • · 2021. 12. 3.
  • textsms
Kubernetes 스터디 06 :: Volume (emptyDir, hostPath, PVC/PV)

Kubernetes 스터디 06 :: Volume (emptyDir, hostPath, PVC/PV)

emptyDirContainer 간 데이터 공유를 위해 Volume 을 사용하는 것을 말한다. 최초 Volume 이 생성될 때는 항상 내용이 비어있기 때문에 emptyDir 이란 이름을 가지게 되었다.만약 Container 1 이 web 역할을 하는 서버이고 Container 2 는 백엔드를 처리해주는 서버라고 하자. 이 때 web 서버로부터 받은 파일을 mount 된 Volume 에 저장해두고 백엔드의 Container 역시 같은 Volume 을 mount 해두면 이 두 서버가 Volume 을 자신의 로컬에 있는 파일 처럼 사용할 수 있다. 즉 두 서버 간 파일 전송 없이 같은 파일을 사용할 수 있다.추가로 Volume 은 Pod 안에 생성되기 때문에 만약 Pod 에 문제가 발생하여 다시 생성 될 경우..

  • format_list_bulleted 시리즈/Kubernetes
  • · 2021. 12. 2.
  • textsms
Kubernetes 스터디 05 :: Service (ClusterIP, NodePort, LoadBalancer)

Kubernetes 스터디 05 :: Service (ClusterIP, NodePort, LoadBalancer)

ClusterIPService 는 기본적으로 아래 그림과 같이 자신의 ClusterIp 를 가지고 있다.그리고 이 Service 를 Pod 에 연결시켜두면 Service 의 IP 를 통해 Pod 에 접근할 수 있게 된다.앞서 Pod 에도 동일하게 Cluster 내에서 접근할 수 있는 IP 가 존재함에도 불구하고 굳이 Service 를 붙여서 접근하는지 의문이 생긴다. 이렇게 하는 이유는 Pod 는 k8s 에서 다양한 이유로 언제든 다운될 수 있으며 언제든 다시 생성될 수 있는 오브젝트이기 때문이다. (다시 생성 될 경우 Pod 의 IP 는 매번 달라진다.)반면 Service 의 경우 사용자가 직접 명령을 하지 않는 한 스스로 삭제 되거나 다시 생성되지 않는다. 즉, 이 Service IP 를 사용하면 항..

  • format_list_bulleted 시리즈/Kubernetes
  • · 2021. 11. 29.
  • textsms
Kubernetes 스터디 04 :: Pod (Container, Label, NodeSchedule)

Kubernetes 스터디 04 :: Pod (Container, Label, NodeSchedule)

PodPod 안에는 하나의 독립 된 서비스를 구동할 수 있는 Container 들이 있다. 그리고 각 Container 들은 서비스가 연결될 수 있도록 port 를 가지고 있다. 하나의 Container 는 하나 이상의 port 를 가질 수 있지만, 하나의 Pod 내에서 같은 port 를 가지는 Container 는 존재할 수 없다.Container1 과 Container2 는 하나의 host 로 묶여 있다고 볼 수 있기 때문에, 만약 Container1 에서 Container2 로 접속을 할 때 [localhost:8080](http://localhost:8080) 으로 접근할 수 있다.Pod 가 생성될 때 IP 주소가 할당 되는데 k8s Cluster 내에서 Pod 에 접근할 때 사용하는 것으로 외부..

  • format_list_bulleted 시리즈/Kubernetes
  • · 2021. 11. 26.
  • textsms
Kubernetes 스터디 03 :: 쿠버네티스 훑어보기

Kubernetes 스터디 03 :: 쿠버네티스 훑어보기

Kubernetes 는 한 대의 서버를 Master 로 사용하고 다른 서버는 Node 로 하나의 Master 에 다수의 Node 들이 연결 된다. 이렇게 연결 된 하나의 묶음이 Kubernetes Cluster 가 된다.Master 는 Kubernetes 의 전반적인 기능들을 컨트롤 하고, Node 들은 자원을 제공하는 역할을 한다. 만약 Cluster 전체 자원을 늘리고 싶으면 Node 를 계속 추가하면 된다.Namespace 는 Cluster 안에서 Kubernetes 의 Object 들을 독립된 공간으로 분리할 수 있게 해준다. Namespace 에는 Kubernetes 최소 배포 단위인 Pod 들이 있고, 이 Pod 들에게 외부로부터 연결이 가능하도록 IP 를 할당해주는 서비스가 있다. 하지만 서..

  • format_list_bulleted 시리즈/Kubernetes
  • · 2021. 11. 24.
  • textsms
Kubernetes 스터디 02 :: VM 과 Container 비교

Kubernetes 스터디 02 :: VM 과 Container 비교

VM 과 Container 모두 공통적으로 하나의 서버(Host Server)가 있고 그 서버에는 Host OS 가 올라간다.VM 의 경우 Host OS 위에 VM 을 가상화 하기 위한 여러 Hypervisor 가 있고 그 위에 Guest OS 를 올려 다수의 VM 을 만들 수 있다. 이 Guest OS 역시 Host OS 와 같이 독립적으로 사용해서 각각의 OS 에 애플리케이션을 설치하고 서비스를 만들어 제공할 수 있다.Container 의 경우 Host OS 위에 Container 가상화를 시켜주는 다양한 소프트웨어들이 있는데, 보편적으로 Docker 를 많이 사용 한다.  Docker 를 사용해서 Container 를 만들 수 있다.Linux 마다 버전이 있고, 이 버전에 따라 기본적으로 제공되는 ..

  • format_list_bulleted 시리즈/Kubernetes
  • · 2021. 11. 24.
  • textsms
Kubernetes 스터디 01 :: 쿠버네티스 사용 이유

Kubernetes 스터디 01 :: 쿠버네티스 사용 이유

원활한 서비스 제공을 위해 필요한 자원을 미리 준비하는 것은 비용과 관리 측면에서 어려움이 있다.  As-IsA, B, C 각 서비스는 시간대 별로 필요한 자원이 유동적으로 바뀌지만, 서버 자원을 동적으로 변경할 수 없어 최대 부하를 견딜 수 있는 자원을 미리 준비시켜야 한다.각 서비스별 장애 상황에 대비해 최소 하나의 백업 서버가 필요하기 때문에 3대의 서버가 추가로 필요하다.무중단 서비스를 제공하기 위해 운영 배포시 한 번에 한 대씩 서버 작업을 해야 한다. To-BeA, B, C 각 서비스는 auto scaling 기술을 통해 CPU, 메모리, 디스크, 네트워크 트래픽과 같은 시스템 자원들의 메트릭(metric) 값을 모니터링하여 서버 자원을 자동으로 조절한다.장애가 발생한 서버에 있는 서비스들이 ..

  • format_list_bulleted 시리즈/Kubernetes
  • · 2021. 11. 24.
  • textsms
3.3 핸들러 메소드 (execute & using handler method) (작성중)

3.3 핸들러 메소드 (execute & using handler method) (작성중)

이번에는 handler method 에서 사용할 수 있는 다양한 argument 에 대해 정리한다. 여러 포스트로 나누어 정리하지 않고 이번에 자주 사용하는 방법 위주로 이곳에 정리할 예정이다. spring framework document 의 Method Arguments 와 강의 내용을 참고하여 정리했다. 정리 내용 - @PathVariable 과 @MatrixVariable @PathVariable 과 @MatrixVariable PathVariable api 문서를 보면 @RequestMapping annotation 이 붙은 handler method 에서 사용할 수 있는 URI template 변수에 바인딩 되는 parameter 에 사용할 수 있다고 되어 있다. @PathVariable 을 ..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 15.
  • textsms
3.2 핸들러 메소드 : argument & return value (overview, 처리 구현체 자동 등록)

3.2 핸들러 메소드 : argument & return value (overview, 처리 구현체 자동 등록)

@RequestMapping 으로 HTTP request 에 대한 handler 를 매핑하면 이 handler 를 사용할 때 다양한 매개변수와 반환 값을 유연하게 사용할 수 있다. 다음은 공식 문서를 참고해 작성한 handler method 에서 사용할 수 있는 매개변수들과 반환 값의 목록이다. Controller method argument (handler method argument) : WebRequest : NativeWebRequest : javax.servlet.ServletRequest : javax.servlet.ServletResponse : javax.servlet.http.HttpSession : javax.servlet.http.PushBuilder : java.security.Pr..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 12.
  • textsms
3.1 요청 매핑하기 (handler method)

3.1 요청 매핑하기 (handler method)

이번에 정리 할 내용은 HTTP 요청을 handler method 에 매핑하는 방법이다. 정리에 앞서 본 내용과 무관한 코드를 정리했다. MyHelloController 를 제외한 Person, PersonFormatter, GreetingInterceptor, AnotherInterceptor 를 삭제하고 WebConfig 의 Interceptor, ResourceHandler, Jaxb 설정도 삭제했다. MyHelloControllerTest 클래스의 내용도 모두 삭제 했다. MyHelloController 에 다음과 같이 handler method 를 하나 등록 하였다. package me.nimkoes; import org.springframework.stereotype.Controller; im..

  • format_list_bulleted 시리즈/Spring Web MVC
  • · 2021. 7. 11.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • ···
  • 11
  • navigate_next
공지사항
  • 블로그 개편 안내: 더 깊이 있는 기술 글은 GitHub 블로그에서 만나보세요
전체 카테고리
  • 전체 (180) N
    • 경험담(經驗) 경험담(輕險) (0)
    • 독서 (41) N
      • 소프트웨어 장인 (0)
      • tidy first (13)
      • extreme programming (23) N
      • 객체지향의 사실과 오해 (4) N
    • 회고 (3)
    • 단편 (30)
      • Java (22)
      • js (2)
      • scratch (4)
      • tistory (2)
    • 시리즈 (105)
      • 나 혼자 떠드는 자바 (9)
      • Go (29)
      • Java online live study S01 (15)
      • Kubernetes (15)
      • Spring Security (22)
      • Spring Web MVC (15)
    • Archive (1)
최근 글
인기 글
태그
  • #스프링시큐리티
  • #시큐리티
  • #spring security
  • #자바
  • #go
  • #java
  • #독후감
  • #language
  • #Spring
  • #객체지향의사실과오해
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바