전체 글 119

Flask , nginx , gunicon (by sock)

더보기 어제까지 배운것을 기반으로 플라스크를 백앤드 엔진엑스를 프론트엔드로 CI/CD를 진행해보려 한다. 그러면 일단 플라스크와 엔진엑스를 연동하는 작업을 처음해보고 나서 CI/CD를 진행하면 될거같다. 플라스크는 장고보다 가벼워서 MSA에 좋다고 하는데 그건 뭐 개발하는 팀에서 쓰고싶은 것을 쓰면되는데 장고는 배워봤고 이번시간에는 플라스크를 이용하려고한다. 프로젝트 실행해서 pip install Flask 플라스크 설치후 파이썬파일에 기본실행코드를 넣어보자 from flask import Flask app = Flask(__name__) #장고기준으로 함수 @app.route("/") def main(): return "Hello World!" #장고기준으로 url @app.route("/meet") ..

Jenkins , git , github 실습

파이참으로 개발자환경을 구축하여 개발자가 좋아하는 HTML을 작성하여 git으로 버전관리하여 github에 작업버전을 올리고 깃허브에 버전이 업데이트되면 jenkins에 버전정보가 등록되여 테스트후 AWS에 올라가는 실습 준비사항 1. ec2키파일을 ppk pem으로 바꿔서 준비(참고자료 참조) 2. 이전에 실습한 파이참 3. 깃과 깃허브 젠킨스 셋팅(기존강의자료 참조) SSH를 이용해서 배포 [1] 젠킨스에 플러그인 설치 대시보드 -> Jenkins 관리 -> Plugin Manager -> 설치 가능 -> Publish Over SSH 검색 후 체크 -> Download now and install after restart -> 설치가 끝나고 실행중인 작업이 없으면 Jenkins 재시작 [2] 젠킨스..

Jenkins , git , github 설치 및 연동

01. 젠킨스 0) 젠킨스란? 1) 자바 설치 dnf install java-11-openjdk-devel #centos sudo apt-get install openjdk-11-jdk #ubuntu 2) 레포지토리 추가 rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key cd /etc/yum.repos.d/ curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo 3) 젠킨스 설치 dnf install jenkins 4) 젠킨스 포트 변경 vi /usr/lib/systemd/system/jenkins.service Environment="JENKINS_PORT=8080" 를 Environmen..

쿠버네티스 헬름, 모니터링시스템구축 (Helm,Prometheus-Grafana)

Helm 1) Helm이란? Helm이란, Kubernetes 패키지 관리를 도와주는 것(패키지매니저)으로, yaml 파일의 모음이라고 할 수 있다. prod 환경과 개발환경과 같이 비슷하지만 이름과 리소스 사용만 조금 다른 환경을 구성할 때 변수를 사용하여 yaml 파일을 관리를 하거나 ex) mysql-prod, mysql-dev 에서 mysql-변수 오픈소스 프로그램을 개발하는 회사에서 본인들의 프로그램을 k8s 환경에 쉽게 배포하여 사용할 수 있게 활용하는 도구 2) Helm 설치 curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 chmod 700 get_helm.sh ./ge..

쿠버네티스 모니터링 실습 셋팅을 위한 3티어 아키텍쳐 구축

실습 셋팅 3계층아키텍쳐 구성하는데 개발환경과 운영환경으로 구분하여 구축하고 모니터링시스템을 구축하는 실습이다. 네임스페이스로 구분하며 was 와 web은 부하분산시스템(오토스케일링으로)구축되게 설정하고 다음주에 모니터링 시스템을 구축하는것을 배울것이므로 개발환경과 운영환경부분 구축하는것을 실습하자 자 정리하자면 네임스페이스 두개가 필요하다 prod , dev 일단 나는 작업폴더를 백업하기 위하여 각각 노드1과 2를 개발환경과 운영환경으로 분리하였다. 이유는 3티어 아키텍쳐 데이타를 노드에 보관하기 위해서 이다. 그래서 구성은 아래와 같다 ===== 운영환경 셋팅 ==== 네임스페이스명 > prod 셋팅위치 > node1 /3tir/mysql > db서버 /3tir/was > was서버 홈디렉토리 /3t..

쿠버네티스 HPA

(3) HorizontalPodAutoscaler [1] Metrics Server 설치 kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.0/components.yaml kube-system 네임스페이스에 추가된 metrics-server 디플로이먼트의 설정을 변경 args: - '--cert-dir=/tmp' - '--secure-port=443' - '--kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname' - '--kubelet-use-node-status-port' - '--metric-resolution=15s' - '--k..

쿠버네티스 컨트롤러 ( ReplicaSet , Deployment )

Controller 쿠버네티스에서 컨트롤러는 클러스터 의 상태를 관찰 한 다음, 필요한 경우에 생성 또는 변경을 요청 각 컨트롤러는 현재 클러스터 상태를 의도한 상태에 가깝게 제어 말 그대로 파드를 제어하는 제어자 1) 컨트롤러의 기능 (1) Auto Healing 컨트롤러에서 지정한 수의 파드를 유지하는 기능 특정 노드에서 파드가 다운되거나 특정 노드 자체가 다운되면 다운 된 노드를 다른 곳에서 실 (2) Software Update v1의 파드들이 실행되고 있을 때 새로운 버전의 파드가 배포되면 이전 버전으 파드들을 새로운 버전의 파드로 변경 버전을 다시 되돌리는 것도 가능 (3) Job 한 번만 수행되어야 하는 작업이 있을 때 파드를 생성해서 작업을 수행 후 파드를 삭제 반복작업으로도 가능 (4) ..

쿠버네티스 서비스 실습 3티어 추가실습

#응용문제 서버 설정파일이 파드가 실행될때 넘어올수 있게 하라. ##### WAS 쪽 도커파일###### FROM tomcat:9.0 RUN rm -rf /usr/local/tomcat/conf/server.xml ADD ./server.xml /usr/local/tomcat/conf/server.xml ADD ./connent.sh /usr/local/tomcat/connent.sh ADD ./mysql-connector-java-8.0.19.jar /usr/local/tomcat/lib/mysql-connector-java-8.0.19.jar EXPOSE 8080 EXPOSE 8009 ENV TYPE=0.0.0.0 CMD /usr/local/tomcat/connent.sh $TYPE && catali..

쿠버네티스 서비스 실습 3티어 아키텍쳐

드디어 돌아왔다 3티어 아키텍쳐... 실습 쿠버네티스 클러스터 내에서 3계층 아키텍쳐 구성 1. mysql 이미지를 이용해서 DB생성 2. was 서버는 tomcat:9.0 3. web 서버는 httpd:2.4 4. 각서버는 이중화 안함 모두 node1에 폴더를 구성하였다 mysql /3tir/mysql web /3tir/web was /3tir/was mysql.yml #mysql 시크릿 파일생성 apiVersion: v1 kind: Secret metadata: name: mysql-sec data: MYSQL_ROOT_PASSWORD: cXdlcjEyMzQ= #qwer1234 를 base64 인코딩한값 --- #PV생성 (mysql) apiVersion: v1 kind: PersistentVolum..

쿠버네티스 - 서비스(Kubernetes Service)

Service 파드는 일시적으로 만들어지기도 하고 삭제되기도 하면서 IP가 바뀌기도한다. 컨테이너에 올라간 서비스를 이용하는 사용자들은 이러한 변화를 바로 알아차릴 수 없기 때문에 쿠버네티스에서는 서비스를 이용해서 사용자들에게 서비스를 제공한다. 1) 서비스의 종류 (1) Cluster IP 타입을 지정하지 않으면 기본으로 설정되며, 클러스터 내부의 파드에서 서비스의 이름으로 접근할 수 있다. 실습 apiVersion: v1 kind: Pod metadata: name: pod-1 labels: app: pod spec: containers: - name: container image: yoskr/yos_node:0.1 ports: - containerPort: 8000 apiVersion: v1 kin..

728x90
반응형