본문 바로가기

전체 글

(234)
[쿠버네티스] 컨트롤러(데몬세트, 스테이트풀세트, 잡, 크론잡) 데몬세트 클러스터 전체 노드에 특정 파드를 실행할 때 사용하는 컨트롤러 클러스터 안에서 새롭게 노드가 추가되었을 때 데몬세트가 자동으로 해당 노드에 파드를 실행시킨다. 노드가 클러스터에서 빠졌을 때는 해당 노드에 있던 파드는 그대로 사라질 뿐 다른 곳으로 옮겨가서 실행되거나 하지 않는다. 그러므로 보통 로그 수집기를 실행하거나 노드를 모니터링하는 모니터링용 데몬 등 클러스터 전체에 항상 실행시켜두어야 하는 파드에 사용한다. 스테이트풀세트 상태가 있는 파드들을 관리하는 컨트롤러 볼륨을 사용해서 특정 데이터를 저장한 후 파드를 재시작했을 때 해당 데이터를 유지한다. 여러 개의 파드 사이에 순서를 지정해서 실행되도록 할 수 있다. 이렇게 어떠한 상태가 있어야 할 때 사용한다. 그레이스풀이란 실행 중인 프로세스..
[쿠버네티스] 컨트롤러(레플리케이션 컨트롤러, 레플리카세트, 디플로이먼트) 컨트롤러란? 파드들을 관리하는 역할을 한다. 다양한 목적에 맞게 사용할 수 있는 컨트롤러가 있다는 것이 쿠버네티스 장점 예1 ) 웹서비스처럼 오랜시간동안 계속 파드들을 관리할 때 > 레플리케이션 컨트롤러, 레플리카세트, 디플로이먼트 예2 ) 클러스터의 전체 노드에 같은 파드를 실행할 때는 데몬세트를 사용 예3 ) 1회성 작업을 할 때 사용하는 잡 예4 ) 주기적인 배치 작업을 실행할 때 사용하는 크론잡 레플리케이션 컨트롤러 지정한 숫자만큼의 파드가 항상 클러스터 안에서 실행되도록 리한다. 예 ) 파드 2개를 명시해둔 레플리케이션 컨트롤러가 있다면 장애나 다른 이유로 파드 갯수가 2개보다 적을 때 다시 새로운 파드를 실행해서 파드 개수를 2개로 맞춘다. 컨트롤러를 사용하지 않고 파드를 직접 실행하면 파드에..
[AWS] AWSKUS EKS 다른 AWS 서비스와 손쉽게 연동할 수 있음 EKS 배포방식 - AWS CloudFormation & CDK - eksctl - 서드파티모듈(Terraform, Pulumi, ...) 네트워킹 파드같은 경우 생명주기가 짧기 때문에 어떻게 확장 및 축소를 할것인지 고민을 해야함 파드는 VPC와 동일한 주소를 파드 내부에 가짐 VPC내에 EC2는 여러개의 ENI를 가질 수 있다. 인스턴스 타입마다 가질 수 잇는 ENI의 갯수는 제한이 있음 마치 나의 VPC에 있는 하나의 인프라 요소처럼 사용할 수 있음 Amazon VPC CNI 플러그인을 통한 최대 파드 갯수 Max Pods = ENI * (ENI당 지원하는 IPv4 개수 - 1) + 2 스토리지 컨테이너 라이프 사이클이 기존 VM보다 짧음. 같이 ..
[클라우드] PaaS-TA 파스타 대외협력 현황 파스타란? 누구나 자유롭게 무료로 사용할 수 있는 오픈소스 쿠버네티스, 젠킨스 등의 오픈소스 82종으로 구현됐있음 소스코드 실시간으로 공개하고있음 2014년부터 올해까지 진행하고 있음 2021년에 5.5 세미니 발표함 파스타를 도입하는 기관과 사례들이 늘어나고있음 전자정부클라우드 플랫폼이 파스타를 기반으로 진행되고있음 파스타 위에 올라가는 시스템을 민간 클라우드에 적용해서 개발, 운영 하고있음 파스타는 개발자 육성에도 많은 공을 들이고있음 파스타플랫폼을 기업에서 운영하고 진행할 수 있도록 전문기업 인증을 진행하고있음 민간 클라우드에서 csp사들이 파스타를 함께 운영하고있음 파스타 밋업소개 및 향후진행사항 1. 플랫폼 동향 신기술 중심의 플랫폼 동향과 파스타 발전 방향 Trend / ..
[React] memo의 효과_컴포넌트를 어떻게 분리하는게 리렌더링이 효율적으로 될까? [의문 : 왜 컴포넌트를 하나가 아닌 두개로 분리하였을까?] [결과물 화면] const TagList = React.memo(({ tags }) => ( {tags.map((tag) => ( #{tag} ))} )); 이와 같이 한번에 해결할 수 있는데 왜 나눴을까 의심이 들었다. 어차피 tag값이 바뀌면 둘다 렌더링 되는건 똑같지 않나? 라고 생각했지만 다르다. // React.memo를 사용하여 tag 값이 바뀔 때만 리렌더링되도록 처리 const TagItem = React.memo(({ tag }) => #{tag}); // React.memo를 사용하여 tags 값이 바뀔 때만 리렌더링되도록 처리 const TagList = React.memo(({ tags }) => ( {tags.map((t..
[React] hooks에서 최적화 hooks에서 최적화 useMemo(callback, [변경되는값]); 두번째 배열이 바뀌기전까지 값을 기억 함수 컴포넌트는 매번 함수가 새로 그려지며 실행되기 때문에 한번만 실행되면 되는 함수도 계속 호출되는 문제 발생 변경되는 값이 없다면 한번만 실행후 값을 보관하는 역할로 쓸 수 있다. useRef()와 useMemo() 차이점 useRef : 클래스로 치면 멤버변수 혹은 dom객체 처럼 특정한 '값'만 기억해야 할 때 useMemo : 복잡한 함수의 'retur값'을 기억해야 할 때 useCallback(callback, [변경되는값]); 두번째 배열이 바뀌기전까지 함수 자체를 기억 함수 생성 자체가 오래걸리는 경우 쓰면 최적화에 도움됨 변경되는 값이 없다면 state 값을 맨처음 값만 기억(co..
[python] 백준 > 그리디 > 회의실 배정(1931) [문제] 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231-1보다 ..
[python] 백준 > BFS > 토마토(7576) [문제] 철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없다고 가정한다. 철수는 창고에 보관된 토마토들이 며칠이 지나면 다 익게 되는지, 그 최소 일수를 알고 싶어 한다. 토마토를 창고에 보관하는 격자모양의 상..