dogenius01의 등록된 링크

 dogenius01로 등록된 네이버 블로그 포스트 수는 18건입니다.

쿠버네티스 클러스터 오토스케일링 리서치 자료 정리 [내부링크]

AWS EKS 클러스터 생성 13분 (워커없이) 노드그룹 생성 5분 (ec2 1대 t2.micro) 클러스터 오토스케일링 아마존, 구글 모두 같은 방식사용 https://corgipan.tistory.com/3 k8s는 EC2를 직접 만드는 것에는 관여할 수 없고, 약간의 꼼수처럼 AWS의 Autoscaling group의 desired capacity 갯수를 바꾸어준다 즉, CA를 적용하게 되면, 시작할 자리가 없어서 pending 되어있는 pod이 있는지 살펴본다 (Unscheduled pod) CA가 ASG의 desired capacity의 수를 올린다. 새로운 EC2인스턴스를 만들고, 이것이 새로운 worker node가 된다. (이 때 시간이 많이 소요된다) Unscheduled pod는 새로운 worker node에 스케줄링 된다. 부하가 없는 클러스터의 CA 파드 로그 I0405 05:52:19.850878 1 static_autoscaler.go:228] Startin

데이터독 리서치 자료 정리 [내부링크]

Why Datadog 다양한 기능 제공 Infra monitoring APM Log management Network Performance monitoring Security monitoring etc. 편리함 helm install 한줄로 설치 끝 Alert 설정 및 슬랙 연동 클릭 몇번으로 끝 장애 가능성 낮음 관리 인력 필요 없음 설치, 장애 및 복구 처리와 더불어 자잘한 이슈처리 없음 주 고객 샘숭 당근마켓 https://www.youtube.com/watch?v=INWPHlf24f4 소개 영상 https://www.youtube.com/watch?v=qb8J7t-NVPU https://www.youtube.com/watch?v=tT4IAECXnWI Log Flow Agent 설치 (kubernetes) 클러스터에서 아래 명령 실행 $ helm repo add datadog https://helm.datadoghq.com $ helm repo update $ vi datado

앤서블 스터디 자료 정리 [내부링크]

앤서블 앤서블의 주요 목표는 단순성과 사용 편의성이다. 최소한의 변경만 이용하고, 데이터 전송을 위해서 OpenSSH를 이용한다. 사람이 이해하기 편하도록 yaml 언어를 이용하여 작업한다. 멱등성이 특징이다. 구조 제어 노드(Control node) 앤서블이 설치된 노드 Provisioner 매니지드 노드(Managed node) 앤서블이 관리하는 노드 인벤토리(Inventory) 매니지드 노드 목록 모듈(Module) 앤서블이 실행하는 코드 단위 태스크(Task) 앤서블의 작업 단위 플레이북(Playbook) 태스크 목록 인벤토리 정의 방법 --- all: hosts: hadoop-dev-master-1: hadoop-dev-worker-[1:4]: children: # ---- zookeeper ---- zookeeper: hosts: hadoop-dev-master-1: # ---- hadooop ---- hadoop: hosts: hadoop-dev-master-1: had

오퍼레이터 리서치 자료 요약 정리 [내부링크]

애플리케이션 자동화를 위한 쿠버네티스 오퍼레이터 개발 https://www.youtube.com/watch?v=abHOcr-HTI4 상태머신이 아닙니다 어떤 상태가 될지 모르는 오픈 월드라고 생각하고 개발 해야함 계속 관측해서 상태를 확인하고 원하는 목적지(manifest)로 가야함 저장된 .status 사용한 분기 금지 에러 상태로 끝내지 마세요 오퍼레이터는 포기하지 않습니다. 백오프를 하세요. 끝까지 살려야함. 정말 어쩔 수 없는 에러라면? 입력에러는 CR자체를 못만들게 해야합니다. (웹훅) 진짜 진짜 정말 정말 처리 불가능하면 에러처리 자원을 조작할 수 있는 것은 저만이 아닙니다 모든 API는 오픈되며 숨겨진 API는 없다 RBAC이 설정되면 자원은 누구나 조작할 수 있다 오퍼레이터 개발시 테스트를 해야하나요? e2e 테스트 무조건 유닛테스트는 조정루프를 제외한 모든 함수 테스트 추천 Writing a Kubernetes Operator from Scratch Using Kub

경량 쿠버네티스 K3s 클러스터 설치 (k8s 아님 주의) [내부링크]

K3s는 kubernetes를 경량화한 제품입니다. (대문자 K를 쓰더라고요) 아시다시피 쿠버네티스는 정말 많은 기능을 제공하고 다양한 케이스를 지원합니다. 하지만 때때로 그 많은 기능이 부담스러울 때가 있습니다. 모든 사람에게 iPhone Pro Max 256G가 필요하지 않은 것처럼 말이죠. K3s를 개발한 Rancher에서는 두 가지 방법으로 오리지널 쿠버네티스를 경량화했습니다. 더 적은 메모리를 사용하는 구조 사용 쿠버네티스 클러스터 구성요소를 하나의 프로세스로 묶어서 중복으로 사용되는 부분을 제거합니다. 더 작은 크기의 바이너리 사용 써드파티 스토리지 드라이버와 클라우드 프로바이더 관련 요소를 제거하여 용량을 줄입니다. 그리고 아래에 나와있는 것들을 한 번에 제공한다고 나와있고 교체도 가능하다고 합니다. Containerd & runc Flannel for CNI CoreDNS Metrics Server Traefik for ingress Klipper-lb as an em

AWS Athena 알람 및 모니터링 [내부링크]

AWS Athena는 S3에 저장된 데이터를 SQL로 분석할 수 있게 해주는 서비스입니다. 대량의 데이터도 튜닝만 잘 되어있으면 빠르게 처리할 수 있어서 만족스러운 성능을 얻을 수 있습니다. 게다가 CloudWatch와 연동하여 모니터링도 가능합니다. 이번 포스팅에서는 CloudWatch 연동을 통해 실행 시간 모니터링부터 실패 쿼리 알람까지 구성해보겠습니다. 작업 순서는 아래와 같으며 모든 작업은 AWS 웹 콘솔에서 진행합니다. Athena CloudWatch 지표 활성화 CloudWatch 이벤트 규칙 설정 실패 쿼리 알림 람다 함수 생성 Athena CloudWatch 지표 활성화 2. CloudWatch 이벤트 규칙 설정 쿼리 지표 수집과 더불어 쿼리 상태 전환에 대한 CloudWatch 이벤트 규칙 생성이 가능해졌습니다. 실행 상태는 QUEUED, RUNNING, CANCELLED, SUCCEEDED, FAILED 값을 가지며 QUEUED로 시작해 RUNNING이 되고 SU

프로그래머의 뇌 - Part 1 코드 더 잘 읽기 [내부링크]

PART1 - ON READING CODE BETTER 챕터 1~4를 통해 코드를 읽는 것이 왜 어려운 일인지 설명하고 코드 파악을 잘하기 위해 무엇이 필요한지에 대해 다룬다. 코딩 중 겪는 혼란에 대한 이해 신속한 코드 분석 프로그래밍 문법 빠르게 배우기 복잡한 코드 읽는 방법 1. 코딩 중 겪는 혼란에 대한 이해 코딩 중에 혼란이 발생하는 다양한 방식의 차이점 이해 코딩에서 작동하는 세 가지 인지 과정의 비교 세 가지 인지 과정들이 어떻게 서로 보완적으로 작동하는지에 대한 이해 1.1 코드가 초래하는 세 가지 종류의 혼란 1.1.1 혼란의 첫 번째 유형: 지식의 부족 프로그래밍 언어나 알고리즘 혹은 업무 영역에 대한 지식이 없는 경우 혼란이 생길 수 있다. 1.1.2 혼란의 두 번째 유형: 정보의 부족 코드를 이해하기 위해 필요한 정보를 충분히 가지고 있지 못하는 경우에도 그렇다. 예를 들면, 라이브러리, 모듈, 패키지 같은 것에 대한 정보가 있다. 1.1.3 혼란의 세 번째 유

프로그래머의 뇌 - Part 3 좋은 코드 작성하기 [내부링크]

PART3 - ON WRITING BETTER CODE 1부와 2부에서는 코드를 파악할 때 STM, LTM, 작업 기억 공간이 하는 역할에 대해 살펴본다. 3부에서는 코드 작성을 더 잘하는 방법, 즉 모호한 이름과 좋지 못한 코드를 피하고 이해하기 쉬운 코드를 작성하는 방법을 다룬다. 또한 복잡한 문제에 대한 코드 작성 능력을 향상시킬 방법에 대해서도 논의한다. 8. 이름 잘 정하는 방법 9. 나쁜 코드와 인지 부하를 방지하는 두 가지 프레임워크 10. 복잡한 문제 해결을 더 잘하려면 8. 이름 잘 정하는 방법 좋은 이름 짓기에 대한 여러 가지 관점의 비교 이름과 인지 과정 간의 관계 파악 다양한 명명법의 효과 잘못된 이름이 버그 및 오류에 미치는 영향 변수 이름을 구조화하여 이해도를 극대화하는 방법 8.1 이름이 중요한 이유 8.1.1 명명이 중요한 이유 이름은 코드베이스의 상당 부분을 차지한다 코드 리뷰 시 이름의 역할 이름은 문서화의 가장 쉬운 형태 이름이 표식 역할을 할 수

Certified Kubernetes Security Specialist (CKS) 합격 후기 [내부링크]

CKA는 4주, CKS는 5주 정도 준비했다. 시험 준비 1. Udemy 강의 시험공부는 강의 위주로 준비했다. 3주 동안 매일 강의를 듣고 실습도 했는데 이게 많이 힘들었다. 평일에는 업무 끝나고 남아서 듣고 주말에는 집에서 듣고... 강의는 Udemy에서 제일 유명한 강의를 들었다. 당연히 영어로 진행되지만 사용하는 용어가 익숙해서 이해하기 쉽다. https://www.udemy.com/course/certified-kubernetes-security-specialist/ Kubernetes CKS 2022 Complete Course - Theory - Practice Theory | Practice | Browser Scenarios www.udemy.com 2. 출제 범위 및 예상 문제 정리 https://training.linuxfoundation.org/certification/certified-kubernetes-security-specialist/ Certified

Calico 라우팅 모드 (IP-in-IP, Direct, VXLAN) [내부링크]

이 글은 아래 글을 보면서 다시 정리한 글입니다. (제가 이해하려고) https://joshrosso.com/docs/2020/2020-10-01-calico-routing-modes/ Calico Routing Modes A deep dive into how routing in Calico works. joshrosso.com resource "aws_vpc" "vpc" { cidr_block = "10.30.0.0/16" } resource "aws_subnet" "subnet_1" { vpc_id = "${aws_vpc.vpc.id}" availability_zone = "us-west-2a" cidr_block = "10.30.0.0/24" tags = { Subnet = "1" } } resource "aws_subnet" "subnet_2" { vpc_id = "${aws_vpc.vpc.id}" availability_zone = "us-west-2b" cidr_block

Kubernetes 버전 업그레이드 (NHN, NCP, EKS) [내부링크]

공통 컨트롤 플레인 업그레이드 후 워커 업그레이드 NHN 한번에 마이너 버전 1 업데이트 가능 https://meetup.toast.com/posts/298 NHN Kubernetes Service(NKS) 쿠버네티스 클러스터 업그레이드 기능 : NHN Cloud Meetup NHN Cloud 쿠버네티스 서비스의 클러스터 업그레이드 기능을 소개합니다. meetup.toast.com 컨트롤 플레인 업그레이드 버퍼 노드 없이 하나씩 업그레이드 마스터 업그레이드 시 주의사항 일시적으로 Kubernetes API가 실패할 수 있습니다. 오토 스케일러 기능이 일시 중단됩니다. 워커 노드 그룹 업그레이드 절차 대상 워커 노드 그룹에 버퍼 노드를 추가합니다. 워커 노드 그룹 내의 모든 노드에 대해 순차적으로 다음 작업을 수행합니다. 워커 노드에서 동작 중인 파드를 축출하고, 노드를 스케줄 불가능한 상태로 전환합니다. 워커 구성 요소를 업그레이드합니다. 워커 노드를 스케줄 가능한 상태로 전환합니다

Certified Kubernetes Security Specialist (CKS) 시험 준비 자료 [내부링크]

시험 범위 요약 Cluster Setup (10%) Use Network security policies to restrict cluster level access Use CIS benchmark to review the security configuration of Kubernetes components (etcd, kubelet, kubedns, kubeapi) Properly set up Ingress objects with security control Protect node metadata and endpoints Minimize use of, and access to, GUI elements Verify platform binaries before deploying Cluster Hardening (15%) Restrict access to Kubernetes API Use Role Based Access Controls to minimize exposure Exercis

Kubernetes in Action - Part 3 Beyond The Basics [내부링크]

PART 3 - BEYOND THE BASICS 11. 쿠버네티스 내부 파트3는 11장만 정리함 11. 쿠버네티스 내부 11장에서 다루는 내용 쿠버네티스 클러스터를 구성하는 컴포넌트 각 컴포넌트의 역할과 동작 방식 포드를 실행하는 디플로이먼트 오브젝트의 생성 방법 실행 중인 포드 동작 이해 포드 간의 네트워크 동작 방식 쿠버네티스 서비스의 동작 방식 고가용성 실현 방법 쿠버네티스 아키텍처 컨트롤 플레인 etcd 분산 스토리지 API 서버 스케줄러 컨트롤러 매니저 워커 노드 kublet kube-proxy 컨테이너 런타임(docker, rkt, 등) 애드온 컴포넌트 쿠버네티스 DNS 서버 대시보드 인그레스 컨트롤러 힙스터 컨테이너 네트워크 인터페이스 플러그인 etcd 무조건 홀수로 구성해야한다. API 서버 인증 플러그인 HTTP 요청의 헤더에서 사용자 이름, 아이디, 그룹 정보 추출 권한 승인 플러그인 사용자가 요청된 액션을 수행할 수 있는지 결정 승인 제어 플러그인 요청대로 리소스

아식스 젤 레졸루션 8 테니스화 롱텀 리뷰 [내부링크]

나는 젤 레졸루션 4부터 계속 아식스 테니스화를 신어 왔다. (중간에 스피드 모델을 신기도 했다.) 매번 새로운 모델이 나올 때마다 아식스는 감동이었다. 그런데 기대가 너무 컸던 탓일까? 레졸루션 8은 대~실망이었다. 실망 위주로 설명한다. 일 년 넘게 신었는데 잘 안 신었다. 이상해진 착화감 전 버전들은 신발이 적당히 단단하고 발음 감싸는 느낌이 엄청 좋았는데 이번 레졸루션은 쫌 애매하다. 사실 이전 버전과 같은 사이즈를 구입했더니 신발이 너무 껴서 한 사이즈 올렸더니 그런 것 같기도 하다. 그런데 나는 계속 같은 사이즈를 신어 왔는걸... ㅠㅠ 2. 똑딱똑딱 신발을 받자마자 걸어보는데 발에서 똑딱 소리가 나길래 발가락뼈에서 소리가 나나...? 생각했다. 그런데 웬걸... 신발에서 나는 소리였다. 괜찮아지겠지... 긍정적으로 생각하고 길들이려고 했지만 실패했다. 왼발 구부릴 때마다 똑딱 소리 난다. 3. 인조에서 미끄러움 주로 인조잔디에서 운동하는데 이 신발 엄청 미끄럽다. 이전

Kubernetes in Action - Part 2 Core Concepts (3) [내부링크]

PART 2 - CORE CONCEPTS (3) 9. 디플로이먼트: 애플리케이션을 선언적으로 업데이트하기 10. 스테이트풀셋: 복제된 스테이트풀 애플리케이션 배포하기 9. 디플로이먼트: 애플리케이션을 선언적으로 업데이트하기 9장에서 다루는 내용 포드를 최신 버전으로 변경하기 관리되는 포드 업데이트하기 디플로이먼트 리소스를 사용해 선언적으로 포드 업데이트하기 롤링 업데이트 수행하기 잘못된 버전의 롤아웃을 자동으로 차단하기 롤아웃 속도 제어하기 포드를 이전버전으로 되돌리기 실행중인 애플리케이션 업데이트 위 구조에서 수동으로 포드를 업데이트하는 방법은 세 가지가 있다. 방법 1: 기존의 모든 포드를 삭제한 후 새로운 버전의 포드 시작하기 다운타임 발생하지만 가장 간단하다 방법 2: 새로운 버전의 포드를 시작하고 오래된 버전의 포드 삭제하기 두 버전을 동시에 수용 가능한 구조여야 함 방법 3: 롤링 업데이트 수동으로 롤링 업데이트를 하면 힘들고 오류가 발생하기 쉽다. 과거의 롤링 업데이트

아디다스 바리케이드 테니스화 롱텀 후기 [내부링크]

올해 초 구입한 아디다스 바리케이드 테니스화 밑창이 올코트용으로 나왔다 인조잔디 코트가 정말 많은 우리나라 환경에 정말 딱 맞는 신발이다. 클레이 코트 전용 신발을 신고 인조잔디에서 운동한 날이 있었는데 슬라이딩을 하다가 중간에 급제동 되는 바람에 넘어진 일이 있었다. 그렇게 다치고 나서 인조잔디에서 클레이 테니스화를 신으면 위험하다는 것을 깨닫고 그날 바로 주문한 신발이 아디다스 바리케이드다. 대략 6개월 정도 이 신발을 신었는데 이 신발의 장점은 크게 3가지가 있다. 인조잔디에서 좌우로 방향을 급하게 바꾸는 동작에서 미끄러지지 않는다. 그리고 슬라이딩도 가능하다. 쿠셔닝이 좋고 발등 부분이 부드러워서 발이 편하다. 마지막으로 바리케이드 답게 내구성이 엄청 좋고 예전 바리케이드 처럼 무식하게 무겁지도 않다. 단점은...디자인? ㅎㅎ 내구성: 최상 쿠셔닝: 상 편안함: 상 코트: 하드, 인조잔디 #바리케이드 #테니스화 #후기

Kubernetes in Action - Part 2 Core Concepts (1) [내부링크]

파트2는 3장부터 10장까지여서 3~5장, 6~8장, 9~10장으로 나누겠습니다. PART 2 - CORE CONCEPTS (1) 3. 포드: 쿠버네티스에서 컨테이너 실행하기 4. 레플리케이션과 그 밖의 컨트롤러: 포드 배포 관리 5. 서비스: 클라이언트가 포드를 검색하고 통신을 가능하게 함 3. 포드: 쿠버네티스에서 컨테이너 실행하기 3장에서 다루는 내용 포드의 생성, 실행, 정지 포드와 라벨을 사용한 리소스의 구성 특정 라벨이 있는 모든 포드의 작업 네임스페이스를 사용한 중복되지 않는 그룹으로 포드 분할 특정 유형의 워커 노드에 포드를 스케줄 관련 없는 여러 프로세스를 하나의 컨테이너에서 실행하면 그 안의 모든 프로세스를 관리하는 것은 사용자의 책임이 된다. 그러므로 각각의 프로세스를 각각의 컨테이너에서 실행해야 한다. 아주 밀접한 관계의 프로세스를 묶기 위해서 포드가 필요하다. 묶어서 하나의 단위로 관리. 네임스페이스 UTC: hostname 변경, 분할 IPC: Inter-p

Kubernetes in Action - Part 1 Overview [내부링크]

PART1 OVERVIEW 쿠버네티스 소개 도커와 쿠버네티스의 첫걸음 1. 쿠버네티스 소개 1장에서 다루는 내용 최근 소프트웨어 개발 및 배포의 변화 이해 컨테이너로 애플리케이션을 분리시켜 실행 환경에 따른 차이 줄이기 쿠버네티스에서 컨테이너와 도커의 사용 방법 쿠버네티스를 사용해 개발자와 시스템 관리자의 작업을 더 쉽게 만드는 방법 컨테이너 격리 원리 및 방법 네임스페이스(namespace) 컨트롤그룹(cgroups) 2. 도커와 쿠버네티스의 첫걸음 2장에서 다루는 내용 도커를 사용한 컨테이너 이미지의 생성, 실행, 공유 로컬에서 단일 노드의 쿠버네티스 클러스터 실행 구글 쿠버네티스 엔진의 쿠버네티스 클러스터 설정 kubectl 명령행 클라이언트를 설정하고 사용 쿠버네티스에서 앱의 배포와 수평 스케일링 kubectl ```bash kubectl get pods -o wide --sort-by=.metadata.creationTimestamp kubectl get services k