목록분류 전체보기 (271)
전공공부
어떻게 kubectl 명령어가 적용이 되는지 알아보자. Local file을 이용해서 apply 명령어를 적용하면 쿠버네티스 내장 메모리에 오브젝트를 만든다. yaml 파일로 저장한 것은 Last applied Configuration (json) 파일로 변화가 됩니다. 이때 메모리와 yaml 파일 그리고 json 파일로 변환된 파일이 어떻게 상호 작용하는지 알아봅시다. nginx update to 18 -> 19로 업데이트가 될 때를 생각해봅시다. Local yaml 파일에서 우선 update를 할 것이고 그럼, k8s object가 이를 인지하고 바뀌게 됩니다. 그리고, Last applied Configuration을 저장하는 json이 바뀐 버전으로 업데이트 됩니다. 그러면 이때, Last app..
DP 문제 인 것을 인식하고 풀었는데도 많이 어려웠다. 해설을 위해서 아래 내용을 보자 우선 행의 경우 각 숫자의 순서를 나타내고 열의 경우 1,2,3 의 숫자가 마지막에 나올 때의 갯수를 표시한다. 아래 식은 갯수를 표시하지 않고 실제 식으로 표현을 하였다. dp[1][1] - 1 dp[1][2] - 0 dp[1][3] - 0 dp[2][1] - 1+1 dp[2][2] - 2 dp[2][3] - 0 dp[3][1] - (1 + 1) + 1 dp[3][2] - 1 + 2 dp[3][3] - 3 dp[4][1] - (1 + 1 + 1) + 1 dp[4][2] - (1 + 1) + 2 , 2 + (2) dp[4][3] - (1) + 3 dp[5][1] - (1 + 1 + 1 + 1) + 1 dp[5][2] ..
1. Imperative 접근 방식 무엇이 요구되는지, 어떻게 접근을 해서 해결을 할 지 지정이 모두 되어 있다. 2. Declarative 접근 방식 어떻게 접근을 해서 해결을 할 지는 시스템이 지정하고 어떤 것이 실행 될지만 지정한다. 예시 그러면, nginx의 버전을 상승 시키고 싶으면 어떻게 할까? Declarative 방식 간단하게 yaml 파일을 수정하면 이를 적용하는 방식 Create Objects k apply -f pod.yaml # 이것도 가능하지만 k apply -f /path/config-dir # 디렉토리를 적용하면 디렉토리 하부의 yaml 파일을 읽어서 모두 설정을 할 수 있다. Update Objects k apply -f pod.yaml Imperative 방식 Create ..

1. Deployment 정의 : 배포를 담당하는 것으로 Pod를 업데이트 할 수 있는 롤링 업데이트 기능과 여러개의 Pod를 관리 할 수 있음 (ReplicaSet의 기능) , 롤백 기능 지원, scale을 지원 함(일시정지 후 pod scaling) - 롤링 업데이트란 : Pod를 한번에 재배포하는 것이 아닌 하나씩 내리고 업데이트 하고 내리고 업데이트 하고를 반복하여 사용자에게 영향을 끼치지 않는 상태에서 무중단 배포를 진행하는 것이다. 역할 : 실질적으로는 ReplicaSet의 역할을 모두 하면서 ReplicaSet을 가지고 롤링 업데이트, 롤백 기능을 추가적으로 한다고 생각하면 된다. (무중단 배포를 지원 할 수 있게 하는 요인) 2. YML apiVersion: apps/v1 kind: Dep..

1. ReplicaSet 정의 : Pod 하나가 Fail이 되어서 내려가도 다른 인스턴스가 실행 시켜서 Fail 상태에서 벗어 날 수 있게 하는 것 동작 : 실패 상태가 되면 새로 POD를 배포한다. 이는 고 가용성을 보장한다. 정리 : POD가 Fail이 되어도 새로 살려서 POD를 배포 할 수 있게 하여서 고 가용성을 보장하는 것 Load Balancing & Scaling Replication Controller, ReplicaSet Node를 넘어서 복제 할 수 있음을 보여준다. (Scale Up 지원이 가능) Replication Controller와 ReplicaSet과 다르다. 하지만, Replication Controller이 ReplicaSet의 사실상 이전 버전이므로 Replicatio..
단순 구현 문제였다. import java.util.*; import java.io.*; public class BOJ_7568 { static class Data { int weight; int height; public Data(int x, int y){ this.weight = x; this.height = y; } } public static void main(String[] args) throws Exception{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tk = new StringTokenizer(in.readLine()," "); int N = Integer.parseIn..
1. Kube-Scheduler 정의 : 스케줄러는 어느 노드로 포드가 들어갈지 결정만 하는 역할, 실제 이를 수행하는 것은 kubelet이다. WHY DO YOU NEED SCHEDULER? 컨테이너를 수용 할 수 있는 알맞게 노드에 포드를 배치해야 한다. 리소스 요청이 다를 수 있으니 이를 감안해서 각 노드에 배치하게 된다. CPU 사용량이 10인 포드가 있다고 하면 우선 CPU가 맞지 않는 노드는 걷어낸다. 그러면 남은 것중에 가장 적합한 노드는 어떻게 알까? POD 배치하고 나서 CPU 사용량이 최적이 될 것이 배치를 받게된다. 사실 이런 흐름은 사람이 직접 설정 할 수 있는 곳이기에 추후 강의에서 논의될 사항이다. HOW DO I INSTALL KUBE SCHEDULER 설치하는 방법 wget ..
1. Contoller - Manager 정의 : Controller는 부서의 마스터 쉽 같은 존재 지속적인 상태 정보 감시 상황을 재조정 하기 위한 조치를 함 Monitoring 예시로 2가지 Controller를 보자. 1. Node Controller 노드 컨트롤러는 응용 프로그램이 적절한 처리를 하는지 5초마다 kube-apiserver를 통해서 각 pod, node를 감시한다. 그리고, 5초 마다 감시하지만 40초 이후에 그것이 정상이 아닌지 파악 할 수 있다. 그리고, POD의 Eviction 상태로 만드는 시간은 5m이다. 2. ReplicaSet Controller 레플리카 셋을 감시하고 해당 replica 갯수에 맞게 끔 검사함. 위와 같이 두가지의 경우 외에도 상당히 많은 컨트롤러가 설..