전체 글

전체 글

    경북대학교 컴퓨터학부 21학번 틀딱?의 학교 회고록

    경북대학교 컴퓨터학부 21학번 틀딱?의 학교 회고록

    안녕하세요! 경북대 학우 여러분 컴퓨터학부에 재학중인 21학번 이현서라고 합니다. 시험도 끝났겠다 여태까지 공부했던 것들을 정리하고 깃에 올리던 와중에 다들 한번쯤은 적어보는 회고록이라는걸 적어보려구 합니다. 이 글을 편하기 이야기 하는 형식으로 적으면서 거의 3년이라는 시간동안 내가 뭘 했고 앞으로 뭘 해야 하는지 확실히 알아가고자 글을 쓰게 되었답니다. 대학교 입학 전 저는 대전 대성 고등학교라는 대전의 한 지방 자사고에 입학해서 아무런 목표 없이 남들에게 이끌려 가면서 공부를 썩 잘하지는 못하는 그런 평범한 아이였습니다. 그러다 저희 학교는 생기부를 엄청 잘 챙겨주는 그런 학교였기 때문에 반 강제적으로 진로를 선택했어야 했고, 저는 그때 철이 없는 바람에 인터넷에 "돈 가장 많이 버는 직업이 뭔가?..

    09/13 회의 전에 쓰는..

    방학때 놀고, 개강부터는 열심히 살겠다고 다짐했었는데 ㅋㅋㅋ 개강하니까 일찍 일어나는 것 부터가 너무 버겁고 수업시간이 너무 졸려요,, 진짜 미치도록 졸려요... 그래도 내일 선형대수가 공강이여서 아침 수업이 싹다 없어서 너무 기분 좋은 나...😊 내일은 처음보는 현정이 누나랑, 우승이랑 밥약이 있는 날이에요. 현정이 누나는 말을 해본적이 없는데, 이번 기회에 친해져야겠어요. 오늘두 너무 좋은 선배님이 밥도 사주셨는데, 나도 후배들 밥 열심히 사줘야 겠다고 느껴요 ㅎㅎ 그나저나 11시 반에 멋쟁이 사자처럼 마지막 해커톤 회의가 있는데, 정말 이 동아리는 2학년에 넣은걸 후회 안하는 동아리 인것 같아요. 좋은 형 누나들 만나서 이야기도 나누고, 많이 친해진거 같아요. 그리고 모든 대회에서 팀원들 캐리? 인..

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: Service

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: Service

    이번 시간에는 서비스가 무엇인지에 대해서 알아보고, 서비스의 종류에 대해서 알아보도록 하겠습니다. 서비스란? 서비스 API Resource는 쿠버네티스에서 가장 중요한 리소스 중 하나입니다. 저희가 외부로부터 요청을 받고, 외부 트래픽을 분산시키기 위해서 서비스라는 API Resource가 필요합니다. 저번시간에는 Deployment를 통해 파드를 수평확장하는 방법을 배웠었습니다. 수평확장도 중요하지만, 외부로 부터 들어오는 트레픽을 받고, 이 여러 파드들에다가 트레픽을 분산하는 역할도 매우 중요합니다. 이러한 서비스는 여러 파드에 대한 요청을 분산하는 로드 밸런서 기능을 수행하게 됩니다. 이 서비스에서 사용하는 로드 밸런서는 L4로 IP/PORT로 로드벨런서 기능을 수행합니다. 그리고 추후에 알아볼 I..

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: Deployment

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: Deployment

    이번시간에는 디플로이먼트가 무엇인지 알아보고 디플로이먼트의 배포전략에 대해서 간단히 살펴보도록 하겠습니다. 디플로이먼트란? 이전에는 REPLICA SET ===> NODE까지의 부분을 살펴보았습니다. 디플로이먼트는 REPLICA SET을 래핑하는 API 리소스 입니다. 사용자는 특수한 목적이 아니라면 파드와 레플리카셋이 아닌 디플로이먼트로 워크로드를 관리하게 됩니다. 디플로이먼트를 오브젝트를 생성하면 이에 대응되는 ReplicaSet과 Pod가 자동 생성되게 됩니다. 그리고 만약에 서비스 버전이 업데이트 되어 파드를 새로운 버전의 이미지 파드로 교체해야 한다거나, 새 버전의 이슈 ( ex Bug )가 발견되어 롤백을 진행해야 한다면?? 어떻게 해야 할까요.. 이 때 파드의 이미지 버전이 갱신될 때 배포전..

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: ReplicaSet

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: ReplicaSet

    레플리카셋이란? 레플리카셋이란, 쿠버네티스에서 파드를 운영한다 하면, 이전에 도커 컴포즈를 사용했을 때, 동일 서비스에서 scale-out을 통해서 많은 컨테이너를 그 안에서 실행할 수 있었습니다. 우리가 쿠버네티스를 사용해서 웹 어플리케이션을 운용할 때에 파드의 수를 동적으로 늘릴 수도 있습니다. 가장 간단한 방법은 동일한 역할을 하는 파드를 여러개 찍어내면 될 것입니다. 그런데 yaml파일로 매번 다른 이름으로 파드를 찍어내는 것은 비효율적입니다. 그래서 쿠버네티스 상에는 이를 가능하게 하는 API 리소스가 존재합니다. 이게 바로 레플리카셋입니다. 레플리카셋은 정해진 수의 파드가 항상 실행할 수 있도록 관리해줍니다. 이 뿐만 아니라 만약 4개의 파드가 수행되어라! 라고 레플리카셋을 만들게 되었는데,..

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: API 리소스 - Pod

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: API 리소스 - Pod

    파드란? 파드는 쿠버네티스가 컨테이너를 다루는 기본 단위라고 할 수 있습니다. 그리고 쿠버네티스 상에서 어플리케이션을 다양한 형태로 구성하고 운영할 수 있습니다. 그 떄 가장 기본이되는 단위입니다. 다양한 API Resource들이 있습니다. 예를 들면 Statefulset, Deployset, Daemonset, Job, CronJob, Replicaset,... 하지만 이들은 모두 Pod를 띄우게 됩니다. Pod는 1개 이상의 컨테이너로 구성된 컨테이너 집합이라고 할 수 있습니다. 도커랑 도커 컴포즈를 다룰 때, 가장 기본적인 단위가 컨테이너라고 했다면, 쿠버네티스에서는 이 컨테이너를 직접적으로 생산할 수 있는 방법은 없습니다. 어떻게든 컨테이너를 컨트롤 할 수 있는 방법은 Pod입니다. 또한 동일 ..

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: kubectl 명령형과 선언형 방식

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: kubectl 명령형과 선언형 방식

    명령형 vs 선언형 명령형 (Imperative) 명령형이란 수행하고자 하는 액션을 지시하는 것을 말합니다. 또한 이는 적은 리소스에 대해서 빠르게 처리가 가능하다는 단점이 있습니다. 다만 여러 명령어를 알아야 한다는 단점이 있습니다. 선언형 (Declarative) 요즘은 명령형보다 선언형이 트랜드인 것 같습니다. 선연형 방식으로 상태를 관리한다면 도달하고자 하는 상태(Desired State)를 선언할 수 있게 됩니다. 그럼 이 상태에 맞춰서 시스템이 해당 상태에 맞게 시스템을 적용하게되는 원리입니다. 는 코드로 관리할 수 있기 때문에 GitOps를 활용 가능하게 됩니다. 그 뿐만 아니라 변경사항에 대한 감사(Audit)이 용이하고, 코드리뷰를 통한 협업도 가능하게 됩니다. 멱등성 ( idempote..

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: API 리소스

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: API 리소스

    API 리소스와 오브젝트 API 리소스 API 리소스는 쿠버네티스가 관리할 수 있는 오브젝트의 종류입니다. API 리소스의 종류에는 Pod, Service, ConfigMap, Secret등이 있습니다. 심지어 쿠버네티스 클러스터를 구성하는 Node도 리소스로 취급되고, 클러스터 상에서 사용되는 계정 ServiceAccount도 리소스로 관리하게 됩니다. 그리고 이에 대한 Role도 리소스가 됩니다. 오브젝트 (Object) 오브젝트는 API리소스를 인스턴스화 한 것이라고 보실 수 있ㅅ브니다. 우선 실습을 진행하기 위해 로컬 단일 클러스터 구축을 위해 minikube start를 하고 status로 클러스터가 잘 실행된 것을 홗인해주었습니다. 그리고 kubectl에서 node를 확인하니 잘 존재합니다...

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 클러스터 구성요소

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 클러스터 구성요소

    우선 전반적인 클러스터 구성에 대해 살펴보고 제어 영역과, 노드가 어떻게 이루어져 있는지에 대해 알아보고 마치겠습니다. 클러스터 구성 Control Plane ( Master Node ) 컨트롤러 플래인은 클로스터의 관리하는 역할을 담당합니다. 그리고 상태 관리 및 명령어 처리를 담당합니다. API Server API Server는 기존의 어플리케이션과 매우 유사합니다. 상태를 관리하는 데이터베이스 (etcd)와 Kube API Server가 이로부터 상태를 관리하는 전통적인 어플리케이션과 비슷합니다. etcd는 데이터를 안전하게 관리하기 위한 분산 Key - Value저장소라고 할 수 있습니다. 만약 클러스터 상태를 복구하고 싶다고 하면 etcd만 관리하면 됩니다. Scheduler API서버와 통신하..

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 버전과 배포판

    [ Docker && Kubernetes ] - 쿠버네티스를 이용한 컨테이너 오케스트레이션: 쿠버네티스 버전과 배포판

    보통 로컬에서 테스트하기 위한 로컬 쿠버네티스 배포판과, 실제 운영 환경에서 사용하기 위한 운영용 쿠버네티스 배포판이 존재합니다. 쿠버네티스의 다양한 배포판( Kubernetes Distributions) 가장 유명한 것은 docker + kubernetes인데 이는 Docker for Desktop입니다. 여기에 kubernetes를 생성할 수 있는 탭이 있는데, 이를 실행하게 되면, 로컬에 싱글노드의 쿠버네티스 클러스터가 만들어지게 됩니다. 이것과 비슷하게 minikube이라는 배포판이 있습니다. 이는 여러 driver를 제공하게 됩니다. 이 driver를 사용하면 kubernetes노드를 어떤 환경으로 구성할지 선택할 수 있습니다. 우리는 가상머신 (VMware)등을 사용할 수도 있지만 docker..