분류 전체보기
-
실습과 그림으로 배우는 리눅스 구조 2장 정리운영체제 2022. 10. 30. 10:01
사용자 모드로 구현되는 기능 1. 시스템 콜 사용자 모드에서 동작하는 프로그램은 시스템 콜을 통해서 커널 처리를 호출한다. 여기서 프로그램은 OS 라이브러리, 이외의 라이브러리, 프로세스 고유의 코드 등을 말한다. 시스템 콜의 종류 프로세스 생성, 삭제 메모리 확보, 해제 IPC 네트워크 파일 시스템 접근 유저 모드에서 CPU 모드를 변경하려면 반드시 시스템 콜을 거쳐야 한다. [strace] 커맨드를 통해서 시스템 콜 호출 목록을 조회할 수 있다. [sar] 커맨드를 통해서 프로세스가 CPU를 어떤 비율로 실행하고 있는지 확인할 수 있다. 사용자 모드 = user + nice 커널 모드 = system 2. 프로세스가 커널을 사용하는 과정 1) 프로세스는 보통 사용자 모드로 실행되지만, 커널에 요청을 ..
-
실습과 그림으로 배우는 리눅스 구조 1장 정리운영체제 2022. 10. 29. 11:21
정리 리눅스의 중요한 역할은 디바이스를 조작하는 일이다. 디바이스 드라이버를 통해서만 프로세스가 디바이스를 조작할 수 있다. 리눅스는 디바이스의 종류가 같으면 같은 인터페이스로 조작한다. CPU는 프로세스가 직접 하드웨어에 접근하는 것을 차단한다. CPU에는 사용자 모드와 커널 모드가 있다. 사용자 모드로 처리하는 경우 일반적인 프로세스 처리 커널 모드로 처리하는 경우 디바이스 드라이버에 접근하는 경우 프로세스 관리 시스템 프로세스 스케줄링 메모리 관리 시스템 프로세스가 커널 모드의 기능을 사용하기 위해서는 시스템 콜을 통해 커널에 요청을 한다. 커널은 CPU, 메모리 등의 자원을 관리하며, 각 프로세스에 적절히 분배한다. 프로세스 스케줄러는 CPU 자원을 관리한다. 메모리 관리 시스템은 메모리 자원을 ..
-
Cert-manager와 Traefik IngressRoute을 이용한 nginx https 배포K8S 2022. 10. 25. 22:49
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 개요 IngressRoute를 이용해서 nginx를 배포한다. cert-manager를 통해 인증서를 발급하고 https를 사용한다. 구성 1. loadbalancer를 사용할 수 없는 환경인 경우, traefik service를 nodeport로 배포해서 ingressroute를 사용한다. 2. lb를 사용할 수 있다면, traefik service를 loadbalancer로 만들어 ingressroute를 사용한다. 1. NodePort를 사용하는 경우 1) helm을 이용해서 traefik chart를 설치한다. helm repo add traefik https://helm.traefik.io/traefik he..
-
Ingress traefik을 이용한 nginx http 배포K8S 2022. 10. 25. 21:00
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 개요 ingress를 사용하기 위해 nginx-controller 대신 traefik을 사용한다. nginx를 traefik ingress를 통해서 배포한다. ingress는 http로 배포한다. 다음 포스팅에서 https로 배포할 것이다. 구성 1. loadbalancer를 사용할 수 없는 환경인 경우, traefik service를 nodeport로 배포해서 ingress를 사용한다. 2. lb를 사용할 수 있다면, traefik service를 loadbalancer로 사용한다. 이외에도 여기서는 다루지 않지만, traefik pod를 hostnetwork로 사용해서 배포할 수 있을 것이다. 1. NodePort..
-
Helm 자주 사용하는 커맨드 정리메모 및 기타 2022. 9. 20. 15:16
helm 3 설치하기 curl https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 > get_helm.sh chmod 700 get_helm.sh ./get_helm.sh helm repo 추가하기 helm repo add [repo 이름] [repo url] ex) helm repo add traefik https://helm.traefik.io/traefik repo update하기 helm repo update 압축 풀린 helm repo 다운 받기 helm pull [repo 이름]/[repo에서 다운 받을 패키지명]--untar ex) helm pull traefik/traefik --untar helm chart 설치하기..
-
Validation webhook + k8s certificate 갱신 문제 Trouble shootingTrouble Shooting 2022. 9. 18. 12:18
문제 상황 평소처럼 회사 k8s cluster 환경에서 operator 수정 작업을 하고 있었다. (회사 k8s cluster 환경에는 제품을 실행시키기 위해 필요한 모듈들이 모두 깔려 있다) docker image 빌드 후, 돌아가고 있는 deployment의 tag를 변경해서 바꾸어주는 방식으로 테스트를 하고 있었는데, 그러던 어느 날, deployment의 image tag를 변경해도 pod가 생성되지 않는 문제가 생겼다. 정확하게 말하면, replicas가 새로 생성되지 않았고, deployment를 지웠다가 새로 생성해도 마찬가지였다. 기존에 있던 pod를 삭제해도, 새로운 pod가 생성되지 않는 혼란스러운 상황이었다. describe deploy operator를 해도 error는 확인할 수 ..
-
Keycloak을 이용한 K8S 사용자 분리K8S 2022. 9. 4. 03:02
틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 이번 포스팅은 kubernetes korea group에서 진행한 [keycloak을 이용한 kubernetes 사용자 분리 방법]의 내용을 바탕으로 정리했다. 우선 keycloak이란 IAM 오픈소스로 다음과 같은 기능들을 제공한다. SSO OpenID, OAuth 2.0, SAML 2.0 LDAP, AD keycloak을 이용해서 사용자를 분리하는 방법 KeyCloak을 이용한 OIDC Flow K8S에서 keycloak을 Identity Provider로 사용함으로써 OpenID connect를 사용할 수 있다. 1. 유저는 keycloak에게 요청을 보내 keycloak이 발급한 token을 받아온다. 2. 유..
-
분산 키-값 저장소 설계시스템 설계 2022. 8. 30. 23:27
[가상 면접 사례로 배우는 대규모 시스템 설계]를 읽고 작성하는 포스트입니다. 틀린 내용이 있을 수도 있습니다! 틀린 내용이 있다면 댓글로 달아주시면 감사하겠습니다! 이번 챕터에서는 키-값 저장소 설계에 대해서 공부한 내용을 정리했다. 키 값 저장소란? 키 값 저장소는 비 관계형 데이터베이스로 키-값 데이터 쌍을 저장하며, 내부의 데이터는 키를 통해서만 접근할 수 있기 때문에 키를 고유 식별자로 가져야 한다. 키는 일반 텍스트 일수도 있고, 해시 값일 수도 있다. 키는 성능상의 이유로 짧을수록 좋으며, 값은 문자열, 객체, 리스트 등 어떤 값도 가능하다. 대표적인 키 값 저장소로 다이나모 DB, Memcached, Redis 등이 있다. 어떠한 특징을 갖는 키-값 저장소를 살펴볼 것인가? 해당 챕터에서는..