일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Zeppelin
- Docker
- EMR
- Kafka
- 설정
- 젠킨스
- 예제
- fastcampus
- spring
- redash
- 클러스터
- Jenkins
- 간단
- login
- Mac
- 로그인
- Cluster
- config
- hive
- 레디스
- aws
- Redis
- gradle
- ec2
- SpringBoot
- 자바
- vue
- java
- 자동
- 머신러닝
- Today
- Total
목록ETC (82)
코알못
이번 시간에 두가지 실습을 진행해보도록 한다! 첫번째. 환경 변수 컨테이너에 전달하기 두번째. 파드간 통신 이제 실습을 진행해보도록 하자! 우선 VisualCode 사용자라면 yaml 작성 편리하게 하기위해 아래 플러그인을 설치 한다. 첫번째. 환경 변수 컨테이너에 전달하기 우선 아래 yaml 파일을 작성하며 환경 변수 전달은 env 부분을 보면 된다. 예시로 POD_NAME 의 경우 metadata.name 값을 가져와서 컨테이너에 해당 값을 전달하며 현재 값은 hello-app 인것을 알 수 있다. # hello-app.yaml apiVersion: v1 kind: Pod metadata: name: hello-app namespace: default spec: containers: - name: h..
파드가 무엇인지 보자! Pod는 콩껍질이라는 뜻으로 안에 콩은 컨테이너라고 생각 하면 된다. 풀이 해보자면 여러 컨테이너를 담을 수 있는 가장 기본적인 배포 단위로 노드 하나에 1개 이상의 Pod를 배치 할 수 있다. Pod는 노드에서 유일한 IP가 할당 되며 Pod 내부에서 컨테이너간에 localhost로 통신 가능하다. Pod IP는 클러스터 내에서만 유효하며 외부에서 접근하기 위해서는 Service 또는 Ingress 오브젝트가 필요하다. 컨테이너의 라이프사이클이 같고, 스케일링 요구 사항(예를 들어 트래픽이 비슷한)이 같고, 인프라 활용도가 더 높아지는 방향으로 묶는것이 좋다.(파드가 너무 크다면 노드에 남은 리소스가 있더라도 맞지 않으면 배치 되지 않아 노드 활용도가 떨어지므로 적절하게 묶는것이..
어떤 어플리케이션을 얼마나 어디에 어떤 방식으로 배포할지는 yaml 파일로 정의하며 해당 파일을 kubectl로 적용 요청 하면 RestAPI 를 통해 클러스터에 전달 된다. yaml 파일에는 오브젝트를 정의하게 되는데 오브젝트 몇가지만 설명하면 아래와 같다. 오브젝트 설명 Pod 어떤 어플리케이션을 ReplicaSet 얼마나 Node, Namespace 어디에 Deployment 어떤 방식으로 배포할것인가 Service,Endpoints 트래픽을 어떻게 로드밸런싱 할것인가 이제 실제 yaml 파일을 보면서 파악하도록 하며 구조는 아래와 같다! apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: selector: metc..
이번시간에는 GCP(Google Cloud Platform)을 사용하여 쿠버네티스 설치와 셋팅을 진행해보자! 우선 아래 사이트로 접속한다. https://cloud.google.com/ 클라우드 컴퓨팅 서비스 | Google Cloud 데이터 관리, 하이브리드 및 멀티 클라우드, AI와 머신러닝 등 Google의 클라우드 컴퓨팅 서비스로 비즈니스 당면 과제를 해결하세요. cloud.google.com 무료 버전 구독을 위해 무료로 시작하기 버튼을 클릭한다. 90일이 지나거나 $300을 모두 사용하면 무료 버전이 종료 되며 이전에 사용하던 클러스터도 중단되며, 이전에 만들어둔 클러스터를 계속 사용하고 싶다면 새 구독 버전으로 전환하면 되므로 안심하고 결제 정보 입력하여 무료 평가판 시작 하기 버튼을 눌러 ..
앞서 실습한 내용으로 도커를 이용하여 CD 구현하면 되지만 만약 배포 서버가 1000대라면..! 물론 구현할 수 있지만 편리하게 할 수 있는게 있다면! 그리고 운영 서버를 받고 사용해보니 많은 리소스가 필요 없어 놀고 있는 리소스가 있을때 다른 서비스에 활용하여 자원을 잘 사용하는 방법이 있다면 ...! 반대로 리소스가 부족할때 자동으로 스케일링 할 수 있는 방법이 있다면..! 또한 장애가 있을때 자동으로 복구(롤백/컨테이너다시시작/컨테이너교체)를 해준다면...! 바로 쿠버네티스를 사용하면 모두 가능하다!! 쿠버네티스는 여러개의 컨테이너 애플리케이션을 여러 서버에 자동으로 배포 및 스케일링 등 관리 해주는 오픈소스 시스템이다! 이제 쿠버네티스의 구조를 알아보자! 쿠버네티스 공식 홈페이지에 있는 구성도 이..
이전 시간에 nexus 관련 실습을 두가지 진행 하였다. library jar 를 nexus에 올려 사용하는 실습 maven central proxy로 사용하는 실습 이번 시간에는 docker image를 nexus에 올려 사용하는 실습을 진행해보자! nexus는 이전 시간에 생성 하였으니 접속하여 docker image repository를 생성해보자! nexus UI 'http://[nexus IP]:8081' 에 접속하여 아래와 같이 Create repository를 클릭한다. 노란 표시는 중요한 부분이며 설명 하자면 repository 이름은 'docker-image' 연결할 포트는 5443 이며 http 연결 하고 로그인 하지 않아도 docker pull 할 수 있도록 한다는 의미이다. 이미지를..
EMR zeppelin에서 노트 실행시 기본으로 저장되는 경로는 아래와 같다. - '/etc/zeppelin/conf/zeppelin-env.sh' 파일의 'ZEPPELIN_NOTEBOOK_DIR' 설정값 설정값이 '/var/lib/zeppelin/notebook'이며 마스터 노드의 로컬 해당 경로에 저장 된다. EMR 의 경우 일시정지가 없어 재기동시 모든 데이터가 날라가 아래 AWS 공식 문서와 같이 S3로 직접 백업해야 했다. # AWS 가이드 https://docs.aws.amazon.com/whitepapers/latest/teaching-big-data-skills-with-amazon-emr/back-up-zeppelin-notebook-notes.html 불편하므로 zeppelin 설정을 ..
EKS 특징에 대해 알아보자! AWS 관리형 Kubernetes 어떠한 EC2, VPC에 EKS가 생성 되었는지 알 필요 없다. 보안 신규 버전 빠르게 적용 가능 EKS는 AWS EKS Control Plane를 통해 제어하며 사용하는 워커노드는 EC2도 가능(ondemand, spot)하며 파게이트(Fargate)와 같은 관리형 서버를 사용할 수 있다. 배포 방식은 여러 방법이 있고 아래와 같다. AWS 서비스 이용 AWS CloudFormation & AWS CDK 자체 명령어 사용 eksctl 외부 서비스 이용 terraform 등 EKS는 VPC CNI 을 제공한다! CNI는 컨테이너 네트워크 제어를 위한 플러그인이며 워커노드, 파드에 사용하는 네트워크(overlay) 를 같은 대역으로 할당 가능..