본문 바로가기

DevOps/쿠버네티스(Kubernetes)

(37)
헬름(Helm) 헬름(Helm) 1. 헬름이란? 쿠버네티스의 패키지 매니저인 헬름(Helm)은 쿠버네티스 애플리케이션을 정의, 설치 및 업그레이드할 수 있게 해주는 도구이다. 1.1 패키지 매니저란? 일반적인 OS에서 패키지 매니저(Apt, Yum, Npm등)의 역할 소프트웨어 설치: 사용자는 간단한 명령어로 필요한 소프트웨어를 설치할 수 있다. 예를 들면, Ubuntu에서 apt install 을 통해 소프트웨어를 설치한다. 의존성 관리: 많은 애플리케이션들은 제대로 작동하기 위해 다른 라이브러리나 소프트웨어에 의존한다. 패키지 매니저는 이러한 의존성을 자동으로 처리하며, 필요한 모든 패키지를 함께 설치한다. 업데이트 및 보안 패치: 패키지 매니저를 통해 설치된 소프트웨어의 최신 버전 및 보안 업데이트를 쉽게 받아올 ..
Pod 보호되어 있는 글입니다.
쿠버네티스란? 보호되어 있는 글입니다.
[CKA] Volumes 영구 볼륨(Persistent Volumes)으로 이동하기 전에 Kubernetes의 볼륨부터 보자. 먼저 도커의 볼륨을 살펴보면, 도커 컨테이너는 본질적으로 일시적인 것으로, 이것은 그것들이 짧은 기간 동안만 지속된다는 것을 의미한다. 데이터를 처리해야 할 때 요청되고 완료되면 파기된다. 컨테이너 내의 데이터도 마찬가지이다. 데이터는 컨테이너와 함께 파괴됩니다. 컨테이너에서 처리된 데이터를 유지하기 위해, 우리는 그것들이 생성될 때 볼륨을 컨테이너에 연결한다. 이제 컨테이너에서 처리된 데이터가 이 볼륨에 저장되어 영구적으로 유지된다. 컨테이너가 삭제되더라도 해당 컨테이너에서 생성되거나 처리된 데이터는 그대로 유지된다. 그렇다면 쿠버네티스에서는 어떻게 작동할까? 도커에서와 마찬가지로, 쿠버네티스에서 만들..
[CKA] Container Storage Interface (CSI) 컨테이너 스토리지 인터페이스를 살펴보자. 과거에 쿠버네티스는 컨테이너 런타임 엔진으로 도커를 단독으로 사용했으며, 도커와 함께 작동하기 위한 모든 코드는 쿠버네티스 소스 코드에 내장되어 있었다. Rocket 및 CRI-O와 같은 다른 컨테이너 런타임이 들어오는 상황에서, Kubernetes 소스 코드에 의존하지 않고 다른 컨테이너 런타임으로 작업할 수 있도록 지원을 개방하고 확장하는 것이 중요했다. 이것이 컨테이너 런타임 인터페이스의 탄생 배경이다. 컨테이너 스토리지 인터페이스는 쿠버네티스와 같은 오케스트레이션 솔루션이 도커와 같은 컨테이너 런타임과 통신하는 방법을 정의하는 표준이다. 그래서 미래에 새로운 컨테이너 런타임 인터페이스가 개발된다면 단순히 CRI 표준을 따 따르기만 라면 되고, 새로운 컨테이..
[CKA] Volume Driver Plugins in Docker 스토리지 드라이버는 이미지 및 컨테이너의 스토리지를 관리하는 데 도움이 된다. 스토리지를 유지하려면 볼륨을 생성해야 한다. 볼륨은 스토리지 드라이버에 의해 처리되지 않는다. 볼륨은 볼륨 드라이버 플러그인에 의해 처리된다. 기본 볼륨 드라이버 플러그인은 local이다. 로컬 볼륨 플러그인은 도커 호스트에 볼륨을 생성하고 var/lib/docker volumes 디렉토리에 데이터를 저장하는 데 도움이 된다. Azure 파일 스토리지, Codel, Digital Ocean, 블록 스토리지, Flocker, Google Compute Persistent Disks, Gluster FS, NetApp, REX-Ray, Portworx 및 VMware vSphere 스토리지와 같은 타사 솔루션에서 볼륨을 생성할 수..
[CKA] Network Policy [CKA] Network Policy 데이터베이스 파드(DB Pod)를 다른 pod에서 접근할 수 없도록 보호하려고 한다.하지만 API Pod에서의 접근은 허용한다.기본적으로 kubernetes는 모든 트래픽을 허용하지만 데이터베이스 파드로 들어오고 나가는 모든것을 차단하고 싶다. 그래서 네트워크 정책을 생성한다. 우리는 그것을 DB 정책이라고 부른다. 첫번째 단계는 보호하려는 pod에 네트워크 정책을 연결하는것이다. (label, selector 이용) 하지만 아직 정책 유형(policyTypes)을 지정하지 않았기 때문에 여전히 트래픽을 차단하지 않는다. 따라서 지정된 정책 유형이 없는경우 네트워크 정책으로 보호되지 않는다. Ingress(수신) 및 Egress(송신) 를 모두 차단하고 싶다면 정책 ..
[CKA] Kubernetes Image Security Kubernetes Image Security 이미지 이름의 기본부터 시작하여 보안 이미지 저장소와 안전한 저장소의 이미지를 사용하도록 포드를 구성하는 방법에 대해 알아보자. 웹 애플리케이션 및 데이터베이스, Rediscache 등과 같은 다양한 종류의 pod를 생성해보았다. # nginx-pod.yaml apiVersion: v1 kind: Pod metadata: name: nginx-pod spec: containers: - name: nginx image: 간단한 pod 정의 파일로 시작하자. 예를 들어, 여기서는 Nginx 이미지를 사용하여 Nginx 컨테이너를 배포했다. 이 이미지 이름을 자세히 살펴보면 이름은 Nginx이지만 이 이미지는 무엇이고 이 이미지는 어디에서 가져온 것일까? 이 이름..
[CKA] Kubernetes TLS Kubernetes TLS SSL TLS 인증서에 대해 알아보자. 우선 TLS는 SSL의 업데이트 버전이며 명칭만 다르다. TLS 인증서가 무엇인지, 왜 필요한지, 인증서 구성 방법이 뭔지 알아보자. TLS 인증서는 SSH 또는 웹 서버를 보호한다. 인증서는 거래중 두 당사자 사이의 신뢰를 보장하는데 사용된다.사용자가 웹 서버에 액세스하려고 할 때 TLS 인증서는 사용자와 서버 간의 통신이 암호화되고 서버가 자신의 이름임을 보장한다. 예를 들어보면 보안 연결이 없으면 사용자가 은행 홈페이지에 들어가 ID와 Passwd를 입력하면 일단 텍스트 형식(id:daaa055501 passwd:3281378!@#) 으로 은행 서버에 전송이 된다. 이 경우 네트워크 트래픽을 스니핑하는 해커는 쉽게 자격증명 데이터를 ..
[CKA] Kubernetes drain/cordon/uncordon Kubernetes OS(Operating System) Upgrade 클러스터의 일부로 노드를 제거해야 하는 시나리오(예: 기반 소프트웨어 업그레이드 또는 클러스터에 보안 패치 등의 패치 적용)에 대해 알아보자 이러한 경우를 처리하는 데 사용할 수 있는 옵션을 살펴보자 애플리케이션을 지원하는 몇 개의 노드와 포드가 있는 클러스터가 있다. 이 노드 중 하나가 중단되면 어떻게 될까? 물론, 그 노드 안에 있는 Pod는 접근할 수 없다. 그 Pod들을 어떻게 배치했느냐에 따라 사용자가 영향을 받을 수 있다. 예를 들어, Blue Pod의 복제본이 여러 개 있다면 Blue Application에 액세스하는 사용자는 온라인 상태의 다른 Blue Pod를 통해 서비스를 받을 때 영향을 받지 않는다. 그러나 Gre..