본문 바로가기

유성이의 기술 메모109

K8s 구성 - AWS 1. 개요 - AWS에서 Amazon EC2에 Kubernetes를 구성하는 절차를 간단하게 설명하고자 합니다. - 구성 환경은 Amazon EC2(Redhat 9.2), CRI-O 1.25.4, Kubernetes 1.28, flannel 0.22.2입니다. - AWS는 관리형 서비스인 Amazon EKS(Elastic Kubernetes Service)와 Amazon ECS(Elastic Container Service)를 제공하고 있습니다. 2. AWS EC2 구성 2.1 Key pair 생성 Kubernetes를 설치하기 위하여 Amazon EC2에 접속할 때 사용할 키를 생성합니다. - 메뉴 EC2 console > Network & Security > Key Pairs > Create key .. 2023. 8. 30.
Virtual Waiting Room on AWS - Inlet strategy 1. 개요 - 목적 Virtual Wainting Room 사용 시 동시 처리량을 조절하는 Inlet strategy를 이해하고 활용한다. - Virtual Waiting Room? 이 솔루션은 대량 트래픽 버스트 발생 시 웹사이트로 수신되는 사용자 요청을 버퍼링 할 수 있는 기능을 제공한다. Virtual Waiting Room on AWS 2. Inlet strategy - 타겟 사이트에 더 많은 사용자를 수용하기 위하여 Virtual Waiting Room의 Serving counter에 대하여 증가 시점과 증가량을 결정할 때 사용되는 전략이다. - Inlet strategy를 이해하기 위해서는 ElastiCache for Redis에서 관리하는 Serving count와 Queue counter의.. 2022. 8. 21.
Virtual Waiting Room on AWS 1. 소개 - 기능: 이 솔루션은 대량 트래픽 발생 시 웹사이트로 수신되는 사용자 요청을 버퍼링 할 수 있는 기능을 제공 - 작성자: AWS - 라이선스: Apache license 2.0 - AWS 솛루션? ✓ AWS 서비스, 코드 및 구성을 조합하여 바로 배포할 수 있는 솔루션 (https://aws.amazon.com/ko/solutions/) ✓ ‘콘텐츠 전송 및 엣지 서비스’ 분야에 소개된 Virtual Waiting Romm on AWS 솔루션 2. Deployment - 자세한 내용은 아래 가이드를 참조하기 바라며, 아래에 설치 및 테스트 내용을 간략하게 기술하였음 https://docs.aws.amazon.com/solutions/latest/virtual-waiting-room-on-aw.. 2022. 8. 9.
Integrating S3 and DocumentDB with AWS Managed Streaming for Apache Kafka (MSK) 2022.08.01 목차 1. 개요 2. 아키텍처 구성도 3. 환경 구성 및 테스트 A. AWS MSK 구성 B. AWS DocumentDB 구성 C. AWS S3 구성 D. AWS EC2를 이용한 MongoDB, Kafka 클라이언트 구성 E. AWS MSK Connect with Confluent S3 Sink Connector 구성 F. AWS MSK Connect with MongoDB Connector 구성 G. Kafka Connector 기능 확인 4. 제약 사항 5. 대안 아키텍처 참조 문서 1. 개요 - MSK (Managed Streaming for Apache Kafka)는 완전 관리형의 고가용성 Apache Kafka 서비스를 통해 안전하게 데이터를 스트리밍 한다. - MSK Con.. 2022. 8. 1.
NFS subdir external provisioner 1. 개요 - 쿠버네티스에는 내장 NFS 프로비저너가 없다. NFS를 위한 스토리지클래스를 생성하려면 외부 프로비저너를 사용해야 한다. ✓ NFS Ganesha server and external provisioner ✓ NFS subdir external provisioner - NFS subdir external provisioner ✓ PVC(Persistent Volume Claim)에 대한 쿠버네티스 PV(Persistent Volume)를동적으로 프로비저닝하기 위하여 사전에 구성된 NFS server를 사용하는 automatic provisioner이다. ✓ PV는 "${namespace}-${pvcName}-${pvName}"로 프로비저닝된다. ✓ NFS-Client Provisioner를.. 2022. 1. 11.
Kubeflow 1.4.1 in Minikube 구성 1. 개요 - minikube에 Kubeflow 1.4.1을 설치한다. - Kubeflow 설치 방식이 버전 1.2까지는 kfctl를 사용하였으나, 1.3부터는 kustomize를 사용한다. ✓ kfctl is a CLI for deploying and managing Kubeflow, Latest release: 1.2.0(21 Nov 2020), https://github.com/kubeflow/kfctl ▷ Kubeflow 1.2 in On-prem 구성 ▷ Kubeflow 1.2 in Minikube 구성 ✓ Kubeflow 1.4.1는 Istio 1.9.6, Knative 0.22.1을 포함하고 있다. 2. 환경 - kubeflow 1.4.1 - minikube 1.17.1 - kubernete.. 2021. 12. 30.
Velero와 restic - 'signal: killed' 1. 개요 - velero backup 실행 시 발생된 에러의 원인을 파악하고 조치한다. 2. 환경 - Velero 1.7 & restic 0.12.0 - MinIO 2021-11-09T03:21:45Z - Kubernetes 1.16.15 3. 문제점 - PostgreSQL Pod의 볼륨을 백업하는 도중에 'signal: killed'에러가 발생되었다. 상세 에러 메시지: od volume backup failed: error running restic backup, stderr=: signal: killed $ k logs -n velero velero-77bd5cd848-k54rk -f | grep 'level=error' … time="2021-12-16T06:24:38Z" level=error .. 2021. 12. 16.
Velero와 restic - 'Error checking repository for stale locks' 1. 개요 - velero backup 실행 시 발생된 에러의 원인을 파악하고 조치한다. 2. 환경 - Velero 1.7 & restic 0.12.0 - MinIO 2021-11-09T03:21:45Z - Kubernetes 1.16.15 3. 문제점 - velero Pod에서 생성되어 있는 restic repository를 주기적으로 점검하는 과정에서 에러가 발생된다. 상세 에러 메시지: Fatal: unable to open config file: Stat: The specified key does not exist. Is there a repository at the following location? s3:https://api.acp.kt.co.kr:9002/k8s-ext/restic/geums.. 2021. 12. 16.
Velero와 restic으로 K8s 백업/복구 in on-premise 1. 개요 - Velero (https://velero.io/)? ✓ Velero는 쿠버네티스 리소스와 퍼시스턴트 볼륨을 오프젝트 스토리지로 백업하는 툴이다. ✓ Velero는 로컬에서 수행하는 클라이언트 CLI(Command-line Interface)와 쿠버네티스 클러스터에서 운영되는 서버로 구성되어 있다. ✓ 클라우드 프로바이더가 제공하는 블럭 스토리지 스냅샷 기능을 이용하여 PV(Persistent Volume)에 대한 스냅샷을 생성하여 백업한다. ✓ On-premise 환경에서는 restic 오픈소스를 활용하여 PV를 오브젝트 스토리지로 백업한다. (Velero 1.5 부터) https://velero.io/blog/velero-1.5-for-and-by-community/ - Velero 활용.. 2021. 12. 8.
MongoDB Sharded - 설정 변경 1. 개요 - Helm으로 설치된 MongoDB sharded의 설정을 변경하고자 하는 경우 helm 명령어로 사용해야 한다. - MongoDB sharded helm chart by Bitnami This chart bootstraps a deployment on a cluster using the package manager. 2. 환경 - bitnami/mongodb-sharded 3.9.14 - MongoDB 4.4.10 - Helm v3.3.1 3. 설정 변경 절차 a. MongoDB sharded 설정 값 조회 - 'helm get values' 명령어로 최종 설정된 값을 조회한다. 참고로 직접 쿠버네티스 리소스를 수정한 내용들은 조회되지 않는다. $ helm list -A | egrep 'N.. 2021. 12. 7.
MongoDB Sharded - root 암호 변경 시 고려사항 1. 개요 - root 계정 암호 변경 시 고려 사항 MongoDB Sharded를 사용하는 환경에서는 root 계정의 암호를 변경할 경우 암호를 저장하고 있는 secret도 같이 변경해야 한다. - MongoDB sharded helm chart by Bitnami This chart bootstraps a deployment on a cluster using the package manager. 2. 환경 - bitnami/mongodb-sharded 3.9.14 - MongoDB 4.4.10 3. root 계정 암호 변경 절차 a. 암호 변경 - MongoDB에 접속하여 root 계정의 암호를 'mongo'로 변경한다. $ kubectl run -n ontact bizcollabo-mongodb-m.. 2021. 12. 6.
NTP(Network Time Protocol) 설정 2020.06.20 1. Chrony? - NTP(Network Time Protocol) 구현체로 시스템 시간을 동기화하는 기능을 제공한다. - RHEL 7 이전에는 ntpd를 사용하였으나 이후 chrony로 대체되었다. - NTP에서 사용하는 포트는 UDP 123, 323이다. The UDP port 123 needs to allow the client access The UDP port 323 needs to connect from a remote system. - Stratum (계층) NTP는 계층적인 구조를 가지며, 각각의 계층은 상위 계층으로부터 시간을 동기화한다. 계층은 0부터 15까지 총 16개로지역을 기반으로 구성되는데, 네트워크 지연을 최소화 가기 위함이다. 0 레벨은 stratum.. 2021. 11. 30.
MinIO - Distributed Mode 1. 개요 - MinIO? ✓ Amazon S3와 호환하는 오브젝트 스토리지를 제공하는 오픈소스 소프트웨어이다. ✓ MinIO는 Standalone(Single), Distributed 모드로 구성할 수 있다. ✓ Kubernetes, docker, OS (linux, macOS, Windows)등 다양한 운영 환경을 지원한다. - MinIO Distributed 모드 ✓ 분산 모드에서는 1개 이상의 인스턴스(서버)가 관리하는 최소 4개 이상의 디스크/볼륨으로 구성한다. ✓ 분산 모드에서는 모든 서버가 엔드포인트가 되기 때문에 아무 서버에 접속하여 사용할 수 있으며, 로드 밸랜서 사용을 권고한다. ✓ Erasure coding으로 데이터 중복 허용 및 가용성을 지원한다. Erasure Coding은 파일.. 2021. 11. 11.
LVM - LV 사이즈 확장 2020.08.04 1. 디스트 현환 조회 # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 111.8G 0 disk ├─sda1 8:1 0 200M 0 part /boot/efi ├─sda2 8:2 0 1G 0 part /boot └─sda3 8:3 0 110.6G 0 part ├─centos-root 253:0 0 50G 0 lvm / └─centos-swap 253:1 0 15.6G 0 lvm … # lvscan WARNING: Device for PV WW1CSe-5oqs-KdaW-aaGk-3E0J-PAit-6Lpnww not found or rejected by a filter. Couldn't find device with uuid WW1C.. 2021. 11. 10.
LVM (Logical Volume Manager) 2020.08.04 1. LVM 개요 - CentOS에서 기본 제공되는 볼륨 매니저로 물리 디스크를 논리적으로 구성하여, 논리적인 그룹들을 묶거나 유연하게 확장 또는 제거할 수 있는 기능 2. LVM 설치 # yum install lvm2 3. LVM 구성 a. 물리적 디스크 확인 (/dev/sdb) # lsblk -l NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 893.8G 0 disk sda1 8:1 0 200M 0 part /boot/efi sda2 8:2 0 1G 0 part /boot sda3 8:3 0 892.6G 0 part centos-root 253:0 0 888.6G 0 lvm / centos-swap 253:1 0 4G 0 lvm [SWAP.. 2021. 11. 10.