전체 분류 보기 497

[program의 삶] 1. program이 process가 되는 과정

개요 여러분은 program과 process의 차이를 아시나요? program이란? 저장소(HDD, SSD)등에 존재하는 Code들의 덩어리를 말합니다. Process란? Code 덩이가 Memory에 올라가면 Process라고 합니다. 어떻게 Memory 올라가는가? program은 어떻게 memory에 올라가는가가 궁금해질 수 있습니다. "program은 관리를 위해서 여러 section으로 나눠져 있고 운영체제에 의해서 memory에 복사되어 올라갑니다." 결론적으로 program이 process가 되는 과정을 알기 위해서는 program의 section 구조와 각 section이 memory에 어떻게 mapping 되어서 cpu의 관리는 받는지입니다. 그래서 우리는 제일 먼저 program의 se..

[CKA] 28. Pod의 Networking 과 Weave CNI

개요 k8s에서 Pod 간에 networking이 어떻게 구성이 되는지 알아보겠습니다. Pod의 Networking 구성의 핵심 Pod 간의 Networking의 구성은 [CKA] 24. k8s network를 위한 기초에서 배웠던 기술에 Overlay Network 기술을 합치면 완성이 됩니다. [CKA] 24. k8s network를 위한 기초에서는 단일 node안에서 container가 아래의 3개의 기술을 사용하여 통신 가능하다는 것을 배웠습니다. ip link container를 bride에 연결하기 위해서 사용 bridge container을 연결하는 용도 ip route 내부 container 간의 통신 의해서 사용 iptables의 masquerade 외부 통신을 위햇 사용 Overlay ..

Cloud/k8s-CKA 2023.07.20

[CKA] 27. CNI란?

개요 CNI(Container Network Interface)가 무엇인지 알아보겠습니다. CNI 정의 Container 간의 networking을 구현을 어떻게 구현할지를 표준화한 것입니다. CNI의 필요 이유 container들이 networking을 하기 위해서 하기 위해서 필요한 사항이 모두 개별적으로 개발이 된다면 container 들간의 network 통신은 거의 불가능할 것입니다. 그래서 이를 편하게 하기 위해서 공통사항을 표준으로 정리한 것이 CNI입니다. 아래 그림은 각종 오케스트레이션 도구에서 CNI를 어떻게 구현하는지 간단한 절차를 설명 한 것입니다. CNI 동작 방식 CNI를 기반으로 하여 만들어진 Plugin은 container runtime에 의해 호출된 binary 파일의 실행..

Cloud/k8s-CKA 2023.07.16

[DNS] ubuntu 22.04에 DNS서버 구축 하기

개요 DNS 서버를 ubunu 22.04에 구축 해보겠습니다. 설치 tool DNS 서버를 설정하려면 BIND (Berkeley Internet Name Domain)와 같은 DNS 소프트웨어를 설치하고 구성해야 합니다. 설치 sudo apt update sudo apt install bind9 bind9utils bind9-doc 사전 설정 관리하지 않는 domain을 google DNS에 물어보기 위해서 다음과 같을 설정을 하겠습니다. allow-query : 허용 IP 처리 recursion : DNS 실패시 재귀처리 설정 forwarders : DNS 실패시 DNS를 물어볼 다른 DNS Server 설정 dnssec-validation no; 사설 dns와 또 연동시에는 이걸 no로 설정해야 정상..

서버 구축 2023.07.15

[CKA] 26. Domain과 DNS Sever기초

개요 DNS가 무엇인지 Linux에서 DNS가 어떻게 동작하는지 알아보겠습니다. DNS(Domain Name System)? 사람이 기억하기 쉬운 URL 형태의 주소를 컴퓨터가 사용하는 주소인 IP로 변경해 주는 System입니다. 예를 들어 www.google.com의 주소를 142.251.220.4로 변경을 해줍니다. Domain이란? Domain은 website의 주소를 의미합니다. 원칙 적인 구조는 아래와 같습니다. 서브도메인. 도메인명. TLD. www.goole.com. . Root Domain라고 하여 가장 최상단의 Domain입니다. 그러나 생략이 되어 표기가 됩니다. com Top Level Domain(TLD)라고 하여 도메인의 유형을 나타냅니다. "com"은 상업적 목적의 사이트를, ..

Cloud/k8s-CKA 2023.07.15

[CKA] 25. Docker Network 구조

개요 k8s의 container runtime 중 하나인 docker의 network 구성 방식을 알아보겠습니다. Docker의 network 종류 None Network network 통신이 불가능한 container를 생성할 때 사용합니다. 외부 통신 및 container 간 통신이 불가능한 구조입니다. 명령어 $sudo docker run --network none ngnix 구조 Host Network Docker의 'host' 네트워크는 container가 host의 network statck을 직접 사용하도록 합니다. 이는 container가 host와 동일한 network namepsace를 공유하게 되므로, network 격리가 사실상 없어집니다. 단점으로는 container가 host의 ..

Cloud/k8s-CKA 2023.07.10

[linux] netfilter 소개 및 동작 방식

개요 linux의 netfilter가 무엇인지 알아보겠습니다. netfilter란? Netfilter는 리눅스 커널에서 네트워크 패킷을 처리하는 프레임워크입니다 전체 구성도 https://en.wikipedia.org/wiki/Netfilter 에 잘나와 있습니다. netfilter의 동작 구조 5개의 chain과 5개의 table을 사용하여 packet을 제어 합니다. 좀더 풀어서 설명하면 각 chain에 여러개의 tabledmf 순차적으로 적용하여 packet을 제어 하는 것입니다. chain 사용자에게 Hook을 걸수있는 point를 제공하니다. 각 chain에 대한 설명 종류 설명 PREROUTING 이 chain은 패킷이 커널을 통과하기 전, 즉 데이터링크 계층과 네트워크 계층 사이에서 작동합니..