기술
-
안녕하세요. 오늘은 Github의 Github Actions를 이용하여 Docker Image Build 및 Push 하는 방법에 대해 소개해보고자 합니다. 준비물 Github 계정과 Repository Docker Hub 계정과 Repository 저는 아래와 같이 Dockerfile을 작성했습니다. FROM node:erbium-buster-slim LABEL "repository"="https://github.com/teichae/github-action" LABEL "maintainer"="tei.chae " RUN set -eux ; \ apt-get update -y; \ apt-get install --no-install-recommends -y \ tzdata; \ ln -sf /usr/s..
Github Actions를 이용한 Docker Image Build 및 Push안녕하세요. 오늘은 Github의 Github Actions를 이용하여 Docker Image Build 및 Push 하는 방법에 대해 소개해보고자 합니다. 준비물 Github 계정과 Repository Docker Hub 계정과 Repository 저는 아래와 같이 Dockerfile을 작성했습니다. FROM node:erbium-buster-slim LABEL "repository"="https://github.com/teichae/github-action" LABEL "maintainer"="tei.chae " RUN set -eux ; \ apt-get update -y; \ apt-get install --no-install-recommends -y \ tzdata; \ ln -sf /usr/s..
2020.12.09 -
안녕하세요. 오늘은 Terraform Provider 중 Kubernetes를 설정하는 법에 대해서 간단하게 가이드해보고자 합니다. 준비물 : kubectl에서 사용하는 config 파일 config파일에 내용은 다음처럼 구성되어 있습니다. apiVersion: v1 clusters: - cluster: certificate-authority-data: base64 encoding server: https://server ip:port name: cluster.local contexts: - context: cluster: cluster.local user: kubernetes-admin name: kubernetes-admin@cluster.local current-context: kubernetes-..
Terraform Kubernetes Provider 설정하기 (1)안녕하세요. 오늘은 Terraform Provider 중 Kubernetes를 설정하는 법에 대해서 간단하게 가이드해보고자 합니다. 준비물 : kubectl에서 사용하는 config 파일 config파일에 내용은 다음처럼 구성되어 있습니다. apiVersion: v1 clusters: - cluster: certificate-authority-data: base64 encoding server: https://server ip:port name: cluster.local contexts: - context: cluster: cluster.local user: kubernetes-admin name: kubernetes-admin@cluster.local current-context: kubernetes-..
2020.11.12 -
Packer는 자동화된 이미지 빌더입니다. Hashicorp에서 개발된 툴로, 다양한 프로비저너를 지원하여 AWS, Azure, GCP, VMware, Docker 등 다양한 이미지들을 HCL문을 이용하여 생성할 수 있습니다. 이번 가이드는 Docker를 Jenkins가 아닌 Packer를 이용하여 Build 후 Docker Hub로 바로 배포할 수 있도록 하였습니다. * 준비물 Packer Ansible # Python3 pip 설치 및 Ansible 설치 pip3 설치 root@ubuntu:/home/ubuntu# apt-get install python3-pip -y Ansible 설치 root@ubuntu:/home/ubuntu# pip3 install ansible # Packer 설치 다운로드..
Packer와 Ansible을 이용한 Docker Image 생성 및 배포Packer는 자동화된 이미지 빌더입니다. Hashicorp에서 개발된 툴로, 다양한 프로비저너를 지원하여 AWS, Azure, GCP, VMware, Docker 등 다양한 이미지들을 HCL문을 이용하여 생성할 수 있습니다. 이번 가이드는 Docker를 Jenkins가 아닌 Packer를 이용하여 Build 후 Docker Hub로 바로 배포할 수 있도록 하였습니다. * 준비물 Packer Ansible # Python3 pip 설치 및 Ansible 설치 pip3 설치 root@ubuntu:/home/ubuntu# apt-get install python3-pip -y Ansible 설치 root@ubuntu:/home/ubuntu# pip3 install ansible # Packer 설치 다운로드..
2020.11.10 -
안녕하세요. 이번 포스팅은 지난 Blue/Green 배포에 이어서 Canary 배포를 하는 방법에 대해서 가이드 하고자 합니다. Canary 배포는 기존에 배포된 서비스에 신규 서비스를 한꺼번에 배포/교체를 진행하지 않고 소량의 Pod만 일시적으로 배포하는 방식입니다. Canary 배포를 함으로서, 신규 서비스의 영향도나 반응 체크등을 할 수 있고 문제 시 소량 배포된 Pod만 정리하면 되기 때문에 편의성이 있습니다. 해당 배포 방식도 Kubernetes에서 Deployment만으로 배포가 가능하지만 Argo CD를 이용하는 방법에 대해 알아봅니다. 사전 준비 사항 * Argo CD 설치 * Argo Rollouts 설치 먼저 배포를 위해 아래의 코드를 사용하겠습니다. apiVersion: argopro..
Argo CD를 이용한 Canary 배포 (4)안녕하세요. 이번 포스팅은 지난 Blue/Green 배포에 이어서 Canary 배포를 하는 방법에 대해서 가이드 하고자 합니다. Canary 배포는 기존에 배포된 서비스에 신규 서비스를 한꺼번에 배포/교체를 진행하지 않고 소량의 Pod만 일시적으로 배포하는 방식입니다. Canary 배포를 함으로서, 신규 서비스의 영향도나 반응 체크등을 할 수 있고 문제 시 소량 배포된 Pod만 정리하면 되기 때문에 편의성이 있습니다. 해당 배포 방식도 Kubernetes에서 Deployment만으로 배포가 가능하지만 Argo CD를 이용하는 방법에 대해 알아봅니다. 사전 준비 사항 * Argo CD 설치 * Argo Rollouts 설치 먼저 배포를 위해 아래의 코드를 사용하겠습니다. apiVersion: argopro..
2020.10.22 -
안녕하세요. 이번에는 Argo CD를 이용한 Blue/Green 배포 방법에 대해서 알아보겠습니다. Blue/Green 배포란? Blue-Green 배포는 애플리케이션 또는 마이크로서비스의 이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델입니다. 이때 두 버전 모두 프로덕션 환경에서 실행 상태를 유지합니다. 이전 버전을 blue 환경으로, 새 버전은 green 환경으로 부를 수 있습니다. 프로덕션 트래픽이 blue에서 green으로 완전히 이전되면, blue는 롤백에 대비하여 대기 상태로 두거나 프로덕션에서 가져온 후 업데이트하여 다음 업데이트의 템플릿으로 삼을 수 있습니다. 이와 같은 지속적 배포 모델에는 단점이 있습니다. 환경에 따라서..
Argo CD를 이용한 Blue/Green 배포 (3)안녕하세요. 이번에는 Argo CD를 이용한 Blue/Green 배포 방법에 대해서 알아보겠습니다. Blue/Green 배포란? Blue-Green 배포는 애플리케이션 또는 마이크로서비스의 이전 버전에 있던 사용자 트래픽을 이전 버전과 거의 동일한 새 버전으로 점진적으로 이전하는 애플리케이션 릴리스 모델입니다. 이때 두 버전 모두 프로덕션 환경에서 실행 상태를 유지합니다. 이전 버전을 blue 환경으로, 새 버전은 green 환경으로 부를 수 있습니다. 프로덕션 트래픽이 blue에서 green으로 완전히 이전되면, blue는 롤백에 대비하여 대기 상태로 두거나 프로덕션에서 가져온 후 업데이트하여 다음 업데이트의 템플릿으로 삼을 수 있습니다. 이와 같은 지속적 배포 모델에는 단점이 있습니다. 환경에 따라서..
2020.10.22 -
안녕하세요. 지난 글에서 Grafana에 Prometheus를 추가하여 Query를 입력하여 Metric을 불러왔는데요. 오늘은 예제를 통해 Grafana에 Panel을 추가하여 Node의 CPU를 확인해보도록 하겠습니다. 작업 순서는 다음과 같습니다. 1. Dashboard 생성 2. Dashboard에 Pannel 추가 3, Pannel에 옵션 주기 먼저 Panel들을 추가하고 모아두기 위해 Dashboard를 생성하도록 하겠습니다. Grafana의 좌측 메뉴 Create 부분에 Dashboard를 선택합니다. Add new panel을 선택합니다. panel 추가 메뉴는 다음과 같이 구성되어 있습니다. ①은 사용할 Data Source를 선택하는 곳입니다. ②은 쿼리를 입력하는 곳입니다. ③출력된 ..
[Kubernetes Monitoring] Grafana에서 Panel 추가하기안녕하세요. 지난 글에서 Grafana에 Prometheus를 추가하여 Query를 입력하여 Metric을 불러왔는데요. 오늘은 예제를 통해 Grafana에 Panel을 추가하여 Node의 CPU를 확인해보도록 하겠습니다. 작업 순서는 다음과 같습니다. 1. Dashboard 생성 2. Dashboard에 Pannel 추가 3, Pannel에 옵션 주기 먼저 Panel들을 추가하고 모아두기 위해 Dashboard를 생성하도록 하겠습니다. Grafana의 좌측 메뉴 Create 부분에 Dashboard를 선택합니다. Add new panel을 선택합니다. panel 추가 메뉴는 다음과 같이 구성되어 있습니다. ①은 사용할 Data Source를 선택하는 곳입니다. ②은 쿼리를 입력하는 곳입니다. ③출력된 ..
2020.10.16