목록DevOps & Infra (151)
오늘도 한 뼘 더
# Helm uninstall helm chart를 사용하여 설치한 리소스에 대하여 제거할 때 사용한다. helm uninstall RELEASE_NAME [...] [flags] 예시 helm uninstall prometheus prometheus-community/prometheus -n monitoring # Helm upgrade helm chart를 사용해서 설치한 리소스에 대한 값을 변경할 때 사용한다. 값을 업그레이드할 때 두 가지 방법으로 진행할 수 있다. helm upgrade [RELEASE] [CHART] [flags] 1. yaml 파일을 새로 작성해서 값을 업그레이드하기 helm upgrade prometheus -f new-values.yaml -n monitoring 2. '..
# helm 차트 받아오기 helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm repo update # 프로메테우스 관련 git clone git clone https://github.com/prometheus-community/helm-charts.git # values.yaml 변경 helm-charts/charts/prometheus 경로에 있는 values.yaml 파일에 대해서 사용하고자 하는 방식으로 변경한다. nodeSelector nodePort server: name: server nodeSelector: monitor: ok ... service: servicePort: 909..
# Helm 설치하기 Helm 다운로드 및 설치 $ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 $ chmod 700 get_helm.sh $ ./get_helm.sh Helm 버전 확인하기 $ helm version
# Provider 란? Terraform Provider는 Terraform에서 특정 Infrastructure플랫폼 AWS, Azure 등과 상호 작용하기 위한 플러그인이다. Terraform은 여러 프로바이더를 지원하여 다양한 클라우드 서비스 및 인프라 리소스를 코드로 관리할 수 있게 해주는 역할을 한다. 각각의 Terraform Provider는 해당 플랫폼의 API와 통신하여 리소스를 생성, 수정, 삭제 등을 수행하고 이를 통해 Infrastructure를 정의하고 관리할 수 있다. Provider는 Terraform 코드에서 사용되는 리소스 유형을 제공하고, 해당 리소스를 생성하거나 수정할 때 필요한 설정을 정의한다. # AWS Provider 설정 terraform { required_pro..
# helm 이란? Helm은 Kubernetes 애플리케이션을 관리하기 위한 오픈 소스 패키지 관리 도구이다. Helm을 사용하면 복잡한 애플리케이션 배포를 더 쉽게 관리할 수 있다. Helm은 "차트"라고 불리는 패키지 형식을 사용하여 Kubernetes 리소스를 구성하는 방법을 정의한다. # helm chart 란? Helm 차트는 Kubernetes 애플리케이션을 설치, 업그레이드 및 관리하는 데 사용되는 파일과 설정의 집합이다. 각 차트는 템플릿 및 값을 포함하며, 이를 사용하여 Kubernetes 리소스를 정의하고 구성할 수 있다. 차트 내부에는 애플리케이션의 구성 설정, 서비스, 디플로이먼트, 서비스 어카운트 등과 같은 Kubernetes 리소스 정의를 포함한다. # helm 장점 Helm을..
# Label Node, Pod, Deployment 등의 모든 리소스에 할당한다. 리소스를 분류하고 Selector를 사용하여 선택한다. 키-값 쌍으로 적용된다. # Label 할당 한 노드에 test=ok라는 label을 할당한다 kubectl --context=test label node {node name} test=ok # Label 조회 노드에 할당되어 있는 Label 조회하기 kubectl --context=test get nodes --show-lables # Label 삭제 label 이름에 '-'을 붙여주면 된다. kubectl --context=staging label nodes {node name} test-
# 배경 새벽 사이에 pod이 restart 되어 있는 것을 확인했다. 어느 시점에 restart 되어 있는지 확인하기 위해서 이전 로그를 확인하고자 했다. # 방법 kubectl logs 에는 '--previous' 옵션이 있다. pod의 이름이 변경되지 않았다면 --previous 옵션을 사용하여 바로 직전의 로그 내용을 확인할 수 있다. kubectl logs --previous {pod name}
# Terraform 설치 출처: https://developer.hashicorp.com/terraform/downloads Terraform 공식 문서를 통해서 다음과 같이 설치를 진행한다. $ wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg $ echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.lis..
# 배경 현재 회사에서 AWS 클라우드를 사용하고 있고 인프라 관리를 쉘스크립트를 통해서 진행하고 있다. 최근 많은 회사들이 Terraform, Ansible과 같은 IaC(Infrastructure as Code)를 많이 사용하고 있다고 해서 관심을 같게 되었다. 같은 환경의 리소스를 복제하여 만들 때 유익하다는 이야기를 듣고 클러스터 복원하는 스크립트를 만들어볼 수 있을 것 같다는 생각으로 시작하게 되었다. # Terraform이란? Terraform(테라폼)은 하시코프에서 오픈소스로 개발 중인 클라우드 Infrastructure 자동화를 지향하는 IaC(Infrastructure as Code) 도구이다. # Terraform 구성 출처 : https://developer.hashicorp.com/..
# 주석 코멘트나 코드를 비활성화하기 위한 주석처리를 '#'를 사용하여 진행한다. # 다음과 같은 방식으로 주석처리 # #에!를 붙이면 주석처리가 되지 않는다. #!/bin/bash echo "Hello" # 입력/출력 read : read를 통해서 입력을 받을 수 있다. echo : echo를 통해서 출력을 할 수 있다. #!/bin/bash read NAME echo "Hello $NAME" # 변수 변수 = "값"의 형태로 변수에 값을 지정한다. $를 통해 변수를 사용한다. #!/bin/bash NAME='jihyun' NICK='happy' echo "Hello $NICK $NAME"