본문 바로가기

분류 전체보기325

Docker 네트워크 요청의 출발지와 목적지 및 전달과정 Docker 네트워크 요청의 출발지와 목적지 및 전달과정  만약 도커 컨테이너에서외부 요청이 목적지에 도착 전 거친 네트워크 인터페이스의 IP와 포트를 출발지(src)로 표시하게 작성었다면,curl 명령어로 구동중인 호스트의 가상 인터페이스 IP(192.168.1.10)와 로컬호스트 IP(127.0.0.1)의 60431번 포트에 요청을 보내보면 출발지의 IP가 다르게 표시됨을 확인할 수 있습니다. 일단 위 src IP를 살펴보면  - 172.17.0.1  :  컨테이너 브리지 인터페이스(docker0)의 IP  - 192.168.1.10  :  호스트 인터페이스(eth1)의 IP    - eth1 : 외부 요청을 받아들이는 네트워크 인터페이스 - docker0 : 도커 컨테이너가 사용하는 네트워크 인터페.. 2024. 12. 24.
Docker 볼륨, 바인드 마운트 개념 및 실행 Docker 볼륨, 바인드 마운트 개념    1) 바인드 마운트호스트 디렉터리를 컨테이너 디렉터리에 덮어쓰는 구조 바인드 마운트는 볼륨에 비해 기능이 제한되어있으며, 바인드 마운트를 사용하면 호스트 시스템의 파일 또는 디렉토리가 컨테이너에 마운트 됩니다. 그리고 파일 또는 디렉토리가 호스트 시스템의 전체 또는 상대 경로로 참조됩니다.   docker run -d -v /root/html:/usr/share/nginx/html  -p 8081:80 --restart always --name nginx-bind-mounts nginx  2) 볼륨호스트 디렉터리와 컨테이너 디렉터리를 서로 동기화시키는 구조 비어있는 볼륨을 연결하는 경우 컨테이너 디렉터리에 있는 파일이 보존되나, 동일한 파일이 존재한 상태로 연.. 2024. 12. 23.
Kubernetes 스테이트풀셋(StatefulSet)의 정의 및 사용방법 Kubernetes 스테이트풀셋(StatefulSet)의 정의 및 사용방법 ※ 본 내용은 「컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - 길벗」를 참고하여 작성하였습니다. 쿠버네티스를 사용하다보면 파드가 만들어지는 이름과 순서를 예측해야 할 때가 있습니다.주로 마스터-슬레이브 구조 시스템(Redis, Zookeeper, Cassandra, MongoDB 등)에서 필요합니다. 스테이트풀셋(StatefulSet)은  volumeClaimTemplates기능을 사용해 PVC를 자동으로 생성할 수 있고,각 파드가 순서대로 생성되기 때문에 고정된 이름, 볼륨, 설정 등을 가질 수 있습니다. 아래 오브젝트 스펙을 실행하면 순서대로 파드가 생성됩니다.kubectl apply -f ./nfs-pvc-sts.ya.. 2024. 12. 22.
Kubernetes PV, PVC의 개념 및 볼륨 마운트 Kubernetes PV, PVC의 개념 및 볼륨 마운트 ※ 본 내용은 「컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - 길벗」를 참고하여 작성하였습니다. NFS 볼륨에 PV/PVC를 만들고 파드에 연결하기 도커에서 파일을 저장하는 방식으로 바인드 마운트, 볼륨마운트가 있습니다.마찬가지로 쿠버네티스에서도 파드에서 생성한 내용을 기록, 보관하거나 모든 파드가 동일한 설정을 세팅하기 위해 공유된 볼륨으로부터 공통된 설정을 갖고 올 수 있도록 할 때가 있습니다.이 때 사용할 수 있는 볼륨 스토리지가 다양하게 있는데, 그 중 주로 이야기 되는 것이 PV, PVC입니다.   PV(Persistent Volume, 지속 사용가능한 볼륨) : 볼륨을 사용할 수 있게 준비PVC(Persistent Volume C.. 2024. 12. 21.
Kubernetes LoadBalancer _ On-premise 기반 로드밸런서 (MetalLB), HPA Kubernetes LoadBalancer _ On-premise 기반 로드밸런서 (MetalLB), HPA ※ 본 내용은 「컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - 길벗」를 참고하여 작성하였습니다. 1. LoadBalancer(MetalLB) 쿠버네티스 외부 연결방식 중 노드포트를 통해 노드포트 서비스로 이동하고이를 쿠버네티스의 파드로 보내는 구조는 배우 비효율적입니다. 로드밸런서라는 서비스타입은 매우 간단한 구조로 부하를 분산시킬 수 있습니다.쿠버네티스에서 로드밸런서를 사용하려면 보통 서비스업체를 통해 구현할 수 있습니다.하지만 온프레미스에서도 구성이 가능한데 이를 지원해주는 것이 MetalLB입니다. MetalLB는 기존의 L2 네트워크(ARP/NDP)와 L3 네트워크(BGP)로 로드밸.. 2024. 12. 20.
Kubernetes 서비스의 개념과 인그레스 Kubernetes 서비스의 개념과 인그레스 ※ 본 내용은 「컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - 길벗」를 참고하여 작성하였습니다.  쿠버네티스 사용시에도 외부와 연결이 필요합니다.이 때 활용할 수 있는 방법이 노드포트(Node Port)를 사용하는 것 입니다.노드포트 서비스를 설정하면 모든 워커노드의 특정 포트(노드포트)를 열고 여기로 오는 모든 요청을 노드포트 서비스로 전달합니다. 그리고 노드포트 서비스는 해당 업무를 처리할 수 있는 파드로 요청을 전달합니다. 노드포트 서비스는 포트를 중복 사용할 수 없어 1개의 노드포트에 1개의 디플로이먼트만 적용됩니다.(여러 개의 디플로이먼트가 있을 경우? → 인그레스 사용)  노드포트 서비스로 외부에서 접속노드포트는 아래와 같은 yaml 파일을 .. 2024. 12. 19.
Kubernetes 노드/파드 운영을 위한 명령어(생성, 변경, 삭제, replica, cordon, drain) Kubernetes 노드/파드 운영을 위한 명령어(생성, 변경, 삭, replica, cordon, drain) Kubernetes 운영을 위한 기본 명령어 (1) Master node에서 노드 상태 확인kubectl get nodes  (2)-1 설치된 쿠버네티스 파드구성요소 확인  *옵션  --all-namespaces : 모든 네임스페이스를 출력  -o wide : -o는 output, wide는 출력정보를 더 많이 표시kubectl get pod (2)-2 설치된 쿠버네티스 파드구성요소 확인 : 컬럼 및 값 커스터마이징  *-o=custom-columns=:kubectl get pods -o=custom-columns=NAME:.metadata.name,IP:.status.podIP,STATUS:.. 2024. 12. 18.
Kubernetes 설치 및 설정 Code 분석, Pod 생명주기, 기본 명령어 Kubernetes 설치 및 설정 Code 분석, Pod 생명주기, 기본 명령어 ※ 「컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 - 길벗」를 참고하여 작성하였습니다. 쿠버네티스의 구조 쿠버네티스 구조에 대한 자세한 설명과 아키텍쳐는 *링크 를 통해 확인할 수 있다.  쿠버네티스 설치를 직접 VirtualBox를 복제해서 하나하나 생성하려다보니 생각보다 복잡하더군요..그래서 이전에 하던 방식은 잡시 접어두고다양한 실습을 위해 Vagrant로 서버를 셋팅해두고 이를 활용하는 방식을 사용했습니다. 아래는 Vagrant를 활용해서 셋팅했던 코드 중 일부입니다.이 코드들은 쿠버네티스를 설치하는 데 주요한 코드들로 볼 수도 있습니다.  파드의 생명주기(Lifecycle of a Pod)     P88) co.. 2024. 12. 17.
Kubernetes(쿠버네티스, k8s)의 구조와 기본 용어 (feat. 한 권으로 배우는 도커&쿠버네티스, 한빛미디어) ※ 본 내용은 「한 권으로 배우는 도커&쿠버네티스 - 한빛미디어」를 참고하여 작성하였습니다. Kubernetes(쿠버네티스, k8s)의 구조와 기본 용어 (feat. 한 권으로 배우는 도커&쿠버네티스, 한빛미디어) 쿠버네티스를 익히면서 처음 시작할 때 용어가 너무 많고 생소해서 시작하는데 어려움이 많았습니다. 그래서 한 번은 정리하고 가는게 좋을 것 같더라구요. 쿠버네티스는 Site에 정리가 매우 잘 되어있는 편입니다.아래 링크는 쿠버네티스 공식 docs로, 한글로 설명이 되어있습니다. 물론 용어들도 확인이 가능합니다. https://kubernetes.io/ko/ 운영 수준의 컨테이너 오케스트레이션K8s라고도 알려진 쿠버네티스는 컨테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스.. 2024. 12. 16.
도커 네트워크 종류(bridge, host, container, none)와 통신상태 확인 (port, ping) 방법 도커 네트워크 종류(bridge, host, container, none)와 통신상태 확인 (port, ping) 방법  지난번 포스팅(아래 참고)에서 도커 네트워크에 대한 설명이 부족한 듯해서도커 네트워크에 대해서 조금 더 적어보려 합니다. 도커 네트워크와 컨테이너 포트 포워딩 기본 개념Docker Container Port-Forwarding  도커 컨테이너 실행시명령어는 주로 아래와 같은 form으로 사용중이었습니다.docker run --name nginx -p 8000:80 -d nginx 그런데 문제는 네트워크 지식이 부족해서인지항상 포ggommappooh.tistory.com  도커 네트워크는  - 브릿지 모드(default) - 호스트 모드 - 컨테이너 모드로 구분되며 보통은 브릿지 모드를.. 2024. 12. 15.
반응형