쿠버네티스란? 쿠버네티스는 도커와 같은 컨테이너를 관리하기 위한 도구이다. > 도커의 컨테이너 도커는 가상화 환경이 아닌, 컨테이너 환경으로 하이퍼 바이저를 제외하기에 높은 효율성 즉, 가볍기에 한 운영체제 환경에 여러개의 컨테이너 애플리케이션을 둘 수 있다. 쿠버
쿠버네티스는 구역을 나누는 Namespace라는 단위로 이루어진다.우리가 직접 생성했던 nginx와 chk-hn와 같은 부분은 default 네임스페이스 공간에 있고, 나머지 기본적인 쿠버네티스의 구성들은 kube-system의 네임스페이스 공간에 있다.실제로 get
파드만 배포된 경우\-> 큰일났다..GG디플로이먼트 형태로 배포된 파드라면?\-> 괜찮아! 디플로이먼트는 파드를 감싸고 있는 객체니까, 하나쯤 지워져도 다시 만들면 돼! 죽으면 죽는거지집에 있는 일회용 우산같은 느낌(잃어버리거나 부서지거나 하면 그냥 하나 사면되지 뭐)
Docker는 컨테이너 런타임을 포함한 종합적인 컨테이너 플랫폼으로, 컨테이너 생성, 관리, 배포, 저장소 관리 등의 기능을 통합적으로 제공한다.containerd는 Docker에서 분리된 컨테이너 런타임이다.Docker의 핵심 컴포넌트 중 하나이며, 컨테이너 생애주기
요소들이 상태를 가지고 있는 것을 오브젝트라고 한다.사실 여기서 kubelet은 상태를 가지고 있다고 볼 수 없다.오브젝트는 추구하는(원하는) 상태를 기술해 둔 것이다.상태란 이러한 오브젝트가 추구하는 상황이 된다.오브젝트가 추구하는 상태는 어떻게 되어있을까? 코드로
PV와 PVC에 이어집니다.기존 PV와 PVC 할당의 문제는 무엇일까?PVC로 PV를 요청해서 바인딩하므로 즉, 사용자가 PV를 미리 만들어 놓아야하는 것이다.이러한 번거로운 문제를 해결하기 위해 StorageClass라는 것이 존재한다.StorageClass를 사용자
[Kubernetes] 💎 kubectl 기본 명령어들을 정리해 둔 정리집.
애플리케이션의 종류에는 어떤 것들이 있고, 또 어떻게 배포할 수 있는지 알아보자. 1. 파드(Pod) 가장 단순한 배포형태이다. metadata 태그 내 labels은 해당 배포된 오브젝트에 대한 별칭이라고 생각하자. spec은 파드안의 실제로 배포하는 컨테
일반적으로 파드는 시작되면 지속적으로 실행되는 것을 기대한다.(ex. 웹 애플리케이션)하지만, 몇분, 몇 시간동안만 실행되도록 하고 종료되었으면 좋겠는 그런 작업들이 있다.이를 가능케 하는 방법이 바로 Job이다.JOB이란 하나 이상의 파드를 지정하고, 지정된 수의 파
PV(PersistentVolume)와 PVC(PersistentVolumeClaim)는 Kubernetes에서 지속적인 데이터 저장을 위한 중요한 리소스입니다.
Kubernetes에서 상태를 유지해야 하는 애플리케이션을 배포하는 데 사용되는 리소스?! StatefulSet
컨테이너에서의 command는 해당 컨테이너가 시작될 때 실행할 명령을 명시하는 데 사용된다.이는 컨테이너가 실행되면서 수행할 첫 번째 명령이 된다.다음과 같은 Pod가 있다고 하자.현재 Pod의 컨테이너로는 net-tools 이미지를 사용해서 네트워크에 대한 테스트를
쿠버네티스의 사용이 중단된 과정과 왜 중단하게 되었는 지, 대해서 그림을 통해서 그 과정을 알아봅시다.쿠버네티스는 원래 도커와의 호환성이 잘 되는 도구였습니다.👌🧐하지만... 시간이 갈수록 클러스터 운영자들은 쿠버네티스에서 도커가 아닌 다른 컨테이너 런타임을 사용하
☸️ 쿠버네티스에서 애플리케이션을 노출하는 방법(서비스)에 대해서 알아보자.쿠버네티스에서 애플리케이션을 외부로 노출하는 방법사실 이 말은 일정부분 맞고, 일정부분 틀리다.외부로 노출하는 방법(로드밸런서, 노드 포트)또한 분명 서비스가 맞으나, 내부에서 파드를 로드밸런싱
노드 포트란 애플리케이션을 외부로 노출하기 위한 kind : Service로 type : NodePort를 통해서 지정하게 된다.노드 포트는 VM의 노드 포트(nodePort)를 통과해 서비스(port)에서 선택되는 파드의 내부 애플리케이션(targetPort)까지 트
똑같은 ☸️ k8s의 Service의 종류이지만, 기존 노드 포트, 로드밸런서와는 동작하는 방향이 반대이다.NodePort와 로드 밸런서는 외부에서 클러스터 내부의 서비스에 접근하기 위해 사용한다.반면 ExternalName은 클러스터 내부의 Pod가 외부 서비스에 액
대표적으로 쿠버네티스의 볼륨에는 3가지가 있다.빈 디렉터리(emptyDir), 호스트 경로(hostDir), 그리고 마지막 네트워크 파일 시스템(NFS)이다.이에 대해서 직접 실습해보며 어떤 차이가 있고, 각각 어떤 형태인지 알아보도록 하자.빈 디렉터리는 파드 내에서
PV(PersistentVolume)와 PVC(PersistentVolumeClaim)는 Kubernetes에서 지속적인 데이터 저장을 위한 중요한 리소스입니다.
노드를 직접 스케쥴링하는 방법인 경계선(cordon)과 드레인(drain)이라는 것은 무엇일까?특정 오류가 자주 생기는 노드에 대해서, 파드가 할당 되지 않도록 경계선을 치는 것이다.이렇게 cordon을 사용하면 해당 노드는 더이상 스케쥴링이 되지 않는다.드레인은 영
스케쥴러가 노드의 이름을 보고 파드가 배포되도록 하는 방법이다.단순하다. 배포하는 곳에 nodeName 파라미터를 써주면 된다.라벨이라고도 하고, 레이블이라고도 한다.이전 nodeName의 방법 보다는 훨씬 ✨세련된(?) 방법이다.쉽게 말해서 꼬리표🧾이다.노드의 레이
본 글을 보기 전에 이전 노드를 스케쥴링 하는 방법인 nodeName, label, nodeSelector 글을 보고 오면 이해하기가 훨씬 쉽습니다.친밀함을 뜻하는 어피티니에 대해서 알아보자.먼저 핵심부터 말하자면 affinity를 통해서 우리는 어떤 노드에 파드를 배
파드가 스케쥴링될 때 어떤 노드에 배치될 것인지 결정 된다.이 때 해당 파드의 deploy를 막는 자물쇠인 Taints와 이를 허용하는 Toleration에 대해서 알아보자.지금까지 파드를 배포하면 당연하게도 워커노드 중 일부에 파드가 배포되었다.왜 마스터 노드에는 파
파드에도 동일하게 노드처럼 레이블이 존재한다.먼저 파드의 레이블이 생성되는 차이부터 한번 보도록 하자.create로 생성한 디플로이먼트에 대해서는 파드의 레이블이 app:nginx로 붙는 반면, run을 통해서 생성한 파드는 run:nginx의 레이블이 붙는 것을 확인
해당 부분의 내용은 job을 먼저 보고 오시면 더 편합니다."파드 내 컨테이너가 수행이 완료(종료)된 경우, 어떻게 할 것인가?"를 결정restartPolicy는 파드 수준에서 설정되며, 총 3가지 옵션이 있다.Always : 컨테이너가 어떤 이유로 종료되든 항상 재시
Probe란? Kubernetes Probe는 컨테이너의 상태를 지속적으로 모니터링하고, 문제가 발생하면 자동으로 조치를 취하는 Kubernetes 기능이다. Probe의 종류 Startup Probe: 컨테이너가 제대로 시작되었는지 확인한다. 시작 단계에서 컨테
여러 컨테이너가 하나의 파드 내에서 협력하여 작동하는 방식을 의미한다.🤔 파드 1 : 컨테이너 1 생각을 버린.. 마치 도커 컴포즈 같은 느낌이랄까?그림으로 배우는 쿠버네티스컨테이너 패턴
Kubernetes (k8s)의 Role-Based Access Control (RBAC)은 사용자, 그룹 또는 서비스 계정에 클러스터 내의 리소스에 대한 접근을 제어하는 방법이다.쿠버네티스 - RedHat
파드를 분배하는 방법인 노드 어피니티에 대해서 미리 공부한다면 더 쉽다.파드는 언제라도 죽고, 또 생성될 수 있는 단위이지만 파드의 레이블은 여전히 동일하게 붙은 채로 생성된다. 이를 통해 우리는 affinity 즉, 친밀도를 사용해서 파드를 분배 할 수 있다.그림으로
Introduction 우리는 현재까지 파드를 분배하는 방법에서 노드 레이블에 따라서 배포하는 방법과 기준을 파드로 잡아서 [파드의 레이블에 따라서 배포하는 방법]에 대해서 알아보았다.
리소스 쿼터는 네임스페이스의 전체 자원 사용을 제한하는 반면, 리밋 레인지는 네임스페이스 내의 개별 파드 또는 컨테이너의 최소 및 최대 자원 사용 범위를 제한한다. 이 두 가지 기능을 함께 사용함으로써, 쿠버네티스 클러스터의 자원 사용을 효
쿠버네티스에서 ConfigMap📑과 Secret📜은 환경 설정 값과 민감한 데이터를 이미지 외부에서 관리하는 방법이다.객체 지향 프로그래밍에 대해서 들어본 적이 있다면, 인터페이스라는 말을 들어보았을 것이다.이들은 이러한 인터페이스와 유사한데 즉, 생성되는 이미지에
Kubernetes의 네트워크 정책(NetworkPolicy)은 클러스터 내 파드 간 및 파드와 외부 리소스 간의 네트워크 트래픽을 제어하는 규칙입니다. 이 정책들은 특정 파드 또는 파드 그룹에 대한 들어오는(인그레스) 및 나가는(이그레스) 트래픽을 허용하거나 차단합니
사용자는 애플리케이션을 항상 사용할 수 있기를 기대하고 개발자는 하루에 여러 번 애플리케이션의 새 버전을 배포하는 상황이 필요하다. 이를 Kubernetes에서는 롤링 업데이트를 통해 무중단 배포를 수행할 수 있다. 롤링 업데이트를 사용 하면 Pod 인스턴스를 새 인
애플리케이션을 한번에 배포할 수 있는 방법인 `kustomize`와 `helm`에 대해서 알아보자. `kustomize`와 `helm`은 둘 다 복잡성이 높은(여러 파드 및 서비스가 포함된) 애플리케이션을 한번에 배포할 수 있도록 하는 도구이다.
배포만큼 중요한 것이 바로 운영 중인 애플리케이션의 성능을 모니터링하고 필요에 따라 자동으로 규모를 조정하는 것이다.이번에는 이를 실현할 수 있는 도구인 Metrics-server와 (HPA)Horizontal Pod Autoscaler에대해서 알아보자.클러스터에서 실