IaC와 테라폼IaC(Infrastructure as Code)프로그래밍에서와 유사하게 코드를 이용하여 인프라 리소스를 정의하고, 조합하는 형태로 관리한다.수작업으로 하는 것보다 안정성, 일관성, 재현 가능성을 향상시킬 수 있다. 테라폼Hashicorp 사에서 제공하는 IaC 도구이다.아래 링크에서 더 많은 내용을 확인할 수 있다.https://developer.hashicorp.com/terraform Terraform | HashiCorp DeveloperExplore Terraform product documentation, tutorials, and examples.developer.hashicorp.com 실습1. 아래 링크에서 테라폼을 설치한다.https://developer.hashicorp..
인수 테스트젠킨스 파이프라인에서의 인수 테스트1. 개발자가 변경한 코드를 깃허브에 push 한다.2. 젠킨스가 변경을 감지하여 빌드를 시작하고, 단위 테스트를 수행한다.3. 젠킨스가 빌드를 완료하여 도커 이미지를 생성한다.4. 젠킨스가 생성한 이미지를 레지스트리로 push 한다.5. 젠킨스가 스테이징 환경을 구성하고 도커 컨테이너를 실행한다.6. 스테이징 환경의 도커 호스트가 이미지를 pull 하여 컨테이너를 실행한다.7. 젠킨스가 스테이징 환경에서 실행 중인 앱을 대상으로 인수 테스트를 실행한다. 빌드에 사용할 컨테이너 설정1. Dockerfile-jnlp를 작성한다.FROM jenkins/jnlp-agent-dockerUSER rootCOPY entrypoint.sh /entrypoint.shRUN ..
이미지 레지스트리 구성빌드한 이미지를 저장하고 관리할 수 있는 저장소를 만들어보자.1. 도커가 공식적으로 제공하고 있는 레지스트리 컨테이너 이미지를 사용하여 실행한다.registry:2 이미지를 이용하면 도커 레지스트리를 운용할 수 있다.docker run -d --rm -p 8765:5000 --name registry registry:2 2. 이미지에 태그를 붙인다.docker tag ubuntu:22.04 localhost:8765/ubuntu:22.04 3. 이미지를 push 한다.docker push localhost:8765/ubuntu:22.04 4. 레지스트리에 저장되어 있는 이미지들의 목록을 확인한다.curl localhost:8765/v2/_catalog 5. 해당 이미지의 태그 목록을..
기초1. 깃허브 레포지토리를 생성한다. 레포지토리를 private로 설정하고, gitignore을 Gradle로 설정한다. 2. ssh 키를 생성해야 한다. 운영체제가 윈도우라서 git bash에서 아래 명령어를 실행했다.ssh-keygen아래 명령을 실행하여 나온 값을 모두 복사한다.cat ~/.ssh/id_rsa.pub깃허브에 사용자 설정에서 SSH and GPG keys에서 New SSH key를 클릭한 후에 Key 부분에 아까 복사한 값을 붙여넣는다. 3. 로컬 레포지토리를 생성한다.아래 명령을 실행하여 일단 ssh 프로토콜로 깃허브 접속이 가능한지 확인한다.ssh -T git@github.com아래 사진처럼 레포지토리의 링크를 복사하여 터미널에서 클론 한다.git clone git@github...
기초1. 깃허브 레포지토리를 생성한다. 레포지토리를 private로 설정하고, gitignore을 Gradle로 설정한다. 2. ssh 키를 생성해야 한다. 운영체제가 윈도우라서 git bash에서 아래 명령어를 실행했다.ssh-keygen아래 명령을 실행하여 나온 값을 모두 복사한다.cat ~/.ssh/id_rsa.pub깃허브에 사용자 설정에서 SSH and GPG keys에서 New SSH key를 클릭한다.그리고 아래의 화면에서 Key에 아까 복사한 값을 붙여넣는다. 3. 로컬 레포지토리를 생성한다.아래 명령을 실행하여 일단 ssh 프로토콜로 깃허브 접속이 가능한지 확인한다.ssh -T git@github.com아래 사진처럼 레포지토리의 링크를 복사하여 터미널에서 클론 한다.git clone git..
쿠버네티스다수의 컨테이너들을 관리하면서 자동 배포, 배포된 컨테이너의 동작 보증, 부하에 따른 동적 확장 등의 기능을 담당하는 역할을 한다.docker의 설정에서 쿠버네티스를 설정하면 된다. pod한 개 이상의 컨테이너로 단일 목적의 일을 하기 위해서 모인 단위이다.독립적인 공간과 사용 가능한 IP를 가지고 있으며, 언제든지 죽을 수 있다.다음과 같이 포드를 생성한다.kubectl run 포드이름 --image=이미지이름다음의 명령으로 포드를 확인할 수 있다.kubectl get pods deployment상태가 없는(stateless) 앱을 배포할 때 사용하는 가장 기본적인 컨트롤러이다.deployment에 의해 배포된 포드의 컨테이너 실행에 문제가 생기면 k8s는 이 포드에서 실행하던 컨테이너를 삭제..
쿠버네티스다수의 컨테이너들을 관리하면서 자동 배포, 배포된 컨테이너의 동작 보증, 부하에 따른 동적 확장 등의 기능을 담당하는 역할을 한다.docker의 설정에서 쿠버네티스를 설정하면 된다. pod한 개 이상의 컨테이너로 단일 목적의 일을 하기 위해서 모인 단위이다.독립적인 공간과 사용 가능한 IP를 가지고 있으며, 언제든지 죽을 수 있다.다음과 같이 포드를 생성한다.kubectl run 포드이름 --image=이미지이름다음의 명령으로 포드를 확인할 수 있다.kubectl get pods deployment상태가 없는(stateless) 앱을 배포할 때 사용하는 가장 기본적인 컨트롤러이다.deployment에 의해 배포된 포드의 컨테이너 실행에 문제가 생기면 k8s는 이 포드에서 실행하던 컨테이너를 삭제..
1. Dockerfile을 다음과 같이 작성한다.FROM httpd:latestRUN echo "Docker build test" > /usr/local/apache2/htdocs/index.htmlENTRYPOINT /usr/local/bin/httpd-foreground 2. 방금 만든 파일이 있는 폴더 안에서 다음 명령을 실행한다.docker build -t my_httpd:0.2 . 3. 이미지가 만들어졌는지 확인한다. 4. docker hub에 로그인한다.docker login 5. 만들었던 이미지의 레포지토리 이름을 변경한다. 이때 반드시 도커 계정의 사용자 이름을 적어야 한다.docker tag my_httpd:0.2 ncherryu/my_httpd:0.2 6. push 한다.docker p..