728x90 반응형 분류 전체보기115 Kubernetes: 명령어와 익숙해지기 Kubernetes 명령어 파드를 생성하고, 서비스를 통해 파드를 관리할 수 있게 레이블을 등록해주는게 일반적인 관리 방식이다. 이 과정에서 어떻게 하면 파드를 잘 생성해서 서비스의 endpoint 에 연결하여 관리가 잘 되는지 확인하는 작업들이 필요해 진다. 필요한 명령어들을 써보면서 메커니즘이 어떻게 돌아가는지 알아보자. label overwrite 레이블 명이 잘못 입력되었을 때, k label po lion-manual-v2 env=debug --overwrite 에러현상 The connection to the server 127.0.0.1:54007 was refused - did you specify the right host or port? 쿠버네티스 API 서버에 연결할 수 없음을 나타낸다.. Dev./Kubernetes & Helm 2023. 9. 15. Kubernetes: Intro Kubernetes 등장 배경 마이크로 서비스 아키텍쳐가 자리잡아 가면서 컨테이너를 여러가지를 띄우는 개발환경이 구축되다보니 이걸 어떻게 관리할까에 대한 고민에서 시작되었다. 그래서 구글에서 자신들의 관리 컨테이너 관리 툴을 오픈소스로 공개한 게 쿠바네티스이다. 쿠바네티스는 클러스터들을 모아두고 사용자가 원하는 만큼 원하는 컨테이너를 랜덤 서버에 띄워주고 스케일링도 처리해준다. 사용자는 쿠버네티스 마스터를 통해 원하는 컨테이너로 접근만해서 작업하면 되기 때문에 굉장히 편리하다. 특징 배포 및 스케일링 자동화 service discovery load balancing 자가 치유 고 가용성 IPv4, IPv6 이중 스택 자동화된 롤아웃 과 롤백 스토리지 오케스트레이션 시크릿과 구성관리 자동 빈 패킹 배치 실.. Dev./Kubernetes & Helm 2023. 9. 12. Terraform: AWS 서버구축2 Staging: Backed server DB 서버가 열렸으니 be 모듈을 추가해 db 인스턴스도 같이 띄워 보자. variables.tf # be module 을 열기위해 필요한 변수들 추가 ... NCP_ACCESS_KEY NCP_SECRET_KEY NCP_CONTAINER_REGISTRY IMAGE_TAG DJANGO_SETTINGS_MODULE DJANGO_SECRET_KEY main.tf # backend server module module "be" { source = "../modules/server" env = local.env name = "be" region = var.region vpc_id = module.network.vpc_id subnet_main_id = module.netw.. Dev./Terraform 2023. 9. 10. Terraform: AWS ssh connection NCP 로 접속할 땐 access key 와 secret key 를 변수로 선언해서 접근할 때마다 인증해주는 방식이었으나 aws 의 경우 credential 정보를 aws cli 로 대체하여 이를 대신한다. aws configure # result kimminhyeok@Ivans-Mac lion_infra % aws configure AWS Access Key ID [****************VCFO]: AWS Secret Access Key [****************e2+m]: Default region name [ap-northeast-2]: Default output format [JSON]: 작업하고 있는 로컬환경에서 등록해 놓은 aws configure 정보를 사용하여 해당 aws 콘솔.. Dev./Terraform 2023. 9. 9. Terraform: AWS 서버구축 Using Terraform for AWS NCP 로 staging 과 productions 을 구축하고 써봤다. 이제 AWS 에서 staging 환경까지 구축해보자. 사실 클라우드 서비스를 제공하는 회사에 따라 적용해야될 부분이 크게 다르지 않기 때문에 어렵지않게 적용시킬 수 있다. 단지 어떻게 공식문서를 확인해가면서 필요한 부분들을 찾아가는지 고민해야하는 부분이다. netwrok → db server → be server → loadbalancer 순서로 구현해보자. Modules 구조나 필요한 리소스는 NCP 와 다를게 없다. 공식문서를 잘 확인해서 필요한 부분들을 구현하자. network variables.tf # staing 에서 network 모듈로 전달하는 변수들 정리 env region m.. Dev./Terraform 2023. 9. 8. Terraform: Status 가 꼬이는 현상 가끔 모듈 정보를 바꿔야 할 때가 있다. module "servers" { >>>>> module "be" { terraform 으로 생성한 인스턴스가 운영중인데 무심코 module 정보를 바꾸고 init 을 했다면 terraform status 가 꼬여 문제가 발생하게 된다. apply 를 하든, destroy 를 하든, plan 을 하든 이미 status 가 쌓여 있는 시점에서는 새로운 모듈을 삽입해서 사용해서는 안되는 것 같다. (venv) kimminhyeok@Ivans-Mac staging % terraform state list data.ncloud_server_products.sm ncloud_public_ip.be ncloud_public_ip.db module.be.data.ncloud_.. Dev./Terraform 2023. 9. 7. Terraform: Separating Server 모듈에서 하나의 서버만 만들도록 변경 명령어를 이용하여 따로 따로 실행 가능하게 하기 위함 Modules 안 server 폴더 안쪽에 하위 폴더를 만들면 테라폼에서 접근을 하지 않음 이 작업의 접근 방식은 server 에 있는 main 을 분할은 하되, staging 에서 module 접근자로 해결 previous code staging/main.tf # servers module "servers" { source = "../modules/server" # going to variabels.tf env = local.env region = var.region site = var.site support_vpc = var.support_vpc username = var.username passw.. Dev./Terraform 2023. 9. 6. Terraform: Modules Staging code refactoring 기존에는 코드를 하나의 main.tf 파일에 담아서 동작시켰지만 실제로는 기능별로 분리해서 관리하는게 가독성이 좋다. hasicorp 의 제공하는 문서에 의하면, The standard module structure is a file and directory layout we recommend for reusable modules distributed in separate repositories. Terraform tooling is built to understand the standard module structure and use that structure to generate documentation, index modules for the module.. Dev./Terraform 2023. 9. 5. Terraform: LoadBalancer Load balance 앱을 지원하는 리소스 풀 전체에 네트워크 트래픽을 균등하게 배포한다. 애플리케이션 가동 중지 없이 애플리케이션 서버 유지 관리 또는 업그레이드 실행 Health check 을 수행하고 가동 중지를 유발할 수 있는 문제를 방지 서브넷 -> 로드벨런스 리소스 -> 타겟 그룹 -> 리스너 -> 적용 인스턴스 설정 ## Load Balancer 생성 시작 # Load Balancer resource "ncloud_lb" "lion-lb-tf" { name = "be-lb-staging" network_type = "PUBLIC" type = "NETWORK_PROXY" # 로드 밸런서는 구분지어진 하나의 서브넷을 받기 때문에 따로 설정해준다. subnet_no_list = [ ncloud.. Dev./Terraform 2023. 9. 5. Terraform: AWS - VPC 생성 Terraform 으로 AWS VPC 생성 AWS Provider: init Customizing Configuration provider 에서 제공하는 기본 틀을 바탕으로 configuration customizing # infra/aws/main.tf terraform { required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } } # Configure the AWS Provider provider "aws" { region = "ap-northeast-2" } # Create a VPC resource "aws_vpc" "lion" { cidr_block = "10.1.0.0/16" tags = { Name = "lio.. Dev./Terraform 2023. 9. 4. Terrform: NCP 서버 생성 Infra/main.tf 에 NCP 를 위한 provider 셋팅 Beginning point terraform doc 에서 Ncloud 와 관련한 문서찾기 init: Customizing configuration NaverClould provider 셋팅 가져와서 설정값 커스터마이징 # main.tf terraform { required_providers { ncloud = { source = "NaverCloudPlatform/ncloud" } } required_version = ">= 0.13" } // Configure the ncloud provider provider "ncloud" { # access_key = var.access_key # secret_key = var.secret_key.. Dev./Terraform 2023. 9. 2. Terraform: 설치와 기본정보 Install Terraform brew tap hashicorp/tap brew install hashicorp/tap/terraform Terraform command init 테라폼 명령어 사용을 위해 각종 설정을 진행 테라폼이 코드를 스캔하여 어느 공급자인지 확인하고 필요한 코드를 다운로드 plan 테라폼으로 작성한 코드가 어떻게 만들어질지에 대한 예측결과 보여줌 apply 실제로 테라폼 코드를 실행하여 인프라를 생성하는 명령어 import 이미 만들어진 자원을 테라폼 state 파일로 옮겨주는 명령어 state 테라폼 state 를 다루는 명령어로 mv, push 와 같은 명령어를 포함 destroy 해당 코드로 생성된 모든 리소스를 제거 basic process init -> plan -> a.. Dev./Terraform 2023. 9. 1. 이전 1 2 3 4 5 6 7 ··· 10 다음 728x90 반응형