본문 바로가기
728x90

분류 전체보기54

[7] 쿠버네티스 디플로이먼트 쿠버네티스는 파드를 생성하여 컨테이너 애플리케이션을 구동한다. 그런데 실제로 쿠버네티스 환경으로 운영할 때는 파드 자체를 생성하지 않고 디플로이먼트와 같은 워크로드 리소스를 생성하여 파드 집합을 관리한다. 이 워크로드 리소스는 원하는 파드의 종류와 갯수가 실행될 수 있도록 원하는 상태(desired state) 를 보장하는 컨트롤러를 구성한다. 이 장에서는 워크로드 리소스 중 하나인 디플로이먼트에 대해 알아보자. 디플로이먼트 디플로이먼트는 파드와 레플리카셋에 대한 선언적 업데이트를 제공한다. 디플로이먼트에서 원하는 상태(desired state)를 기술하며, 디플로이먼트 컨트롤러가 현재 상태를 원하는 상태로 변경한다. 디플로이먼트는 새로운 레플리카셋을 생성할지, 기존 디플로이먼트를 제거하고 제거 대상 모.. 2022. 1. 23.
[6] 쿠버네티스 파드 쿠버네티스를 사용하는 가장 큰 이유는 컨테이너 애플리케이션을 쉽게 배포하고 관리하기 위해서이다. 쿠버네티스에서는 컨테이너 애플리케이션을 파드라는 오브젝트로 추상화하여 관리한다. 그러면 어떻게 쿠버네티스에서 컨테이너 애플리케이션을 관리하는지 알아보자. 파드 파드는 쿠버네티스에서 생성하고 관리하는 배포 가능한 가장 작은 컴퓨팅 단위이다. 보통 쿠버네티스의 컨테이너 애플리케이션을 파드라고도 부르기도 하지만 엄밀히 말하면 컨테이너 애플리케이션을 포함한 여러가지를 내포하고 있다. 쿠버네티스에서는 하나 이상의 컨테이너 애플리케이션과 네트워크 리소스, 그리고 필요하다면 스토리지까지를 한꺼번에 모아 파드 라는 오브젝트로 추상화하고 있다. 여기서 네트워크 리소스는 각 파드마다 고유한 IP를 가지며, 파드 내에 있는 컨테.. 2022. 1. 5.
[5] 쿠버네티스 오브젝트 (2) 이번에는 쿠버네티스 오브젝트에서 공통적으로 가지는 항목에 대해 알아볼 것이다. 이 장에서는 쿠버네티스 오브젝트와 쿠버네티스 오브젝트의 메타데이터 항목인 네임스페이스, 레이블, 애노테이션에 대해 알아볼 것이다. 쿠버네티스 오브젝트 쿠버네티스 오브젝트는 쿠버네티스 시스템에서 영속성을 가지는 오브젝트이다. 쿠버네티스는 클러스터의 상태를 나타내기 위해 오브젝트를 이용하는데, 여기서 클러스터 상태라는 것은 다음과 같다. 동작 중인 컨테이너 애플리케이션 애플리케이션이 이용할 수 있는 리소스 애플리케이션의 재구동, 업데이트, 내고장성과 같은 것에 대한 동작 정책 Spec, Status 대부분의 쿠버네티스 오브젝트는 오브젝트를 구성하기 위해 spec 과 status 라는 두 개의 필드를 가진다. spec 은 오브젝트에.. 2022. 1. 2.
[4] 쿠버네티스 오브젝트 (1) 쿠버네티스는 클러스터 환경에서 컨테이너 기반 애플리케이션을 배포하고 서비스하며 관리하는 컨테이너 애플리케이션 오케스트레이터 역할을 한다. 쿠버네티스에서 컨테이너 기반 애플리케이션을 포함하여 애플리케이션을 배포하고 관리하는 역할을 하는 객체들을 모두 쿠버네티스 오브젝트 라고 한다. 구체적으로는 다음의 의미를 갖는다. 동작 중인 컨테이너 기반 애플리케이션 컨테이너 기반 애플리케이션을 구동시키는 노드 애플리케이션이 사용할 수 있는 리소스 재구동, 업그레이드 및 내결함성에 대한 애플리케이션의 정책 쿠버네티스 오브젝트를 생성하게 되면 쿠버네티스 시스템은 해당 오브젝트가 존재하는지 확인하기 위해 지속적으로 작동한다. 그리고 쿠버네티스 오브젝트는 명세(spec)과 상태(status)를 갖는 객체이다. 여기서 명세는 .. 2021. 11. 24.
[3] 쿠버네티스 고가용성 클러스터 설치 이번 장에서는 고가용성 클러스터를 구성하는 방법애 대해 알아보자. kubeadm으로 설치하며, 여러 개의 컨트롤 플레인 노드를 구성하기 위한 방법에 대한 자료이므로, minikube를 사용하고 있거나, 여러 개의 컨트롤 플레인 노드를 구성할 필요가 없으면 스킵해도 좋다. 안타깝게도 고가용성 클러스터 방식으로 설치하지 않은(단일 컨트롤플레인 노드로 구성된 클러스터) 클러스터는 허물고 다시 생성해야 할 것이다. (만약 이게 아니라면 방법 알려주시면 감사하겠습니다..) 고가용성 클러스터 종류 고가용성 쿠버네티스 클러스터를 구성하는 방법은 두 가지가 있다. 이번 글에서 설치 방법은 stack형 만을 다룰 것이다. Stack형 컨트롤 플레인 노드: etcd 멤버와 컨트롤 플레인 노드가 같이 위치해있는 구조로 Ex.. 2021. 11. 20.
[1] 쿠버네티스 소개 쿠버네티스 쿠버네티스는 구글에서 만든 컨테이너 오케스트레이션 오픈소스 플랫폼으로, 분산된 여러 서버에 여러 컨테이너 애플리케이션을 쉽게 배포하고 관리할 수 있도록 하는 환경을 만들기 위해 쿠버네티스를 사용한다. 그럼 쿠버네티스에서는 어떻게 분산된 여러 서버에 컨테이너 애플리케이션을 배포하고 관리할까? 클러스터 쿠버네티스는 컨테이너 애플리케이션을 배포할 여러 서버들을 하나의 클러스터로써 관리한다. 쿠버네티스에서는 클러스터로 묶은 서버들을 노드라고 부른다. 그리고 노드의 종류로는 컨트롤 플레인 노드와 워커 노드가 있다. 워커 노드 는 실제로 쿠버네티스에 배포된 애플리케이션이 구동되는 노드이고, 컨트롤 플레인 노드는 워커노드와 컨테이너 애플리케이션 등 쿠버네티스 전체를 관리하는 역할을 한다. 그리고 각 노드에.. 2021. 11. 20.
Handling Errors in Spring Webflux (Spring Webflux 에서 예외 처리) 스프링5, 스프링부트2에서 웹플럭스를 사용할 때 에러(예외)를 쉽게 처리할 수 있도록 스프링에서 지원하는 방법을 알아보자. 참고자료 일단 셋팅.. 예외를 처리하는 방법을 알기전에 예외를 발생시킬 수 있는 환경부터 만들어보자. 기본적으로, 라우터와 핸들러가 필요할 것이다. HelloRouter.kt @Configuration class HelloRouter ( private val helloHandler: HelloHandler ) { @Bean fun routeHello(): RouterFunction { return coRouter { "/hello".nest { accept(MediaType.APPLICATION\_JSON).nest { GET("", helloHandler::hello) } } } .. 2020. 9. 6.
Spring Security (2) 인증 Spring Security Authentication 지난 글에서는 Spring Security에 대한 전반적인 내용을 소개했다. 이번 글에서는 Spring Security에서 인증로직에 대해 구체적으로 살펴보도록 하자. Architecture Spring Security에서 Authentication에 대한 아키텍처는 다음과 같다. 내용은 참조 문서를 보고 정리하였다. Spring Security에서 인증 절차는 다음 10가지 단계로 진행된다. 1. Http Request 스프링 시큐리티는 필터체인을 거쳐 인증 절차를 확인한다. 그래서 요청이 들어오면 로직이 들어있는 필터체인으로 가서 요청에 대한 인증 절차를 밟는다. 그러기 위해 적절한 AuthenticationFilter 를 찾아 인증 절차를 진행.. 2020. 8. 9.
Spring Security (1) 대략적인 내용 회원관리, 로그인, 로그아웃, 인증, 권한 인가 등등.. '회원' 이라는 것이 들어있는 웹 애플리케이션에서는 시큐리티 로직이 반드시 필요하다. 이번 글에서는 Spring에서 제공하는 Spring Security에 대한 내용들을 간단하게 정리하고, 실습하는 내용을 정리해보겠다. 거의 모든 내용들은 공식문서에서 찾으려고 애썼다. (공식문서와 친해지기 위해서..) 인증과 인가 Spring Security에서 제공하는 기능을 크게 두 가지로 나누면 인증과 인가가 있다. 일단 두 용어에 대해 간단히 정리해보겠다. 인증 인증이란, 요청을 한 사용자가 누구인지 확인하는 것이다. 예를 들어, 회원 전용 게시판에 글을 쓰는 기능을 누가 요청을 할 때, 요청한 사용자가 비회원이면 글을 쓰지 못하도록 막아야 한다. 이 때 .. 2020. 8. 9.
728x90