쿠버네티스 클러스터 구성 요소 및 동작 이해 (2) - API 서버
2023. 1. 15. 19:04
개발자: 지식 정리/쿠버네티스
동작 과정 쿠버네티스 API 서버는 클러스터 상태를 조회하고 변경하기 위해 RESTful API로 CRUD 인터페이스를 제공한다. 쿠버네티스 상태는 etcd 안에 저장된다. API 서버의 클라이언트 중 하나는 kubectl 명령줄 도구이다. 예를 들어 yaml 파일에서 리소스를 생성할 때 kubectl은 파일의 내용을 API에 HTTP POST 요청으로 전달한다. api 서버 옵션 조회 kubeadm 툴을 이용했을 시, kube-apiserver 는 master 노드 kube-system 네임스페이스에서 Pod 로 존재함을 확인할 수 있다. kubectl get pods -n kube-system cat /etc/kubernetes/manifests/kube-apiserver.yaml kubeadm 툴을..
쿠버네티스 클러스터 구성 요소 및 동작 이해 - (1) etcd
2023. 1. 15. 17:55
개발자: 지식 정리/쿠버네티스
쿠버네티스 클러스터 구성요소(component) 이전 글 쿠버네티스 etcd 쿠버네티스는는 기본 데이터 저장소로 etcd를 채택했다. etcd 는 분산 시스템에서 사용할 수 있는 분산형 키-값 (key-value) 저장소로, 공식 문서는 다음과 같다: https://etcd.io/docs/ 쿠버네티스에서 etcd는 클러스터의 상태를 저장하고 있다. 클러스터에 필요한 설정 정보와, 포드와 서비스 같은 각 리소스들의 명세와 상태 정보 등을 저장한다. 모든 클러스터 데이터를 담는 쿠버네티스 뒷단의 저장소로 사용되는 일관성·고가용성 키-값 저장소이다. 카카오 테크에서 정리한 etcd 참고 etcd 블로그 글 쿠버네티스가 etcd를 사용하는 방법 쿠버네티스가 클러스터 상태와 메타데이터를 저장하는 유일한 장소가 e..
⚡️ Blocking, Non-blocking, Sync, Async 아주 쉽게 정리
2022. 12. 26. 14:12
개발자: 지식 정리/아키텍처&설계
Blocking/Non-blocking Blocking 다른 서비스에 내용을 요청하게 되면, 그 요청이 끝날 때까지 나는 아무것도 하지 못하고 기다리는 상태. 다른 서비스의 작업이 끝나야 나는 내 일을 할 수 있다. 예시) 1. 프린터에게 내가 쓴 문서를 인쇄하라고 요청함. 2. 프린터가 인쇄할동안 나는 아무것도 하지 않고 기다려야 함. 인쇄한 문서를 있어야 내 할 일을 할 수 있기 때문에. 3. 인쇄가 끝나면 난 내 할 일을 할 수 있음. Non-Blocking Non-blocking 으로 처리할 경우, 다른 서비스에 요청한 작업이 지금 어떻게 진행되고 있던 간에 상관없이 내 할 일을 할 수 있다. 예시) 1. 프린터에게 내가 쓴 문서를 인쇄하라고 요청함. 2. 프린터가 인쇄할동안 나는 내 다른 할 일..
네트워크 인터페이스란? (ifconfig 명령어)
2022. 11. 20. 20:41
개발자: 지식 정리/리눅스
네트워크 인터페이스// 이름은 어디서 많이 들어봤는데 정확히 잘 모릅니다. 얼마 전에 회사에서 운영하는 서버에서 서버 인터페이스가 내려가는 일이 일어났었습니다. 관련해서 전문 부서에서 해결해주셨는데요, ifconfig 명령어 찾아보며 알아보긴 했지만, 인터페이스가 뭔지 개념도 잘 몰라 벙쪄있던 기억이 있습니다. 이 기회에 네트워크 인터페이스, ifconfig 명령어 관련해 관련 지식을 잘 정리해놓으려고 합니다. 네트워크 인터페이스란? 네트워크 인터페이스는 컴퓨터를 네트워크에 연결해주는 역할을 합니다. os 커널 소프트웨어 side에서 일어나는 네트워킹을 실제 하드웨어 네트워크 장치와 이어준다고 합니다. (컴퓨터가 네트워크 장치와 연결되는 지점) 컴퓨터가 네트워크에 연결하여 통신하기 위해 사용되는 하드웨어..
MySQL InnoDB 락 / 데드락 해결 공유
2022. 9. 22. 23:32
개발자: 지식 정리/CS 지식: DB
InnoDB MySQL InnoDB란 다른 스토리지 엔진과 다르게 InnoDB에서는 잠금, Lock을 제공해서 동시성을 보장해준다. InnoDB Lock 자체적인 잠금을 가지고 있지 않은 MyISAM이나 Memory 스토리지 엔진과 달리, InnoDB 엔진은 자체적인 레코드 기반의 잠금 기능을 제공하여 동시성을 보장한다. Lock(잠금) : 서로 다른 작업에서 같은 자원을 동시에 필요로 할 때 자원 경쟁이 일어나는데, 이때 동시성을 보장하기 위한 기능이다. InnoDB Lock 종류 Shared Lock & Exclusive Lock innoDB storage engine은 기본적으로 Row-level lock을 사용한다. lock을 걸때는 query의 목적에 따라서 두가지 Type의 Lock을 사용한다..
MySQL 서버(MySQL 엔진, InnoDB 스토리지 엔진) 정리
2022. 9. 22. 16:52
개발자: 지식 정리/CS 지식: DB
MySQL 서버 MySQL 서버 = MySQL 엔진 + 스토리지 엔진 MySQL 엔진: 클라이언트로부터 오는 요청 처리(요청된 SQL 문장을 분석, 최적화, ...)를 담당. 서버 접속 및 쿼리 요청 처리하는 커넥션 핸들러, SQL 파서, 전처리기, 쿼리 최적화를 옵티마이저로 이루어짐. SQL 처리를 위한 두뇌역할 스토리지 엔진: 실제 데이터를 디스크 스토리지에 저장하거나 조회하는 부분 담당. 실질적인 데이터 저장 및 조회 역할 담당. InnoDB 스토리지 엔진 MySQL 이 제공하는 스토리지 엔진 중 유일하게 레코드 기반 락(Lock)을 제공하며 이로 인해 높은 동시성 처리가 가능하며 안정적이다. MySQL 스토리지 엔진 중 가장 많이 사용된다고 한다. InnoDB 스토리지 엔진 특징 테이블은 Prim..
MySQL 데드락 관련 링크
2022. 9. 7. 23:31
개발자: 지식 정리/CS 지식: DB
최근 업무 중 발견한 데드락 현상... 관련하여, 참고한 문서 링크들이다. 후에 잃어버리지 않도록 저장! MySQL InnoDB의 Lock 관련 공식 문서 LockType 관련 글 https://dev.mysql.com/doc/refman/8.0/en/innodb-locking.html#innodb-next-key-locks Lock mode (shared lock(S lock), exculsive lock(X lock)) 관련 글 https://mariadb.com/kb/en/innodb-lock-modes/ AUTO_INCREMENT Lock Modes 관련 글 https://mariadb.com/kb/en/auto_increment-handling-in-innodb/ 트랜잭션 관련 참고 글 http..
클린 코드/아키텍처 무료 강의 링크
2022. 9. 7. 22:57
개발자: 지식 정리/아키텍처&설계
클린코더스 https://www.youtube.com/playlist?list=PL7pUrjEGbG8ZMPQ-XukPJsFyMeyvtGcnV 클린코더스 강의 - 백명석 www.youtube.com 클린 아키텍처 https://amara.org/videos/0AtjY87egE3m/ko/796487/ Video Subtitling, Captioning and Subtitle Translation Editor & Services - Amara Subtitling Amara is using GoogleAnalytics, Microsoft Clarity and Hubspot as analytic cookies. These cookies allow us to gather data about website visit..
Vim 배우기 - 블로그/강의 링크
2022. 8. 22. 14:43
개발자: 지식 정리/리눅스
Vim 배우기 - 블로그/강의 링크 [링크] [번역] Vim 배우기: 4주 계획 https://medium.com/@jungseobshin/vim-%EB%B0%B0%EC%9A%B0%EB%8A%94-%EB%B2%95-4%EC%A3%BC-%EA%B3%84%ED%9A%8D-77f3f7e263f7 [번역] Vim 정복하기: 4주 계획 이 글은 Peter Jang 님의 블로그 포스트 [How To Learn Vim: A Four Week Plan]을 번역한 것입니다. 번역을 허락해주셔서 감사합니다. 아직도 Vim이 서툰 저에게 도움이 되는 글이네요. medium.com Vim 강의 https://www.youtube.com/watch?v=cY0JxzENBJg 동사와 명사를 활용한 Vim 명령어 사용 요약하면, 당..
깨끗한 코드를 위한 팁 (클린 코드)
2022. 7. 17. 04:26
개발자: 지식 정리/아키텍처&설계
클린 코드란 We don't read code, we decode it - Peter Seibel 우리는 코드를 읽는 것이 아니라 해석한다. 따라서 코드 해석에 드는 비용을 줄여야 한다. 클린코드에서는 코드를 짜는 것과 읽는 것의 비중이 1:10 정도라고 이야기한다. 따라서, 코드 해석이 쉬우며, 해당 코드의 동작을 직관적으로 예측할 수 있는 코드가 좋은 코드라 할 수 있겠다. 깨끗한 코드를 위한 팁! 1. 함수명은 반드시 동사를 써라! 예를 들면, function userData() {} 라는 함수명은 좋은 이름이 아니다. function loadUserData() {} 라는 함수명이 좋은 이름이다. 이렇게 이름을 짓게 되면, 함수가 너무 많은 역할을 하는 것은 아닌지 알게 된다. 함수는 한 가지만을 ..