728x90

kubernetes 46

Kubernetes 기초 - Service(2)

서비스 개념서비스 타입서비스 사용하기            ←  오늘 볼 내용헤드리스 서비스kube-proxy3. 서비스 사용하기ClusterIPselector의 label이 동일한 파드들의 그룹으로 묶어서 단일 진입점(Virtual IP)을 생성클러스텉 내부에서만 사용 가능type 생략 시 default 값으로 10.96.0.0/12 범위에서 할당됨 아래의 ClusterIP 서비스 yaml 구문에서 type과 clusterIP는 생략해도 상관없다.쿠버네티스는 기본적으로 type을 명시하지 않으면 ClusterIP로 생성하고 clusterIP를 지정하지 않으면 10.96.0.0/12 대역에서 랜덤으로 할당하여 생성한다. clusterip-nginx.yaml# clusterip-nginx.yamlapiVer..

Kubernetes 2023.12.19

Kubernetes 기초 - Service(1)

서비스 개념           ←  오늘 볼 내용서비스 타입           ←  오늘 볼 내용서비스 사용하기헤드리스 서비스kube-proxy1. 서비스 개념쿠버네티스에서의 서비스(Service)는 동일한 서비스를 제공하는 파드 그룹에 대한 단일 진입점을 제공하는 추상화다. 예를 들어 app: webui라는 레이블을 가진 파드가 3개의 각 노드에 하나씩 배포되어있다고 가정해보자.쿠버네티스 서비스를 통해 각 파드를 하나로 묶어서 랜덤의 가상의 IP를 생성할 수 있다.가상의 IP는 마치 로드밸런서와 같은 역할로서 3개의 파드를 묶은 단일 진입점이라고 할 수 있다.그래서 가상 IP를 로드밸런서 IP라고도 한다.만약 파드의 replicas가 증가하여 scale out되는 경우도 쿠버네티스는 새로 배포된 파드의..

Kubernetes 2023.12.18

Kubernetes 기초 - Controller(7)

ReplicationControllerReplicaSetDeploymentDaemonSetStatefulSetJobCronJob          ←  오늘 볼 내용7. CronJobCronJob은 쿠버네티스에서 주기적으로 실행되는 작업을 정의하는 리소스다.즉, 시간 기반으로 일정한 주기로 반복되는 작업을 스케줄링하는 데 사용된다.이는 Linux/Unix 시스템에서 사용되는 cron 서비스와 유사한 개념이다. 쉽게 말하자면 사용자가 원하는 시간에  Job 실행을 예약할 수 있도록 지원해주는 것이 CronJob이다.  CronJob Schedule : " 0 3 1 * * "   ←  순서대로 다음과 같다. " 분 시 일 월 요일 "Minutes (from 0 to 59)Hours (from 0 to 23)..

Kubernetes 2023.12.15

Kubernetes 기초 - Controller(6)

ReplicationControllerReplicaSetDeploymentDaemonSetStatefulSetJob         ←  오늘 볼 내용CronJob6. JobJob 컨트롤러는 쿠버네티스에서 일회성 작업을 수행하는데 사용되는 컨트롤러다.주로 한 번 실행되고 완료되면 종료되는 작업에 사용된다.Job은 성공 또는 실패한 작업을 트래킹하고, 성공적으로 완료된 경우에는 파드를 종료한다.  파드는 일련의 프로세스 동작이 마무리가 되면 파드를 종료된다.하지만 쿠버네티스는 기본적으로 파드를 Running 상태로 유지하려고 하는 특성에 의해 파드가 종료되더라도 재시작한다.# 5초 멈췄다가 종료되는 파드kubectl run test --image=centos:7 --command sleep 5  하지만 Jo..

Kubernetes 2023.12.15

Kubernetes 기초 - Controller(5)

ReplicationControllerReplicaSetDeploymentDaemonSetStatefulSet         ←  오늘 볼 내용JobCronJob5. StatefulSetStatefulSet은 쿠버네티스에서 제공하는 컨트롤러 중 하나로, 상태를 가지는 애플리케이션을 관리하는 데 사용된다.즉, Pod의 이름이나 볼륨(스토리지) 등의 상태를 유지해주는 역할을 한다.주로 데이터베이스나 메시지 큐와 같은 서비스에 적합하다. StatefulSet의 특징고유한 식별자 : 각 파드에 고유한 식별자가 할당되어 순차적으로 증가하며 관리됩니다. 이는 파드가 삭제되거나 실패한 경우에도 같은 식별자를 유지하는 데 도움이 됩니다.안정적인 네트워크 식별자 : StatefulSet은 각 파드에 안정적인 DNS 이름..

Kubernetes 2023.12.14

Kubernetes 기초 - Controller(4)

ReplicationControllerReplicaSetDeploymentDaemonSet        ←  오늘 볼 내용StatefulSetJobCronJob4. DaemonSetDaemonSet은 쿠버네티스에서 런타임 환경이나 로그 수집과 같은 특정한 작업을 클러스터의 모든 노드에 분산하여 실행할 때 사용되는 리소스다.각 노드에 하나의 파드가 실행되도록 보장하여 클러스터 전체에서 특정한 서비스나 작업을 유지할 수 있도록 도와준다. DaemonSet이 관리하는 파드는 노드의 상태에 따라 자동으로 생성되거나 삭제되어 노드가 추가되거나 제거될 때 자동으로 조정된다.  DaemonSet의 주요 특징클러스터 전체에 특정한 서비스 제공 : 모든 노드에 특정한 서비스, 데몬, 에이전트 등을 배포하고자 할 때 사용..

Kubernetes 2023.12.14

Kubernetes 기초 - Controller(3)

ReplicationControllerReplicaSetDeployment        ←  오늘 볼 내용DaemonSetStatefulSetJobCronJob3. DeploymentDeployment은 쿠버네티스에서 애플리케이션을 배포하고 관리하기 위한 리소스 오브젝트 중 하나다.주로 파드를 관리하는데 사용되며, 쿠버네티스 클러스터에서 어플리케이션의 업데이트, 롤백, 스케일링 등을 쉽게 처리할 수 있게 해준다.Deployment는 Rolling update를 목적으로 만들어졌으며 이전에 본 ReplicaSet의 상위 오브젝트다. Rolling update : 파드 인스턴스를 점진적으로 새로운 것으로 업데이트하여 디플로이먼트 업데이트가 서비스 중단 없이 이루어질 수 있도록 해주는 것 Deployment ..

Kubernetes 2023.12.14

Kubernetes 기초 - Controller(2)

ReplicationControllerReplicaSet       ←  오늘 볼 내용DeploymentDaemonSetStatefulSetJobCronJob2. ReplicaSet기능적으로는 이전에 봤던 ReplicationController 와 기능적으로 거의 동일하다.그럼에도 불구하고 ReplicaSet을 사용하는 이유는 더 정교한 LabelSelector의 기능이 있기 때문이다.ReplicationController는 selector를 통해 라벨을 지정했을 때 여러개를 지정하며 AND연산과 같이 모두 동일해야 파드 선택이 가능했다.하지만 ReplicaSet은 matchExpressions를 통해 In, NotIn, Exists, DoesNotExist 등 연산을 사용하여 특정 라벨만이라도 일치하면..

Kubernetes 2023.12.12

Kubernetes 기초 - Controller(1)

ReplicationController      ←  오늘 볼 내용ReplicaSetDeploymentDaemonSetStatefulSetJobCronJob1. ReplicationControllerController란 클러스터 내에서 리소스의 상태를 원하는 상태로 유지하도록 담당하는 엔터티다.쿠버네티스의 컨트롤러들은 여러 종류가 있으며, 각각 특정 리소스 유형을 관리하며 원하는 상태로 유지하도록 설계되어 있다.   ReplicationController요구하는 Pod의 개수를 보장하며 파드 집합의 실행을 항상 한정적으로 유지하는 것을 목표한다.요구하는 Pod의 개수가 부족하면 template을  이용해 Pod를 추가요구하는 Pod 수 보다 많으면 최근에 생성된 Pod를 삭제기본 구성selector : ..

Kubernetes 2023.12.11

Kubernetes 기초 - Namespace

네임스페이스(Namespace)란Namespace 확인Namespace 생성사용할 Namespace switch주의할 점1. Namespace란클러스터 안에서 리소스를 논리적으로 그룹화하는 방법을 제공하는데 사용된다.Namespace를 사용하면 동일한 클러스터 내에서 서로 다른 프로젝트, 팀 또는 환경에서 작업하는 여러 사용자 그룹이 격리된 환경에서 작업할 수 있다. 쿠버네티스는 API를 배우는 것이다.Namespace는 쿠버네티스 API 중 가장 큰 단위이다.실질적인 클러스터는 하나지만 클러스터가 여러개 있는 것처럼 만드는 것이 Namespace의 역할이다.     2. Namespace 확인Namespace를 확인하는 것은 지난 파드 확인하는 것처럼 간단하다.# 현재 Namespace 확인kubect..

Kubernetes 2023.12.11
728x90