IT/CKA 53

CKA 준비과정 - Networking (6) / Ingress

Ingress는 간단히 말하면, 클러스터 외부와 내부를 연결하는 경로이다. http와 https 경로를 노출하여 외부에서 클러스터 내로 접속할 수 있도록 한다. 강의에서는 온라인 쇼핑몰을 운영하는 회사를 가정한다. 앞서 학습한 대로, 외부에서 서비스로 접근을 할 수 있도록 하기 위해서 NodePort를 생성하고 포트 38080을 할당했다. 이제 외부에서 IP:38080 을 입력하여 서비스에 접속할 수 있다. 트래픽이 늘어나면 파드를 늘리고 부하 분산을 wear-service 서비스에서 처리한다. 외부에서 사용자는 IP:포트 방식을 입력하여 접속하지 않는다. 도메인으로 접속할 수 있도록 DNS 서버를 따로 구성한다. 또한, 38080 포트를 통해 접속하는 것이 아닌 프록시 서버를 통해 일반적으로 접속하게 ..

IT/CKA 2023.07.19

CKA 준비과정 - Networking (5) / DNS

쿠버네[티스는 클러스터를 구성할 때, 클러스터 내 구성요소간 통신할 수 있도록 하는 default DNS 서버를 배포한다. 쿠버네티스를 수동으로 설정하게 되면 이 DNS 서버를 직접 배포할 수도 있다. 모든 파드 및 서비스가 각자의 IP 주소를 가지고 서로 통신할 수 있다고 가정한다. 위 그림은 이전에 학습했던 내용과 같다. web 서버에 접근하기 위해서 web 서비스를 생성하고, 다른 파드들은 서비스를 통해 web서버에 접근할 수 있다. 이 때, 서비스가 생성되면 kube DNS 서버는 서비스의 이름과 IP 주소를 기록한다. 이를 통해 각 파드들은 서비스명으로도 접근이 가능하다. 이때 접근할 수 있는 조건이 있다. - 같은 Namespace 내 라면 서비스 이름을 통해 접근 가능 - 다른 Namespa..

IT/CKA 2023.07.17

CKA 준비과정 - Networking (4) / Service Networking

앞서 파드 네트워킹에 대해 학습했다. 노드 안에서 네트워크를 어떻게 구성하는지와, IP 주소를 할당받는지 등 파드가 서로 통신할 수 있는 네트워크를 구성하는 과정에 대해 알아보았다. 각 파드는 IP를 할당받게 되고, IP 또는 서비스 이름을 통해서 통신할 수 있다. 다만, 파드와 파드는 직접적으로 소통할 수 있도록 구성하는 경우는 거의 없다. 별도의 서비스를 생성하여 통신을 구성하게 되는데, 위의 그림에서는 주황색 삼각형 서비스를 생성하고 해당 서비스에 IP와 서비스 이름을 부여하였다. 다른 파드들은 이 서비스를 통해서 10.244.1.3 파드에 접속할 수 있게 된다. 다만, 클러스터 외부에서는 접속할 수 없다. 이러한 역할을 하는 서비스를 Cluster IP 라고 부른다. 반면, 외부에서도 접속할 수 ..

IT/CKA 2023.07.14

CKA 준비과정 - Networking (3) / 컨테이너 네트워크

도커는 컨테이너 실행 시 네트워크 옵션을 선택할 수 있다. none : 네트워크 연결 없이 실행 host : host의 네트워크에 연결한다. 호스트의 80포트를 점유하고 사용하면, 다른 프로세스는 80포트를 사용할 수 없다. bridge : 컨테이너 private network를 생성하고, 해당 네트워크 내 사설 IP를 할당받아 사용한다. 도커 설치시, 기본적으로 기본 bridge가 생성된다. 도커에서는 bridge로 보이지만, 호스트에서는 docker0 란 이름으로 확인된다. bridge는 도커 내에서 스위치의 역할을 담당한다. 따라서 컨테이너가 생성되면 컨테이너와 연결된다. 브릿지와 컨테이너를 연결하는 방법은 앞서 리눅스 ns 간 연결하는 방법와 동일하다. 도커는 컨테이너를 생성하면 브릿지와 연결하는..

IT/CKA 2023.07.11

CKA 준비과정 - Networking (2) / DNS, Network Namespaces

DNS 기초를 살펴본다 A 서버와 B 서버가 있고 B 서버는 DB 서버라고 가정한다. 이 때, A는 B를 찾을 때 IP 주소가 아닌 호스트명을 입력하여 연결할 수 있도록 할 때, hosts 설정을 통해 진행할 수 있다. hosts 파일에서, 192.168.1.11 ip에 대해 db라고 설정한 뒤, ping db 명령어를 입력하면 자동으로 192.168.1.11 에 연결을 시도하는 것을 알 수 있다. 이러한 연결 방식은 Name Resolution 이라고 한다. 이런 주소책 기록 방식은 소규모 네트워크에선 문제가 없지만 역시 대규모 네트워크에서는 일일히 hosts 파일을 통해 도메인을 관리할 수는 없다. 따라서 사용하는 것이 DNS 이다. DNS 서버는 도메인 주소를 가지는 서버이다. 다른 서버들은 DNS..

IT/CKA 2023.07.09

CKA 준비과정 - Networking (1) / 스위칭, 라우팅

쿠버네티스의 Networking 구조를 알아보기 전, 리눅스에서의 네트워킹에 대해 학습한다. Switching, Routing, Gateway 와 같은 네트워크 개념과 DNS 등에 대해 빠르게 짚고 넘어간다. 위와 같은 상황에서, A와 B에게 트래픽을 보내기 위해서는 어떤 과정을 거쳐야 하는지 알아본다. 1. A와 B가 연결되기 위해 스위치는 두 시스템을 포함하는 네트워크를 생성한다. 2. A와 B는 각각 연결하기 위한 인터페이스를 생성한다. ip link 명령어를 통해 인터페이스 확인 (eth0) 3. 인터페이스에 IP 주소를 할당한다. (ip addr) 4. 스위치를 통해 생성된 네트워크의 정보를 가지고 통신을 시작한다. 이것은 두 호스트 간에 통신할때의 케이스로, 네트워크 간 통신을 할 때를 알아보..

IT/CKA 2023.07.08

CKA 준비과정 - Storage (3) / Storage Class

이전 학습에서 PVC, PV에 대해 학습했다. PV를 생성하기 위해서는 물리적인 디스크 저장소가 생성되는 것이 먼저이다. App 이 저장소를 요구하게 되면, 가장 먼저 물리 디스크가 프로비저닝 되어야 하고 그 다음 PV 정의파일 을 통해 파드에 할당하여 App 이 사용할 수 있게끔 해야한다. 이렇게 Storage 를 확보하고 PV 정의 파일을 생성하는 과정을 정적 프로비저닝(Static Provisioning) 이라고 한다. App이 용량을 요구할 때, 자동으로 볼륨이 프로비저닝 되도록 돕는 것이 Storage Class 이다. 강의의 예시에서는 PV를 GCP(구글 클라우드 플랫폼) 에서 구성하는 것으로 진행한다. PV를 생성하기 전, 구글 클라우드에서 디스크 리소스를 생성한다. 디스크 생성 후, PV를..

IT/CKA 2023.07.05

CKA 준비과정 - Storage (2) / CSI, Volume

CSI - Container Storage Interface 컨테이너 저장소 인터페이스는 쿠버네티스가 현재 사용하고 있는 런타임 엔진이다. 과거에는 Docker를 통째로 사용했지만, 확장성을 위해 Container Runtime Interface(CRI)를 개발하게 되었다. CRI는 도커와 같은 Container Runtime과 오케스트레이션 솔루션이 어떻게 통신할 지 정의하는 인터페이스이다. CRI가 있음으로써 다른 새로운 컨테이너 런타임 엔진이 도입되어도, 해당 엔진이 CRI 표준을 따른다면 쿠버네티스에 바로 적용을 할 수 있다. Container Networking Interface(CNI) 표준도 있는데, 이를 따르는 네트워킹 솔루션은 쿠버네티스에 바로 적용이 가능하다. 마지막으로, 이번에 학습할..

IT/CKA 2023.07.02

CKA 준비과정 - Storage (1) / Storage 기초

Storage in Docker 쿠버네티스의 스토리지 구조를 알아보기 전, 그 기초를 이루는 도커의 스토리지 구조에 대해 먼저 학습한다. 도커의 스토리지는 2가지로 나뉜다. Storage Drivers / Volume Drivers 강의에서는 Storage Driver를 다룬다. docker를 처음 설치하면 설치된 경로는 /var/lib/docker 에 저장된다. 해당 경로 하위 폴더들에 도커의 모든 데이터가 저장된다. 도커는 이미지를 구축할 때, Layered architecture로 구축한다. dockerfile 내 각 명령어들은 docker이미지에 새 레이어를 생성한다. (FROM Ubuntu = Layer 1) 각 레이어들은 이전 레이어에서의 변경 사항을 저장해나간다. 이러한 구조로 인해, 비슷한..

IT/CKA 2023.07.01

CKA 준비과정 - Security (9) / Network Policy

네트워크 기본, 기초 부분은 알고있으니 지나간다. 네트워크 트래픽은 인, 아웃 트래픽에 대해 규칙을 설정해둬야 제대로 흐를 수 있음을 인지하면 된다. 쿠버네티스의 네트워크 부분의 보안을 알기 위해서 위 사항을 기억해두자. 쿠버네티스의 네트워킹의 전제조건 중 하나는 "어떤 솔루션을 구현하더라도 파드가 서로 통신할 수 있어야 함" 이다. 경로 설정과 같은 추가적인 설정 없이 통신이 가능해야 한다. 모든 파드는 IP, 파드 이름, 서비스 이름을 가지고 클러스터 내에서 노드에 관계없이 파드간에 통신에 애로사항이 없어야 한다. 하지만 위와 같은 상황을 예로 들면, 웹서버와 DB서버가 직접적으로 통신은 가능하지만 보안상의 요구로 인해 직접 통신은 불가하게 구성하길 원하면 어떻게 해야 하는지 알아본다. 이러한 경우에..

IT/CKA 2023.06.27
반응형