목록전체 글 (245)
오늘도 한 뼘 더

# 배경 html파일을 pdf로 변환해 주는 `wkhtmltopdf` 명령어를 사용하기 위해서 Docker Container 내부에 wkhtmltopdf를 설치해야 한다. 직접 설치를 하는 방법도 있지만, 직접 설치를 하면 Docker 컨테이너를 배포할 때마다 설치를 해줘야 하기 때문에 Dockerfile에 설치 명령어를 작성하여 Docker 컨테이너가 올라갈 때마다 설치가 될 수 있도록 해야 한다. # 기존의 Dockerfile 변경 기존의 Dockerfile은 alpine 환경으로 올라가도록 작성되어 있었다. 근데 alpine 3.14버전 이상부터 wkhtmltopdf을 지원하지 않아 alpine이 아닌 ubuntu를 사용해야 했다. # Dockerfile 작성 FROM golang:1.19 AS b..

# 문제 내용 eks로 만든 cluster를 kubectl을 통해서 접근하려고 하니 다음과 같은 에러가 발생 > kubectl get pods error: exec plugin: invalid apiVersion "client.authentication.k8s.io/v1alpha1" # 원인 kubectl 12.4.x 이상의 버전에서 eks와 연동해서 사용할 경우 발생하는 오류라고 한다. https://github.com/aws/aws-cli/issues/6920 aws eks update-kubeconfig invalid apiVersion · Issue #6920 · aws/aws-cli Describe the bug Update kubectl from v1.23.6 to 1.24.0 and run ..

# 배경 쿠버네티스의 CPU, Memory 등의 사용량 Metric을 보고 싶다. # 문제 metric을 보기 위해 다음 명령어를 입력하면 에러가 발생한다. > kubectl top nodes error: Metrics API not available # 원인 Metric-server가 없어서 발생하는 문제이다. metric-server 없이는 metric을 볼 수 없다. # 해결 방법 ## Metric-Server 설치 https://github.com/kubernetes-sigs/metrics-server GitHub - kubernetes-sigs/metrics-server: Scalable and efficient source of container resource metrics for Kuber..

Deployment (디플로이먼트) 레플리카셋과 포드의 배포를 관리 포드와 레플리카셋을 관리하기 때문에 deployment를 삭제하지 않고 pod을 삭제하면 pod은 삭제되지 않고 계속 생성된다. "--record" 명령어를 통해 revision이 가능하다. deployment-nginx.yaml apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx-my template: metadata: name: nginx-pod labels: ngnix-my spec: containers: - name: nginx image: nginx:latest p..

# 배경 golang으로 db 연결을 한 뒤에 작성한 query로 받아온 값들을 scan으로 불러오는 과정에서 에러가 발생하였다. 에러 내용 error ="sql: expected 4 destination arguments in Scan, not 1" # 문제 원인 쿼리에서는 총 4개의 필드를 불러오고 있는데 Scan은 하나만 받고 있어 서로 수가 맞지 않아 에러가 발생하였다. 작성한 쿼리 rows, err := db.Query("SELECT id, name, age, phone_number FROM test") if err != nil { log.Fatal("Select Error : ", err) } Scan 코드 var result string for rows.Next() { err = rows.S..

# 배경 EC2의 스토리지가 차서 볼륨을 수정하여 스토리지 용량을 키워야 한다. 이전에 진행했던 방법으로 수정을 하는 중에 다음과 같은 에러가 발생하였다. 2022.01.12 - [DevOps & Infra/AWS] - [AWS] EC2 볼륨 수정 [AWS] EC2 볼륨 수정 # 배경 jenkins에서 프로젝트 빌드/배포를 하다가 모든 배포가 에러가 나면서 진행이 되지 않았다. 확인해본 결과 공간이 부족하다는 에러 메시지를 확인 # 문제 내용 jenkins docker를 올려놓은 EC2 인 baekji919.tistory.com # 에러 $ resize2fs /dev/nvme0n1p1 resize2fs: Bad magic number in super-block while trying to open /de..

Replica Set(레플리카셋) 일정 개수의 포드를 유지하는 컨트롤러 역할 노드 장애 등의 이유로 포드를 사용할 수 없다면 다른 노드에서 포드를 생성할 수 있도록 한다. yaml 파일에 여러 개의 리소를 만들도록 지정할 수 있으나 이는 포드 개수를 유지하는 방법은 아니다. 레플리카 셋 사용 전 apiVersion: v1 kind: Pod metadata: name: nginx-pod-a spec: containers: - name: nginx-container image: nginx:latest ports: - containerPort: 80 protocol: TCP --- apiVersion: v1 kind: Pod metadata: name: nginx-pod-b spec: containers: -..

Pod(포드) 1개 이상의 컨테이너로 구성된 컨테이너의 집합 1개 또는 그 이상의 컨테이너가 하나의 포드에 존재할 수 있다. pod 목록 확인하기 kubectl get pods pod 상세 내용 확인 kubectl describe pods pod yaml 예시 apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx-container image: nginx:latest ports: - containerPort: 80 protocol: TCP apiVersion : YAML 파일에서 정의한 오브젝트의 API 버전 정보 kind : 오브젝트 종류 metadata : 라벨, 주석, 이름 등과 같은 리소스의 부가 정보 s..

쿠버네티스 컨테이너 오케이스트레이션 도구 CNCF 및 다른 클라우드 운영 도구들과 쉽게 연동되어 확장성이 좋다 클라우드 운영에서의 리소스들에 대한 커스터마이징이 가능하다 쿠버네티스의 리소스는 대부분 오브젝트의 형태로 관리한다. Pods, Replica Set 등이 하나의 오브젝트이다. 관리 리소스가 도커보다 더 많이 투여된다는 단점도 존재 오브젝트의 종류를 확인하기 위해 다음 명령어를 사용한다. 다음과 같이 오브젝트의 종류를 확인할 수 있다. kubectl api-resources

# 배경 로컬에서 git 코드를 pull 받는 중에 다음과 같은 에러가 발생하였다. Unlink of file failed. Should I try again? # 문제 원인 찾아본 결과 이 문제는 해당 파일이 다른 프로그램에서 사용이 되고 있어 브랜치를 변경하는 과정에서 이 파일을 변경하거나 옮기지 못하게 git에서 보호를 하는 것이라고 하였다. 실제로 pull을 받기 전에 브랜치를 변경하는 작업을 진행하고 있었다. # 해결 방법 'y'를 누르면 해결이 된다는 글도 있었는데 'y'를 눌렀을 때에는 계속에서 다른 파일에 대한 해당 에러가 발생하였다. Ctrl + C로 해당 명령어를 중지하고 다시 pull을 받았다. git pull origin main 다시 pull을 받으니 정상 작동 완료!