본문 바로가기

분류 전체보기

(44)
Demo를 이렇게 할 수도 있구나 안녕하세요. 진또배기입니다. 저는 한 외국계 IT 기업에서 System engineer 업무를 수행하고 있습니다. 업무를 수행하면서 고객사에게 저희 회사의 기술을 시연하거나, Demo를 해야할 때가 많은데요. 고객사의 실무자가 아닌, IT에 대해서 잘 모르시는 고객사의 구매 그룹 차장, 경영진에게 기술을 시연할때마다, 기술을 이해시키는 것이 어려워서 늘 난관을 거칩니다. (예를 들면, VMware vSphere를 말하는데, 고객님은 VMware vs Phere인줄 아시더라구요ㅠㅠ) 이럴 경우, 이해를 돕기 위해 Demo를 통해서 눈으로 확인하고, 저희 회사의 기술과 목표, 효과에 대해 설명하는데요. 저 같은 경우에는 늘 VM몇개를 띄워서 VM들이 잘 동작하는지, DB튜닝이 잘 되는지, 복제가 잘 되는지 ..
CUDA란 무엇인가 안녕하세요. 진또배기입니다. 오늘은 그래픽 처리 장치(GPU)에서 사용하는 CUDA에 대해 알아보겠습니다. CUDA의 사전적의미는 CUDA("Compute Unified Device Architecture", 쿠다)는 그래픽 처리 장치(GPU)에서 수행하는 (병렬 처리) 알고리즘을 C 프로그래밍 언어를 비롯한 산업 표준 언어를 사용하여 작성할 수 있도록 하는 GPGPU 기술 입니다. CUDA를 사용하는 이유는 매우 간단한데, "많은 양의 연산을 동시에 처리하기 위함"입니다. GPU로 대규모 연산, 딥러닝을 돌리기 위해서 사용하는 프로그램이 CUDA입니다. CUDA는 GPU 제조회사로 유명한 'NVIDIA' 회사용 프로그램입다. (GPU가 NVIDIA 외 다른 회사라면 다른 프로그램을 사용해야 합니다.) ..
DHCP 안녕하세요. 진또배기입니다. 오늘은 DHCP에 대해서 알아보는 시간을 갖도록 하겠습니다. DHCP(Dynamic Host Configuration Protocol)에 대한 기술적 설명: ​ DHCP는 네트워크에서 동적으로 IP 주소를 할당하고 관련 설정 정보를 제공하는 프로토콜로, 이를 통해 네트워크 디바이스가 쉽게 네트워크에 참여하고 통신할 수 있습니다. ​ 1. IP 주소 할당 방식: DHCP는 동적 IP 주소 할당 방식을 사용합니다. 이는 사용자나 디바이스가 네트워크에 연결될 때 DHCP 서버가 자동으로 유효한 IP 주소를 부여합니다. 이로써 사용자는 수동으로 IP 주소를 설정하거나 변경할 필요가 없어지며, 편리함이 증가합니다. ​ 2. 고정 IP와 동적 IP의 차이: - 고정 IP: 특정한 컴퓨터..
세계 2차대전의 해결 열쇠 "에니그마"에 대한 재미있는 이야기 안녕하세요. 진또배기입니다. 오늘날 컴퓨터가 개발될 수 있었던 단서를 제공한 "에니그마"에 대해서 알아보겠습니다. 1. 역사적 배경 에니그마 개발의 배경은 1939년 발발했던 세계 2차대전으로 거슬러 올라갑니다. 독일 나치군의 공격을 막아내기 위해 연합군은 많은 노력을 했지만 번번이 실패하고야 말았습니다. 그로 인해 막을 수 있는 공격을 제대로 막지 못하고 이길 수 있는 전쟁도 패전하는 일이 발생하면서 나치군에 대한 암호문을 해독하는 것이 매우 중요하다고 판단했습니다. 제2차세계대전이 한창이던 1940년대, 연합군은 독일 나치군의 암호를 해독하기 위해 잉글랜드 천재 수학자 ‘앨런 튜링(Alan Turing)’을 찾게 됩니다. 캠브리지 대학과 프린스턴 대학에서 확률론과 수이론, 수리논리학을 전공한 그는 당..
Kubernetes 정리 9 : Services ClusterIP 1. Cluster IP쿠버네티스에서 Pod는 컨트롤러가 관리하므로 노드를 옮겨다니면서 실행되기도 하고 클러스터 안 Pod의 IP가 변경되기도 한다. 이렇게 동적으로 변하는 Pod에 고정적으로 접근할 때 사용하는 방법이 Service다.서비스(ClusterIP) 생성 시, apiserver → (kubelet) → kube-proxy → iptables 에 rule이 생성됨풀스택 웹 애플리케이션에는 일반적으로 다양한 종류의 파드가 있다. 프론트엔드 웹 서버를 실행하는 파드 세트, 백엔드 웹서버를 실행하는 파드 세트, Redis와 같은 key-value store를 실행하는 파드 세트, MYSQL과 같은 영구 데이터베이스를 실행중인 파드 세트 등이 있을 수 있다. 웹 프론트엔드 서버는 백엔드서버와 통신해야..
Kubernetes 정리 8 : Services 1. ServiceKubermetes Services는 내부의 컴포넌트끼리, 그리고 애플리케이션 외부와 통신할 수 있게 해준다.Kubermetes Services는 애플리케이션을 다른 애플리케이션이나 사용자와 연결하는데 도움이 된다.예를 들어서, 우리 애플리케이션은 다양한 섹션을 실행하는 파드의 그룹들이 있다. 프론트엔드를 유저에게 서빙하는 그룹, 백엔드 프로세스를 실행하는 그룹, 외부 데이터 소스에 연결하는 그룹들이 있을 것이다. 이러한 파드 그룹 간 연결을 가능하게 하는 것이 Service이다. Service를 통해 프론트엔드 애플리케이션을 엔드 유저가 사용할 수 있게 하고, 백엔드와 프론트엔드 POD 간 통신을 돕고, 외부 데이터 소스 연결 설정에 도움을 준다.즉, 서비스는 애플리케이션의 마이크로 ..
언제 딸지 모르겠지만 Kubernetes 자격증 팁!! Yaml 파일을 만들고 편집하는 것은 어려우니 'kubectl run' 커맨드를 활용해 Yaml template을 생성하는데 도움이 될 수 있습니다!아래 커맨드들을 사용해 이전 기출문제들을 시도해보아요~(영어로 문제가 나오니까 번역하지 않고 그대로 씀!) 1) Create an NGINX PODkubectl run nginx --image=nginx 2) Generate POD Manifest YAML file(-o yaml).  (--dry-run) --> 이거는 생성하지 않고 실행되는지만 확인하는 명령어kubectl run nginx --image=nginx --dry-run=client -o yaml 3) Create a deploymentkubectl create deployment --image..
Kubernetes 정리 7 : Deployments 1. Deployment애플리케이션이 담긴 컨테이너는 PoD에 캡슐화된다. 파드를 여러 개 보장해주는 역할로 ReplicaSet을 사용했다.Deployments는 ReplicaSet보다 한단계 더 높은 구조계층에 있다. (Deployment를 사용하면 ReplicaSet이 자동으로 생성된다.)Deployment는 원활한 업그래이드를 위해 롤링 업데이트, 롤백, 중지, 재개하는 기능을 제공한다. 2. Deployment 생성방법1) 다른 컴포넌트들과 마찬가지로 Definition file을 생성한다.Deployment 의 Definition file은 ReplicaSet Definition File에서 'kind'부분만 다르고 동일하다.2) Definition file이 완료되면, 아래 커맨드로 Deplo..
Kubernetes 정리 5 : ReplicaSets 1. Replication ControllerReplication Controller는 클러스터에서 여러 POD의 인스턴스를  실행하는 데 도움이 된다.고가용성(High Availabilty)를 제공한다.POD가 하나만 있어도 Replication Controller가 도움이 된다.Replication Controller는 기존 POD가 죽었을 때, 새로운 POD를 자동으로 불러와서 지정된 수의 POD가 항상 실행 중이라는 것을 항상 보장한다.   Replication Controller가 필요한 또 다른 이유는 부하를 분산하기 위해 여러 POD를 생성해야한다.(로드 밸런싱)유저가 늘어나면 로드밸런싱을 위해 추가 파드를 배포한다.해당 노드의 리소스가 부족해지면 클러스터의 다른 노드에 추가 POD를 배포할..
Kubernetes 정리 4 : Kube Scheduler 1. Kube Scheduler스케쥴러는 어떤 POD가 어떤 노드로 가야하는지 결정하는 것만 한다. 실제로 파드를 노드에 배치하지는 않는다.Kubelet이 파드를 노드에 배치하는 작업을 한다.CPU:10이라는 요구사항이 있을 때, 스케쥴러는 두 단계를 거친다.POD에 가장 적합한 노드를 식별. 여기서 스케쥴러는 이 POD 프로필에 맞지 않는 노드를 필터링을 시도한다.(CPU가 충분치 않은 노드 등)스케줄러는 노드의 순위를 매긴다. 우선순위 함수를 사용해서 0에서 10까지의 점수를 할당한다. 예를 들어, 스케쥴러는 노드의 리소스 양을 계산하고 POD를 잔여 리소스가 더 많은 노드에 배치한다.이외에 커스터마이징하여 자신만의 스케쥴러를 만들 수 있다. 2. kube-scheduler-Manual 설치하기Kub..