스터디/DevOps

    [DevOps] Jupyterhub에서 Copilot&Copilot Chat 사용하기

    [DevOps] Jupyterhub에서 Copilot&Copilot Chat 사용하기

    굳이 Copilot을 주피터에서 사용해야 하나요? - 최근 Github Copilot Chat이 베타 버전으로 출시되었는데, 잠시 사용해보니 나쁘지 않았다. - 그런데 현재는 베타 버전이어서 VSCode에서만 사용이 가능하다. - 현재는 개발 부서에서 일을 하고 있긴 하지만, 분석을 할 일이 종종 있다. 그런데 다루는 데이터 크기가 워낙 크다보니 로컬에서는 어렵고, 회사 내의 Spark 클러스터 자원을 써야만 분석이 가능하다. - Spark 클러스터에 붙으려면 사내 k8s 내에서만 접근이 가능하기 때문에 팀 내 주피터허브를 만들어두고 이걸로 주로 분석한다. - 분석을 할 때 코파일럿 채팅은 커녕 코파일럿도 없이 쌩으로 jupyterlab에서 분석을 하는데 코파일럿이 있다 없으니 참 불편하다. - 그..

    [Kubernetes] #4 ReplicaSet

    [Kubernetes] #4 ReplicaSet

    CKA 자격증 준비 과정에서 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 수강하고 정리한 내용입니다. 대부분의 자료는 해당 강의의 자료이며, 이외 레퍼런스는 관련 내용 상단에 표기하였으니 참고 바랍니다. 1. ReplicaSet이란? 하나의 앱이 장애가 발생하더라도, 동일한 다른 앱은 정상 작동하여 장애가 발생하지 않은 것처럼 동작하기 위한 오브젝트가 ReplicaSet 또는 Replication Controller입니다. ReplicaSet과 Replication Controller는 동일한 목적을 가지고 있지만 일부의 차이가 있는데요. 두 오브젝트의 목적은 Load Balancing과 Scaling입니다. Replic..

    [Kubernetes] #3 Pod

    [Kubernetes] #3 Pod

    CKA 자격증 준비 과정에서 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 수강하고 정리한 내용입니다. 대부분의 자료는 해당 강의의 자료이며, 이외 레퍼런스는 관련 내용 상단에 표기하였으니 참고 바랍니다. 1. Pod란? 쿠버네티스는 Worker Node 내에 Docker Image 등의 컨테이너를 배포하고 실행시킵니다. (e.g. Redis) 하지만 Worker Node에 컨테이너를 직접 배포하지는 않습니다. Pod라고 불려지는 Kubernetes Object로 캡슐화하는데, Pod는 애플리케이션을 실행하기 위한 단일 인스턴스입니다. Pod는 아래의 특성을 가지고 있습니다. Pod는 쿠버네티스에서 생성하는 최소 단위이다...

    [Kubernetes] #2 Kubernetes Architecture

    [Kubernetes] #2 Kubernetes Architecture

    CKA 자격증 준비 과정에서 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 수강하고 정리한 내용입니다. 대부분의 자료는 해당 강의의 자료이며, 이외 레퍼런스는 관련 내용 상단에 표기하였으니 참고 바랍니다. 1. Cluster Architecture 쿠버네티스는 컨테이너선과 이를 통제하는 컨트롤 타워로 구성된 선단에 비유할 수 있는데요, 실제 컨테이너(애플리케이션)이 올라가는 Worker Node와 주요 구성 요소를 배포하고 제어하는 역할을 하는 컨트롤 플레인(Control Plane)이 포함된 Master Node로 구성되어 있습니다. Master Node의 컨트롤 플레인은 현재의 상태(current state)를 사용자가..

    [Kubernetes] #1 Kubernetes(쿠버네티스) 개요 및 가상화 기술

    [Kubernetes] #1 Kubernetes(쿠버네티스) 개요 및 가상화 기술

    CKA 자격증 준비 과정에서 Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의를 수강하고 정리한 내용입니다. 대부분의 자료는 해당 강의의 자료이며, 이외 레퍼런스는 관련 내용 상단에 표기하였으니 참고 바랍니다. 1. Kubernetes(쿠버네티스)란? Kubernetes : 컨테이너 오케스트레이션 도구 * 컨테이너 : 가상화 기술의 일종으로, 애플리케이션 실행 환경을 OS 레벨로 가상화하여 격리시키는 것 (e.g. 도커) * 오케스트레이션 : 컴퓨터 자원과 애플리케이션, 서비스에 대한 자동화된 설정, 관리 및 제어체계 즉, 다시 말해 Kubernetes란 컨테이너화된 애플리케이션에 대한 자동화된 설정, 관리, 제어체계입니다. K..

    [Kubernetes] 쿠버네티스(Kubernetes)에서 주피터허브(JupyterHub)에 Random Port 설정하기

    JupyterHub에서 Spark 사용하기 [배경] 이전 포스팅(쿠버네티스(Kubernetes)에서 주피터허브(JupyterHub) 구성하기)에서 설명했듯이, 단순히 JupyterHub를 구성하면 끝나는 것이 아니라, JupyterHub에서 Spark를 사용해야 합니다. 기본적으로 쿠버네티스 환경의 JupyterHub Helm은 호스트 네트워크(Host Network, Pod이 올라간 노드의 네트워크)를 사용하지 않는 것을 전제로 하는데요. 그래서 새로운 계정이 접속해서 노트북 Pod(singleuser)을 만들 때마다 Port를 무조건 8888로 할당하게 설정되어 있습니다. 호스트 네트워크를 사용하지 않기 때문에 한 노드에 여러 개의 Pod이 생성되어 모두 8888 포트를 사용하더라도, 실제 노드의 8..

    [Kubernetes] 쿠버네티스(Kubernetes)에서 주피터허브(JupyterHub) 구성하기

    [Kubernetes] 쿠버네티스(Kubernetes)에서 주피터허브(JupyterHub) 구성하기

    쿠버네티스에 JupyterHub 구성하기 [배경] 회사에서 쿠버네티스(Kubernetes)를 이용해서 분석 환경을 구성하고 있습니다. 회사에서는 쿠버네티스를 Iaas(Infra as a service)를 제공하고, 각 팀에서는 본인의 팀 상황에 맞게 환경을 구축하는거죠. 제가 소속된 팀에서는 최근 JupyterHub를 도입하기로 결정했는데요. 그 이유는 3가지가 있습니다. Spark를 편리하게 사용하기 위해 노트북 환경이 필요함. 보안 설정을 위해 이미지를 따로 빌드해야 함. VSCode에서 SSH로 연결해서 사용 가능하도록 각자의 Instance(Pod)을 따로 구성해야 함. Spark를 사용하기에는 Zeppelin이 더 편리한 부분이 있지만 특히 보안 이슈와 VSCode 접근 목적으로 결국 Jupyt..