[CI/CD] Jenkins + Ansible + Docker 연동
·
DevOps
목표: GitHub 소스코드를 Jenkins에서 빌드하여 도커 이미지로 제작, Docker Hub에 푸시하고 Ansible로 자동 배포까지 수행하는 파이프라인 구축시스템 준비사용자 및 권한 설정# ansdocadmin 사용자 확인tail /etc/passwd | grep ansdocadmin# SSH 패스워드 로그인 허용sudo grep Password /etc/ssh/sshd_configPasswordAuthentication yessudo visudo# 또는 /etc/sudoers.d/ansdocadmin 파일 생성ansdocadmin ALL=(ALL) NOPASSWD: ALLAnsible 설치 및 SSH 연결 # ansdoc에 Ansible 설치sudo dnf -y install ansible# d..
[k8s] 쿠버네티스 명령어 및 기능 정리
·
DevOps
1. 쿠버네티스 기본 명령어 명령어설명설명kubectl get리소스 목록 조회kubectl describe리소스 상세 정보 조회kubectl create리소스 생성kubectl apply -fYAML 파일을 통한 리소스 적용kubectl delete리소스 삭제kubectl logsPod 로그 조회kubectl exec -itPod 내부 접속 #예시# 모든 파드 목록 조회kubectl get podskubectl get nodes# 특정 네임스페이스에 있는 서비스 조회kubectl get svc -n my-namespacekubectl describe pod # 특정 파드 안에 접속kubectl exec -it -- /bin/bashkubectl exec -it my-pod -- /bin/bash# 리소..
[CI/CD] Tomcat & Jenkins_1
·
DevOps
Tomcat& Jenkins&Github를 통해 CI/CD 파이프라인 구성 Maven으로 간단한 웹 애플리케이션을 만들고, GitHub에 연동한 뒤, Jenkins와 Tomcat을 활용해 자동 배포 파이프라인(CI/CD)를 구성 ✅웹 어플리캐이션 생성maven 을 통해 간단한 웹 어플리케이션 구조를 생성 후 간단한 웹을 구성mvn archetype:generate -DgroupId=com.4gl.app -DartifactId=4glapp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false#웹 구조를 가진 공식 템플릿maven-archetype-webapp-> pom.xml #maven 설정 파일 (명세서) (프로젝트 의존성,플러그인)..
[CI/CD] Tomcat
·
DevOps
1. Tomcat이란?Apache Tomcat은 Java 서블릿 컨테이너이자 웹 애플리케이션 서버(WAS)로, 서블릿과 JSP(JavaServer Pages)를 실행하는 기능을 제공한다. Spring, JSP 기반 웹 애플리케이션을 구동할 때 가장 많이 사용되며, 경량성과 오픈소스라는 장점 덕분에 다양한 환경에서 활용된다. Tomcat의 핵심 구성 요소Catalina: 서블릿 컨테이너 핵심 엔진Coyote: HTTP 요청을 받아들이는 커넥터Jasper: JSP 파일을 서블릿으로 변환하는 컴파일러Manager App: WAR 배포 및 애플리케이션 관리를 위한 웹 UITomcat은 단독으로 사용되기도 하지만, Nginx나 Apache HTTP Server와 함께 리버스 프록시로 구성되기도 한다. Tomca..
[k8s] Pods 구성 및 도메인 연동 실습
·
DevOps
문제wordpress 이미지를 3개의 파드로 구성된 디플로이먼트로 생성하시오. 이후 해당 파드의 내용물이 https://mydomain.click/wp 라는 URL로 외부에 출력되도록 만드시오. 1. NameSpace 생성kubectl create namespace wordpress 2. Ingress Controller 설치외부 요청을 클러스터 내부의 여러 서비스로 "경로 기반' "호스트기반"으로 라우팅 하기 위해 설치helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace --set controll..
[K8s] Helm 과 Ingress 웹서버 통합 라우팅 구성
·
DevOps
쿠버네티스 패키지 매니저 설치wget https://get.helm.sh/helm-v3.17.3-linux-amd64.tar.gztar -zxvf helm-v3.17.3-linux-amd64.tar.gzmv linux-amd64/helm /usr/local/bin/helm #helm 통해 ingress controllor 설치helm upgrade --install ingress-nginx ingress-nginx --repo https://kubernetes.github.io/ingress-nginx --namespace ingress-nginx --create-namespace --set controller.admissionWebhooks.enabled=falsekubectl get all -n in..
[CI/CD] 파이프라인 구성
·
DevOps
CI/CDI 파이프라인 개념 및 구축 가이드현대 소프트웨어 개발 환경에서는 빠르고 안정적인 배포가 핵심이다. 이를 위해 CI/CD, 그리고 최근 들어 주목받는 **CDI(Continuous Deployment Integration)**까지 통합된 파이프라인 설계가 중요하다. 이 글에서는 CI/CD/CDI의 정의, 구성 요소, 구축 시 체크리스트, 그리고 실무 예제를 다룬다. 1. CI/CD/CDI란 무엇인가?CI (Continuous Integration)개발자가 코드를 지속적으로 통합하는 프로세스. 주로 테스트 자동화와 정적 분석 포함CD (Continuous Delivery)CI 이후의 결과물을 스테이징 환경까지 자동 배포하는 단계CDI (Continuous Deployment Integration)..
[k8s] 쿠버네티스 연결 담당 서비스
·
DevOps
지금까지는 쿠버네티스 클러스터 내부의 Pod를 사용하였다.클러스터 외부에서 내부로 접속하는 방법 실습 진행. 1. 노드포트 서비스 이용 1.1 디플로이먼트 파드 생성kubectl create deploy np-pods --image=httpd 1.2 노드포트 생성kubectl create -f nodeport.yaml Pod 오브젝트 스펙apiVersion: v1 # Kubernetes API 버전 (v1은 core API 그룹)kind: Service # 객체의 종류: Service (서비스)metadata: name: np-svc # 서비스 이름 (np-svc)spec: selector: app: np-pods ..
[K8s] 쿠버네티스 기초
·
DevOps
쿠버네티스란 무엇인가?**쿠버네티스(Kubernetes)**는 컨테이너화된 애플리케이션의 배포, 확장, 운영 자동화를 위한 오픈소스 플랫폼이다. 구글이 내부에서 운영하던 Borg 시스템에서 영감을 받아 개발되었고, 현재는 **Cloud Native Computing Foundation(CNCF)**의 주요 프로젝트로 관리되고 있다.간단히 말하면, 쿠버네티스는 여러 서버에 걸쳐 컨테이너를 자동으로 배치하고, 트래픽을 분산시키며, 장애가 발생한 컨테이너를 복구하는 등의 기능을 수행하는 컨테이너 오케스트레이션 시스템이다.쿠버네티스의 핵심 구성 요소구성 요소설명Pod하나 이상의 컨테이너를 묶은 최소 배포 단위Node쿠버네티스가 관리하는 물리 또는 가상 서버Cluster하나 이상의 노드로 구성된 쿠버네티스 환경D..
[Docker] 컨테이너 이미지 만들기
·
DevOps
1. 기본 방법으로 빌드기존 자바 코드로 이미지를 빌드 java 설정#1 cd ~/_Book_k8infra/ch4/4.3.1/ #책의 코드파일 접속#2 dnf -y install java-1.8.0-openjdk-devel -y # java 설치#3 chmod 700 mvnw &&./mvnw clean packeage #maven 빌드 명령 실행 컨테이너 이미지 빌드#다른 이름의 동일한 공간을 사용하는 링크 이미지docker build -t basic-imgdocker build -t basic-img:1.0 -t basic-img:2.0 .#Dockerfile 수정#같은 이름이지만 다른 이미지가 생성이 됨.sed -i 's/Application/Development/' Dockerfiledocker ..