전체 글 138

[쿠버네티스] 쿠버네티스 인그레스 (ingress) 소개 및 실습

들어가며: 인그레스(Ingress) 란? 인그레스 생성 들어가며: 쿠버네티스에서 서비스를 외부에 노출시키는 방법은 NodePort와 LoadBalancer 서비스 타입 그리고 Ingress(인그레스) 서비스 컨트롤러가 있습니다. NodePort 및 LoadBalancer 서비스는 OSI Layer 4(TCP/UDP)에서 작동하지만, Ingress 리소스는 OSI Layer 7(HTTP/HTTPS)에서 작동합니다. 쿠버네티스에서 외부에 노출시켜야 할 서비스가 많은 경우 NodePort는 각 서비스마다 전용의 포트를 할당해야 하고 LoadBalancer의 경우 외부 로드밸런서가 각 서비스마다 프로비저닝 되어야 합니다. 그러나 Ingress는 HTTP 요청의 주소를 구분해 하나의 인그레스 리소스를 이용해 각 ..

FQDN & PQDN 이란 ?

FQDN (Fully Qualified Domain Name) 전체 주소 도메인 네임, 절대 도메인 네임 이라고 부르며 호스트 이름과 도메인 이름을 포함한 전체 도메인 이름을 일컫는 용어입니다. 즉, 호스트의 완전한 이름입니다. 위키피디아에서 가져온 사진입니다. 위와 같이 루트 도메인(".") 를 포함해야 하지만, 보통 도트를 생략하여 사용합니다. PQDN(Partially Qualified Domain Name) 부분 주소 도메인 네임 혹은 상대 도메인 네임 이라고 부르며 DNS 루트에 대해 모든 레이블을 포함하지 않습니다. 노드로부터 시작해서 루트에 도달하지 않습니다. 단순히 호스트네임이라고 하며, 전체 주소 도메인 네임의 가장 왼쪽에 위치한 레이블입니다.

[쿠버네티스] 컨테이너 애플리케이션 사용자화 개념 정리

들어가며 이미지 사용자화 환경 변수 사용자화 configMap(컨피그맵)을 이용한 사용자화 시크릿을 이용한 사용자화 들어가며: 컨테이너에 있는 애플리케이션을 몇 가지 기능을 통해 사용자화 할 수 있습니다. 각각의 기능을 나열하고 개념을 알아보도록 하겠습니다. 이미지 사용자화 도커 이미지 작성 시 Dockerfile의 ENTRYPOINT 및 CMD 지시어를 지정하여 애플리케이션을 어떻게 동작할 것인지 지정할 수 있습니다. 컨테이너 이미지를 통해 컨테이너를 실행할 떄 실행할 명령어(프로세스, 애플리케이션) 및 인자(옵션)을 지정할 수 있습니다. 일반적으로 명령어는 실행할 애플리케이션이기 떄문에 그대로 두지만, 인자는 필요에 따라 다른 인자를 옵션 형태로 전달함으로 다른 동작을 하도록 할 수 있습니다. 환경 ..

[쿠버네티스] PV,PVC 리소스 정적 볼륨 프로비저닝

들어가며: NFS 스토리지 구성 NFS 서버 구성 (kube-control1) NFS 클라이언트 구성 (kube-node1,2,3) PV 생성 및 확인 PVC 생성 및 확인 레플리카셋 컨트롤러 생성 및 확인 PV 및 PVC 상세 정보 확인 서비스 생성 및 확인 볼륨 상태 전환 확인 들어가며: PV 리소스는쿠버네티스 클러스터 외부 스토리지와 연결을 담당하는 리소스이며,PVC는PV와 파드를 연결하기 위한 리소스입니다. 정적 볼륨은 PV 및 PVC 리소스를 직접 생성하고 사용하는 방식입니다. PV, PVC 에 대한 설명은 이전 포스팅을 참고하시기 바랍니다. NFS 스토리지 구성 NFS 서버 구성 (kube-control1) 이 작업은 NFS 서버를 구성할 컨트롤플레인 노드 kube-control1 호스트에서 ..

[쿠버네티스] 쿠버네티스 PV / PVC 볼륨 소개

들어가며: PV(PersistentVolume) PVC(PersistentVolumeClaim) 이란? PV 및 PVC 생명주기 프로비저닝 바인딩 사용 회수 끝마치며: 들어가며: emptyDir , hostPath 는 컨트롤러의 템플릿이나 파드에 직접 스토리지 볼륨을 정의해야 했습니다. 이는 몇 가지 문제점이 있습니다. 1. 스토리지에 대한 지식이 있어야 합니다. emptyDir, hostPath 같은 경우 많은 지식이 필요하지 않지만 네트워크 기반 스토리지의 경우 스토리지 자체의 지식이 많이 필요합니다. 2. 볼륨의 생명주기가 컨트롤러 및 파드의 생명주기와 같습니다. 컨트롤러 및 파드를 삭제하면 볼륨도 같이 삭제된다는 문제점이 있을 수 있습니다. PV(PersistentVolume) PVC(Persis..

[쿠버네티스] hostPath 볼륨

들어가며 hostPath 볼륨 생성 hostPath 볼륨에 사용할 노드의 디렉토리 준비 hostPath 볼륨을 사용하는 레플리카셋 생성 hostPath 볼륨을 사용하는 리소스 변경 hostPath 볼륨을 사용하는 리소스 재확인 들어가며: emptyDir 볼륨은 아무 데이터도 없는 빈 디렉토리를 제공하는 볼륨이였고 동일한 파드 내의 컨테이너 간에 데이터를 공유할 때 유용하게 사용할 수 있었습니다. hostPath 볼륨은 파드가 동작하는 쿠버네티스 클러스터의 노드(host)의 로컬 파일시스템의 파일 및 디렉토리를 파드가 사용할 수 있는 볼륨으로 제공해줍니다. 같은 노드에 배치된 파드 및 컨테이너에게 공유 디렉토리를 제공할 목적으로 사용될 수 있지만, 다른 노드에 배치된 파드 및 컨테이너에는 데이터를 공유할 ..

[쿠버네티스] emptyDir 볼륨 / gitRepo / 초기화 컨테이너

들어가며 emptyDir 볼륨 생성 및 확인 gitRepo 볼륨 초기화 컨테이너 들어가며: emptyDir 볼륨은 아무 데이터도 없는 빈 디렉토리를 제공해주는 볼륨입니다. 파드가 생성하는 데이터를 저장할 수 있으며, 동일한 파드 내의 컨테이너 간에 데이터를 공유할 때 유용하게 사용할 수 있습니다. 또한, 빅 데이터와 같은 큰 데이터 셋트를 처리하기 위한 임시 저장소로도 사용 가능 합니다. 최초로 volume이 생성될 때는 volume의 내용이 비어있기 때문에 emptyDir 이라고 부릅니다. Container1이 Web1 역할을 하는 서버이고 Container2가 backend 단을 처리해주는 서버라면 web서버로 받는 특정 파일을 mount가 된 volume에 저장을 해놓고 backend의 Contai..

[쿠버네티스] 쿠버네티스의 볼륨이란?

들어가며: 볼륨 소개 볼륨 종류 끝마치며: 들어가며: 볼륨 소개 파드의 컨테이너는 이미지로부터 파일 시스템을 제공받습니다. 그러나 파드가 종료되면 파드 내에 변경된 데이터(파일)는 더 이상 사용할 수 없습니다. 컨트롤러에 의해 새로운 파드가 생성이 되면 이미지로부터 새로운 파일 시스템을 제공받습니다. 즉, 컨테이너는 기본적으로 데이터를 유지하지 않으며, 이런 형태를 상태가 없다(Stateless)라고 합니다. 쿠버네티스의 파드는 새로 생성된 데이터를 보존하기 위해 외부 저장소 볼륨을 생성하고, 이런 볼륨을 컨테이너에 마운트 해서 사용합니다. 볼륨은 여러 파드에서 동시에 접근이 가능합니다. 기본적으로 볼륨의 라이프사이클은 파드의 라이프사이클과 같습니다. 파드가 생성되면 볼륨도 같이 생성되고, 파드가 삭제되..

[쿠버네티스] Kubernetes 오브젝트를 이용한 Apache(httpd) 웹서비스 구성

들어가며 replicaSet(Apache[httpd]) 오브젝트 구성 Service(LoadBalancer) 오브젝트 구성 동작 확인 들어가며: ReplicaSet 과 Service 를 먼저 명령형 오브젝트를 이용하여 클러스터를 구성하고 loadbalancer 서비스를 이용하여 웹서비스를 구성해보는 포스트입니다. replicaSet(Apache[httpd]) 오브젝트 구성 vagrant@kube-control1:~/q3$ cat myapp-rs.yaml apiVersion: apps/v1 kind: ReplicaSet metadata: name: myapp-rs spec: replicas: 3 selector: matchLabels: app: myapp-rs template: metadata: label..

도커를 이용한 워드프레스 웹 서비스 구축

들어가며 이미지설치 도커볼륨생성 mysql 컨테이너 생성 mysql 컨테이너 생성 및 확인 wordpress 컨테이너 생성 :8080 들어가서 확인 끝마치며 들어가며 실습에 필요한 가상환경을 구축하기 위해 vagrant 설치와 docker 설치가 필요합니다. 위의 2개의 링크를 확인하여 설치하시고 다음 내용을 참고해주시길 바랍니다. 도커 명령어, 환경변수 등을 살펴보도록 하겠습니다. 이미지 설치 이 과정은 스킵해도 문제는 없습니다. 하지만, 오프라인에서 사용할 일이 있다면 이미지를 미리 설치해야 합니다. mysql 은 현재 시점에 8버전이 최신버전이지만 많은 유저들은 안정성을 고려하여 5.7 버전을 다수 이용합니다. 워드프레스 역시 그와 비슷한 시점의 설치해줍니다. vagrant@kube-control1..