의도 [테라폼으로 시작하는 IaC] 책의 246페이지 실습에 대한 내용이다. 한 가지 변수 값만 다른 instance를 반복문을 사용해 3개 생성해야 한다. 모듈을 쓰자니 너무 복잡하고 count를 쓰자니 instance 참조 방식을 인덱스로 하는게 맘에 안 들어서 for_each를 택했다. # aws_instance.hashicat["kitten"] will be created + resource "aws_instance" "hashicat" { 이런 식으로 aws_instance.hashicat["kitten"] 형태로 참조하고 싶었다. count를 사용하면 aws_instance.hashicat[0] 의 형태로 참조해야 한다. 결과 코드 locals { map_placeholder = { "kitt..
전체 글
짱이 될 거야1st NE(O)RDINARY DemoDAY 행사에 다녀왔다. 토요일 '개발자를 위한 소프트 스킬'부터 '나는 어떤 회사에서 일해야 할까?'까지 총 2세션 그룹을 들었다. 유료 행사였고 한 세션 그룹(한 줄)당 5,000원으로 총 10,000의 비용을 지불했다. 총 6개의 세션을 다 들었고, 아직 신입인 나에게 유익한 내용들이었고 발표하시는 분들이 유쾌했다. 엄숙한 분위기 아니라 더 좋았다. 원체 컨퍼런스 듣는 거 좋아하기도 해서 나에게는 만 원의 비용이 아깝지 않은 행사였다. 컨퍼런스에서 느껴지는 분위기가 너무 좋다. 갓생러들 분위기.. 주말인데 다들 컨퍼런스 들으러 합정까지 가다니 대단한 사람들.. 컨퍼런스에 갔다오면 더 열심히 하고 싶어지고 동기부여가 된다. 개발자를 위한 소프트 스킬 유튜브 프리미..
github 토큰 인증을 사용하려니 push할 때마다 토큰을 알려달라고 해서 SSH 접속 방식을 찾았다. hh@DESKTOP-4UIU15G:~$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/hh/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/hh/.ssh/id_rsa Your public key has been saved in /home/hh/.ssh/id_rsa.pub The key ..
AWS AK/SK를 EXPORT로 사용하거나, 파일에 저장하거나, 코드에 직접 넣기엔 보안적으로 너무나 안 좋다고 생각한다. 그래서 찾은 방법이 AWS의 profile을 사용하는 것이다. hh@DESKTOP-4UIU15G:~$ aws configure --profile hh AWS Access Key ID [None]: ****** AWS Secret Access Key [None]: ****** Default region name [None]: ap-northeast-2 Default output format [None]: hh@DESKTOP-4UIU15G:~$ aws s3 ls --profile hh aws configure --profile [profile_name] 명령으로 profile을 등록한..
윈도우에 테라폼을 직접 설치하면 설정이 조금 불편해져서 WSL에 설치하려고 한다. 모든 사항은 테라폼 공식 문서를 따라간다. https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli Install Terraform | Terraform | HashiCorp Developer Install Terraform on Mac, Linux, or Windows by downloading the binary or using a package manager (Homebrew or Chocolatey). Then create a Docker container locally by following a quick-start tutoria..
파드는 생성과 삭제를 반복하는데, 이때 중요한 데이터는 따로 저장해두어야 한다. 또한 데이터를 여러 파드가 공유할 수도 있다. 쿠버네티스에서는 다양한 형태의 볼륨을 제공한다. PV(PersistentVolume) 볼륨을 사용할 수 있게 준비함 apiVersion: v1 kind: PersistentVolume metadata: name: nfs-pv spec: capacity: storage: 100Mi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain nfs: server: 192.168.1.10 path: /nfs_shared 여기서 선언한 storage는 단순히 레이블의 의미만 가지며 실제로 사용량을 제한하지 않는다. access..
가상머신에서 로컬 클러스터를 사용했다. Service 파드는 클러스터 내에서 유동적이기 때문에 새로 생길 때마다 접속 정보가 변경된다. 이에 내/외부에서 파드 접속을 안정적으로 할 수 있게 도와주는 것이 쿠버네티스에서 서비스의 역할이다. 파드가 생성될 때 부여되는 IP를 가지고 연결한다. NodePort yaml에 NodePort type 선언하기 [root@m-k8s ~]# cat _Book_k8sInfra/ch3/3.3.1/nodeport.yaml apiVersion: v1 kind: Service metadata: name: np-svc spec: selector: app: np-pods ports: - name: http protocol: TCP port: 80 targetPort: 80 node..
Node 쿠버네티스 스케줄러에서 파드를 할당받고 처리하는 역할 쿠버네티스는 모든 노드에 파드를 균등하게 배포하려고 하므로 사용하고 싶지 않은 노드가 있을 때는 사용자가 직접 설정해주어야 한다. 노드에 SchedulingDisabled옵션을 주어 노드가 추가 파드를 할당받지 않도록 할 수 있다. cordon과 drain cordon: 지정한 노드에서 실행 중인 파드는 건드리지 않고 추가적인 파드를 할당받지 않는다. drain: 지정한 노드에 새로 생성되는 파드를 할당하지 않을 뿐 아니라 노드에 이미 실행 중인 파드도 다른 노드로 이동시킨다. cordon 지정한 노드에서 실행 중인 파드는 건드리지 않고 추가적인 파드를 할당받지 않는다. [root@m-k8s ~]# kubectl get pod -o=custo..
파드 자체에 문제가 생기거나, 파드 내부에서 동작 중인 컨테이너에 문제가 생길 수 있는데, 두 가지 상황에 대해 자동 복구가 가능하다. 컨테이너 자동 복구 파드에서 동작 중인 컨테이너에 문제 발생 시, 파드가 컨테이너를 자동으로 재시작하거나 교체하여 항상 정상 작동을 유지할 수 있도록 노력한다. self-healing이라고도 한다. [root@m-k8s ~]# kubectl get pods -o wide NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES echo-hname-7894b67f-8mb7s 1/1 Running 0 101m 172.16.132.1 w3-k8s echo-hname-7894b67f-kflct 1/1 Runni..
pod 생성 방식 정리 run 쉽게 파드 생성 가능 단일 파드 1개 생성 yaml 파일을 사용한 파드 생성 불가능 create 파드만 생성할 수는 없고 파드를 관리하는 deployment를 생성할 수 있음 yaml 파일을 사용한 오브젝트 생성 가능 apply yaml 파일을 사용한 오브젝트 생성 가능 YAML 문법으로 object spec 파일을 작성하여 원하는 스펙과 상태를 저장한다. # echo-hname.yaml apiVersion: apps/v1 # API 버전 kind: Deployment # 오브젝트 종류 metadata: name: echo-hname labels: app: nginx spec: replicas: 3 # 몇 개의 파드를 생성할지 결정 selector: matchLabels: ..