728x90
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. 리스(Lease) 분산 시스템에는 종종 공유 리소스를 잠그고 노드 간의 활동을 조정하는 메커니즘을 제공하는 "리스(Lease)"가 필요하다. 쿠버네티스에서 "리스" 개념은 coordination.k8s.io API 그룹에 있는 Lease 오브젝 kubernetes.io # Lease 분산 시스템에는 종종 공유 리소스를 잠그고 노드 간의 활동을 조정하는 매커니즘을 제공하는 "리스"가 필요하다. 쿠버네티스에서 "리스" 개념은 coordination.k8s.io API 그룹에 있는 Lease 오브젝트로 표현되며, 노드 하트비트 및 컴포넌트 수준의 리더 선출과 같은 시스템 핵심 기능에서 사용된다. 노드 하트비트 쿠버네티스는 리스..
쿠버네티스 클러스터 구축을 위한 가상머신 세팅 - Vagrant & VMware Workstation 사용 언젠간 해봐야지 하고 미뤄뒀던 로컬 쿠버네티스 클러스터 구축을 시도한 과정을 공유하고자 한다. 이번 포스팅에서는 쿠버네티스 클러스터 구축을 위한 가상머신 세팅 과정을 담고 있다. 다음 alive-wong.tistory.com 이전 글에 이어서 Vagrant로 프로비저닝된 Ubuntu 20.04 가상 머신들을 통해서 쿠버네티스 클러스터를 구축하는 과정을 공유한다. 기존 Vagrantfile 또한 활용하여 가상머신에서 할 일을 최소하하여 클러스터를 구축하는 것이 목적이다. # 쿠버네티스 클러스터 구축 방법 우선 쿠버네티스 클러스터를 구축하기 위해 필요한 요소들과 방법들을 간략하게 정리한다. 쿠버네티스 ..
언젠간 해봐야지 하고 미뤄뒀던 로컬 쿠버네티스 클러스터 구축을 시도한 과정을 공유하고자 한다. 이번 포스팅에서는 쿠버네티스 클러스터 구축을 위한 가상머신 세팅 과정을 담고 있다. 다음 포스팅에선 구성한 가상머신을 통해 쿠버네티스 클러스터를 구축하는 과정을 공유할 예정이다. HyperVisor는 기존의 VMware Workstation 17을 사용하고, Vagrant를 사용하여 자동화와 확장성을 확보하여 클러스터에서 사용할 가상머신들을 프로비저닝했다. Vagrant는 Virtual Box와 연동성이 좋지만, 원래 사용하던 VMware Workstation 17에 익숙하기도 하고 이를 삭제하고 싶지 않아서 Virtual Box를 사용하지 않았다. # 구성 Specification Local K8s Clust..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. 노드 쿠버네티스는 컨테이너를 파드내에 배치하고 노드 에서 실행함으로 워크로드를 구동한다. 노드는 클러스터에 따라 가상 또는 물리적 머신일 수 있다. 각 노드는 컨트롤 플레인에 의해 관리되며 kubernetes.io # 노드 쿠버네티스는 컨테이너를 파드 내에 배치하고, 노드에서 실행함으로 워크로드를 구동한다. 노드는 클러스터에 따라 가상 또는 물리적 머신일 수 있다. 각 노드는 컨트롤 플레인에 의해 관리되며 파드를 실행하는 데 필요한 서비스를 포함한다. 일반적으로 클러스터에서는 여러 개의 노드가 존재한다. 노드의 컴포넌트에는 kubelet, CRI, kube-proxy가 포함된다. # 관리 API Server에 노드를 추가..
전날의 Ifkakao2022 이게 돼요? 도커 없이 컨테이너 만들기 세션을 이어서 2시간 20여분의 핸즈온을 마무리헀다. # 요약 패키징 저장 중복 문제를 해결하기 위한 방법 중 하나인 리눅스 Overlay Filesystem을 사용하는 이유와, 이를 마운트하는 과정을 실습하며 세션을 이어갔다. - 1:07:12 진행했던, myroot와 tools 디렉토리를 LowerDir로 두고, 별도의 디렉토리를 통해 UpperDir, WorkDir 및 Merged View를 지정하여 오버레이 마운트를 진행했다. mount -t overlay overlay -o lowerdir=tools:myroot,upperdir=rootfs/container,workdir=rootfs/work rootfs/merge 이러한 코드..
본 포스팅은 2022 Ifkakao 이게 돼요? 도커 없이 컨테이너 만들기를 바탕으로 작성되었다. if(kakao)dev2022 함께 나아가는 더 나은 세상 if.kakao.com 현재 대부분의 어플리케이션은 컨테이너 형태로 동작하는데, 도커나 쿠버네티스를 사용하는 방법만 알지, 컨테이너에 대해 들여다보는 노력을 안한 것 같아서, 이를 직접 다뤄보기 위한 시간을 갖게 되었다. 컨테이너를 생성하기 위해 필요한 리눅스 개념들은 chroot, cgroup, namespace 등이 있다고 개념만 이해하고 있었지 정확하게 어떤 요소가 "컨테이너"라는 독립적인 워크로드를 만드는지에 대한 이해를 하기 위함이다. 이를 혼자서 진행하기 보다는, IfKakao에서 "도커 없이 컨테이너 만들기 " 라는 세션을 알고 있었고,..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. Owners and Dependents In Kubernetes, some objects are owners of other objects. For example, a ReplicaSet is the owner of a set of Pods. These owned objects are dependents of their owner. Ownership is different from the labels and selectors mechanism that some resources also use kubernetes.io # 소유자와 종속 항목 - Owners and Dependents 쿠버네티스에서, 일부 Object는 다..
# 목적 ALB가 존재하는 상황에서, Route53 및 인증서를 등록하여 HTTPS 구성하여 서비스를 위한 최소한의 보안 확보가 가능해진다. ALB가 존재하는 상황에서 Route53에서 구매한 도메인 및 인증서까지 발급받아 적용하는 과정을 공유한다. EKS 환경에서 ALB를 프로비저닝하는 방법은 아래 글에서 설명되어 있으므로 참고하면 된다. 굳이 AWS LB Controller를 통해 구성된 ALB가 없더라고 아래의 과정은 동일하다. EKS ALB 구성 및 노출 - K8s Ingress 및 AWS LB Controller 사용 # 목적 EKS 및 데이터플레인을 구성할 때 일반적으로 Private Subnets에 속하도록 구성한다. 이럴 경우, 사설 네트워크에 존재하는 파드들을 외부로 서비스하기 위해선 별..
# 목적 EKS 및 데이터플레인을 구성할 때 일반적으로 Private Subnets에 속하도록 구성한다. 이럴 경우, 사설 네트워크에 존재하는 파드들을 외부로 서비스하기 위해선 별도로 공인 IP를 할당받던지, NAT 혹은 LB 구성을 필수적으로 해야한다. 추가적으로, Nginx-Ingress-Controller 등으로, K8s Ingress를 통해 L7 로드밸런싱 구조를 사용하더라도 해당 구성을 별도로 수행해야하는데, AWS 환경에서 일일히 이러한 환경을 구성할 필요는 없다. AWS에서는 추가 플러그인으로 AWS LB Controller를 EKS 환경에서 사용할 수 있도록 제공하고 있고, 이를 사용하여 EKS 환경에서 K8s Ingress 객체를 통해 ALB 구성을 완성하는 방법을 공유한다. # 사용 환..
본 포스팅은 Kubernetes Official Documents를 기반으로 한다. 필드 셀렉터필드 셀렉터 는 한 개 이상의 리소스 필드 값에 따라 쿠버네티스 리소스를 선택하기 위해 사용된다. 필드 셀렉터 쿼리의 예시는 다음과 같다. metadata.name=my-service metadata.namespace!=default status.phase=Pekubernetes.io# Field Selector필드 셀렉터는 한 개 이상의 리소스 필드 값에 따라 쿠버네티스 리소스를 선택하기 위해 사용된다. 필드 셀력터 쿼리의 예시는 아래와 같다. metadata.name=my-servicemetadata.namespace!=defaultstatus.phase=Pending다음의 ..