728x90
반응형

쿠버네티스 20

[클라우드] 11. Kubernetes Volume 사용하기

Volume Overview 이번 포스팅에서는 Kubernetes에서 Volume의 개념과 사용방벙에 대해서 알아 보도록 하겠 습니다. Kubernetes상에서 Volume의 개략적인 구조는 위의 그림과 같습니다 .Pod의 Volume 파라메터를 사용해서 PVC(persistent Volume Claim)의 값을 정의 하고 이 값을 이용해 스토리지에 매핑된 PV(Persistent Volume)에 PVC를 보내서 Pod에서 사용할 PV를 매핑을 하는 구조 입니다 Volume Type ​그럼 Volume Type에 대해서 알아 봅시다. Volume는 아래와 같은 4가지 Type과 2가지 종류가 존재 합니다. Volume Type의 종류 emptyDirtmp는 Pod 생성시 Pod 안에 존재하는 Volume..

쿠버네티스 2023.01.30

[클라우드] 9. Kubernetes Deamonset 배포 하기

이번 포스팅에서는 Kubernetes에서 Daemonset Object에 대해서 알아 보겠습니다. 유사한 Object로 Replicationset이 있었는데. 이 둘의 차이는 ReplicationSet은 Pod 배포를 스케쥴어에 의해 무작위로 Node에 배포를 합니다. 즉 한개의 Node에 2개 이상의 Pod가 배포될 수도 있고. 어떤 Node에는 배포되지 않을 수도 있습니다. 즉 무작위로 배포를 하고 운영되는 Pod의 숫자를 관리를 하는 Object입니다. ​ 만약에 한개의 Node에 한개의 Pod만 배포하고 싶을 경우에는 Daemonset Object를 사용을 해야 합니다. Daemonsset은 ReplicationSet과 달리 스케쥴러를 거치지 않고 직접 배포를 합니다. 스케줄러를 거치지 않기에 한..

쿠버네티스 2022.12.17

[클라우드] 8. Kubernetes Prob의 종류와 Resource 할당

앞에서 살펴봤던 Pod, Service, Deployment, replacaset을 다시 한번 정리를 해보면 Kubernetes에서 서비스를 위한 가장 작은 단위는 Pod 입니다 이 Pod에는 컨테이너가 들어가고 컨테이너 안에서 어플리케이션이 구동이 되어 서비스 요청을 처리를해 줍니다. Pod간의 통신은 Service라는 객체를 통해 통신을 하게 되고, Deployment 객체는 배포된 Pod들을 특정한 상태로 관리를 하는 객체로 생각을 하면 될것 같습니다. ​ Pod배포가되 되고 나서 장애가 나서 신규 Pod를 생성될때나 다음 경우를 보면 아래의 문제점이 존재 합니다. 첫번째 문제는 Pod가 신규로 생성이 되면 Kubernetes는 Pod상태가 Run상태가 되면 바로 트래픽을 보내게 됩니다. 보통은 P..

쿠버네티스 2022.09.18

[클라우드] 7. Deployment strategies

kubernetes 환경에서 애플리케이션의 업데이트를 위한 방법에는 여러가지가 있습니다. 실제 Kubernetes 환경에서의 배포는 CI/CD와 연계를 해서 배포를 합니다. 배포 전략에는 아래와 같이 4가지가 있습니다. Recreate 첫번째 방식으로 Recreate라는 방식이 있습니다. 기존 버전의 Pod를 삭제를 하고 업데이트된 Pod를 배포하는 방식 입니다. 위의 그림에서 상단 왼쪽에서 부터 보면 우선 기존의 V1 Pod를 삭제를 하고 V2 Pod를 생성하는 방식 입니다. 이 방식은 V1 Pod삭제 후 V2 Pod 생성시까지 서비스 다운타임이 발생을 합니다. ​ 비용이 적게 들고 주로 개발 시스템인 경우에 이 방식을 취하는것을 추천 합니다. ​ 그럼 Yaml 파일을 만들어서 V1 Pod를 배포를 하..

쿠버네티스 2022.09.13

[클라우드] 6. Kubernetes Service 배포

Kubernetes에서 배포되는 또 하나의 Object로 Service라는 Object가 있습니다. 이 Service객체의 역활은 일종의 Gateway와 같은 역활을 하는데요. 앞서 언급했듯이 실제로 어플리케이션이 컨테이너 안에서 실행이 되고 이런 컨테이너를 담고 있는 Object가 Pod입니다 이 Pod는 개별적으로 IP를 갖게 되는데요. 문제는 Pod의 IP를 외부의 Client에게 노출할 경우 장애로 인해 Pod가 새로 생길경우에는 IP가 변경이 되게 됩니다. ​ ​ 이 경우에 외부에서 해당 Pod로 서비스를 요청을할 경우 예전 IP로 요청을 하기 때문에 서비스 장애가 발생 합니다. 해서 Service라는 Object를 만들고 Service Object의 IP를 외부에 노출을 하고 모든 서비스 요청..

쿠버네티스 2022.09.03

[클라우드] 5. Kubernetes Deployment 배포

Kubernetes에서 상위 Object인 Deployment에 대해서 알아 보도록 하겠습니다. Deployment 객체는 Replicaset이나 Pod보다 상위 객체 입니다. 즉 다시 말해서 Deployment를 통해 원하는 객체를 모두 생성이 가능 합니다. 그리고 Deployment객체를 통해 어플리케이션의 업데이트나 롤백이 가능하게 해 줍니다. ​ 그럼 Deployment 객체를 생성하고 배포를 해봅시다. 그림에서 보듯이 Deployment 안에는 Replicaset과 Pod객체를 포함을 하고 있습니다. 위의 그림은 Replicaset은 4개의 Pod로 유지하고 Level값은 my-nginx로 대상 Pod를 정의 하고 있고 Container부분에서 세부 Spec을 정의를 하고 있습니다. ​ 쿠버네티..

쿠버네티스 2022.08.31

[클라우드] 4. Kubernetes Replicaset 배포

kubernetes 클러스터에서 Pod를 관리 하는 컨트롤러로 Deplotment와 Replcaset이라는 컨트롤러가 있습니다. 그중에 먼저 Rplicaset에 대해서 살펴 봅시다. ​ Replicaset은 Replica controller의 개선된 버전으로 주요 역활은 아래와 같습니다. Label값을 이용해 관리할 대상 Pod를 선택 선택된 Pod들의 운영 Pod수량 조절 ​ 예를 들면 Cluster내의 수십개의 Pod중에 Label selector값을 이용해서 대상 Pod를 선택한 후에 지속적인 모니터링을 하면서 .Pod에 장애가 발생시 신규 Pod를 생성하고 장애 발생한 Pod를 삭제를 하면서 서비스를 유지해 주는 기능을 합니다. ​ 그럼 test디렉토리 하위에 replcaset 디렉토리를 만들고 ..

쿠버네티스 2022.08.28

[클라우드] 3.Kuberdnetes Pod 배포하기

Kubernetes에서 배포 가능한 객체(Obejct )는 여러가지가 있지만 그중 최소 단위는 Pod 입니다. 이 Pod는 개별적인 IP를 가지고 Pod내부에는 그림과 같이 한개의 컨테이너나 여러개의 컨네티어와 볼륨 등으로 구성할 수 있습니다. 권고 사항은 한개의 Pod에 한개의 컨테이너를 구성하는게 권고 사항입니다. 그 이유는 MSA(Micro Service Architecture)로써 Pod에 여러개의 컨테이너가 존재를 하면 모니터링을 통한 프로세스 단위의 로그 수집이나 모니터링 장애 처리등이 어렵게 되어서 입니다. ​ Pod내의 컨테이너들은 모두 같은 IP를 보유하고 있습니다. Pod들은 Kubernetes 클러스터내에서 상황에 따라 Scale in/out이 가능하고, 장애 발생시 신규 Pod를 자..

쿠버네티스 2022.08.28

[클라우드] 2. Kubernetes namespace

이번 포스팅에서는 Kubernetes에서 가상 클러스터 기능인 Namespace에 대해서 포스팅을 해보겠습니다. 위의 그림에서 보면, 서로 같은 색깔의 Pod들은 같은 Namespace에 존재를 하게 됩니다. 하나의 node안에서 namespce를 이용해 여러개의 클러스터를 만들고. 각 Node간에 같은 namespace끼리는 통신이 되는, 즉 가상의 cluster의 기능을 제공 합니다. ​ 즉 가상의 클러스터로 분류가 가능하게 만들어 주는것이 Namespace 입니다 그럼 Namespace를 어떻게 생성하고 생성된 Namespace에 어떻게 Pod를 배포를 하는지 한번 알아 보겠 습니다. 우선 Kubernetes를 설치를 하고 나면 아래와 같이 기본 Napespace가 생성이 됩니다. 설치방법은 이전 ..

쿠버네티스 2022.08.27

[클라우드] 1. 쿠버네티스 설치

이번 포스팅에서는 클라우드 자동화 도구인 쿠버네티스의 설치 절차에 관해 포스팅을해 보겠 습니다. OS는 Ubuntu 20.04 기준으로 진행을 합니다. 쿠버네티스는 위의 그림처럼 인프라를 자동 구성 및 관리 그리고 배포와 장애복구까지 해주는 툴입니다. 크게 Master Node와 Worker Node로 분류가 되고, Master Node는 위의 그림 처럼 4가자로 구성이 됩니다. API Server Scheduler Controller-Manager etcd 그리고 Worker Node들은 크게 4가지로 구성이 됩니다. Pod Docker Kubelet Kube-proxy 세부 내용과 작동 방식은 추후 포스팅에 게시 하도록 하고, 이번 포스팅에서는 설치 기준으로 포스팅을 하겠습니다. 우선 실습 환경을 보..

쿠버네티스 2022.08.27
728x90