kubernetes 10

[CKS] Kubernetes에서의 Public Key Infrastructure 구조 (PKI) 이해하기

IntroductionPublic Key 기반 구조(PKI)는 쿠버네티스에서 중요한 역할을 하며, 클러스터 내 다양한 구성 요소 간의 안전한 통신을 보장한다.  PKI의 핵심에는 인증 기관(CA)이 있으며, 이는 인증서를 발급하고 검증하는 기관이다. 이러한 인증서는 쿠버네티스 구성 요소가 서로를 인증하고 검증할 수 있도록 하여 클러스터 전반에 걸쳐 안전한 상호 작용을 보장하게 한다. CA (Certificate Authority) 의 역할인증서 발급: CA는 클러스터 내 다양한 구성 요소(APIServer, kubelet, 스케줄러 등)에게 인증서를 발급한다. 인증서 서명: CA는 모든 인증서에 서명하여, 통신 당사자의 신뢰성을 보장하는 신뢰 체인을 형성한다. 검증: 쿠버네티스 구성 요소는 CA를 사용하..

DevOps/k8s 2024.06.26

[CKS] Google Cloud로 Master Node와 Worker Node 구성하는 방법

Introduction Google Cloud Platform(GCP)에서 Kubernetes 클러스터를 구성하는 방법에 대해 알아보겠다.두 개의 가상 머신(VM)을 사용하여 하나의 Master Node와 하나의 Worker Node를 구성할 것이다.   Kubernetes Cluster 사양클러스터는 두 개의 가상 클러스터로만 구성된다.첫 번째 VM: cks-master (Master Node)OS: Ubuntu 20.04 LTSDISK: 50GBCPU: 2RAM: 4GB두 번째 VM: cks-worker (Worker Node)OS: Ubuntu 20.04 LTSDISK: 50GBCPU: 2RAM: 4GB클러스터 실행 스크립트install_master.sh는 마스터 노드에서 실행install_work..

DevOps/k8s 2024.06.25

[CKS] 이론편 : Kubernete Security 기본 개념

CKS 를 따는 이유 8월/9월 중으로 CKS 자격증을 취득하는 것을 목표로 하고 있다. 현재 CKA(Certified Kubernetes Administrator) 자격증은 보유하고 있지만, CKA를 준비하면서 보안과 네트워크 관련 지식이 부족하다고 느꼈다. 현업에서 관리형 쿠버네티스 서비스(EKS, GKE, AKS 등등.. 쿠버모니터링 개발팀에 있었기 때문...하하) 를 많이 다뤄봤지만, On-Premise 환경의 쿠버네티스 실무 경험과 배경 지식이 매우 부족한 상태입니다. 특히, Control Plane 관련 공부가 시급하다고 느껴 CKS를 취득하는 동시에 보안과 네트워크를 함께 공부하려고 한다. 준비 순서는 이론 -> 실습 -> 실제 기출 문제 풀이 순으로 진행하려고 한다.  강의는 아래 유튜브 ..

DevOps/k8s 2024.06.19

[K8s] 쿠버네티스에서의 헬스체크 LivenessProbe, ReadnessProbe

Introduction 시스템은 관리하기 어려울 수 있다. 가장 큰 이유는 시스템이 작동하려면 모두 작동해야하는 움직이는 부품이 많기 때문이다. 작은 부품이 파손되면 시스템은 이를 감지하고 우회하여 수리해야한다. 그리고 이 모든 작업이 자동으로 수행되어야합니다. 이 글에서는 쿠버네티스에서의 헬스체크 기능인 Readness와 Liveness를 설정하는 방법에 대해서 알아보겠다.  헬스체크는 인스턴스가 작동하는지 여부를 시스템에 알리는 간단한 방법이다. 인스턴스가 작동하지않으면 다른 서비스에서 해당 인스턴스에 엑세스하거나 요청을 보내면 안된다. 대신 나중에 준비되거나 다시 시도되는 앱의 다른 인스턴스로 요청을 보내야한다.  또한 시스템은 앱을 정상 상태로 되돌려야한다. 기본적으로 쿠버네티스는 Pod내의 모든..

DevOps/k8s 2024.06.18

[K8s] AWS Karpenter를 통해 EKS 클러스터 효율적으로 관리하기 2편_워크로드 배포

5단계 : 워크로드 배포  AWS Karpenter로 최적화된 Kubernetes 클러스터에 애플리케이션 워크로드를 배포하려면 리소스를 효율적으로 활용할 수 있도록 세심한 계획이 필요합니다. 이 섹션에서는 Karpenter의 동적 프로비저닝 기능을 최대한 활용하기 위한 워크로드 배포 전략에 대해 설명합니다.워크로드 요구사항 이해하기애플리케이션을 배포하기 전에 리소스 요구사항을 평가하십시오. 이를 통해 Karpenter가 리소스를 보다 효과적으로 프로비저닝할 수 있습니다.   - CPU / Memory Request: Deployment yaml 파일에 적절한 CPU / Memory  Request(요청 값)을 정의하여 Karpenter가 아래와 같은 요구사항을  충족할 수 있는 Node로 Provisio..

DevOps/k8s 2024.06.14

[K8s] AWS Karpenter를 통해 EKS 클러스터 효율적으로 관리하기 1편_기본 구성

Introduction AWS Karpenter는 resource 할당을 최적화하고 비용을 절감할 수 있는 방법을 제공하는 매우 유연하고 확장 가능한 Auto Scaling 솔루션으로, 쿠버네티스 기본 기능인 Auto Scaler 와 비교해 뛰어난 장점을 지니고 있습니다. 오늘은 AWS Karpenter를 소개하고, 쿠버네티스 기본 기능인 Auto Scaler와 비교한 장점들을 설명하고, Kubernetes 클러스터 내에서 실제 설정 과정을 알아보겠습니다.  What is AWS Karpenter ?AWS Karpenter는 현재의 워크로드를 기반으로 클러스터 내 컴퓨팅 자원의 수량과 종류를 자동으로 조정하도록 설계되었습니다. 단순한 Node Scaling을 넘어, 필요에 따라  Application에 ..

DevOps/k8s 2024.06.14

[k8s] 명령어 8개로 가장 빠르게 클러스터 생성하고 쿠버네티스 모니터링까지

Introduction 쿠버네티스는 뛰어난 기능을 제공하지만, 처음 시작하기는 조금 복잡할 수 있습니다. 하지만 Minikube를 이용하면 로컬 환경에서 손쉽게 쿠버네티스 클러스터를 만들 수 있습니다. 이번에는 단 아래의 8개의 명령어로 클러스터를 만들고, 가장 빠르게 모니터링까지 하는 방법에 대해 안내하겠습니다. 쿠버네티스를 처음 다뤄보는 분들에게는 Minikube가 정말 좋은 선택일 거예요. Minikube를 사용하면 로컬 환경에서 간단하게 쿠버네티스 클러스터를 만들 수 있답니다. 설치 전 요구 사항 Docker Desktop 설치 Docker Desktop은 Minikube에서 로컬 Kubernetes 클러스터를 실행하기 위해 필요합니다. 먼저 Docker Desktop을 설치해야 해요. 공식 Do..

DevOps/k8s 2024.02.16

[Helm] Helm Chart 생성하기 1편

Helm과 Helm Chart란? Helm은 Kubernetes 애플리케이션을 관리하기 위한 패키지 관리자이며, Helm Chart는 Kubernetes 리소스를 정의하고 패키징하는 방법을 담은 템플릿입니다. 이를 통해 반복적인 작업을 줄이고 표준화된 배포를 가능하게 합니다. 실습 환경 설정 먼저 간단한 환경을 설정해봅시다. 터미널에서 다음과 같이 명령어를 입력하여 빈 Helm Chart를 생성합니다. helm create myfirstchart 이 명령어는 **myfirstchart**라는 이름의 Helm Chart를 생성합니다. 이제 이 Chart를 편집하면서 Helm의 기본 개념을 익혀보겠습니다. 간단한 ConfigMap 만들기 실습의 시작은 간단한 ConfigMap을 만들어서 Helm Chart에..

DevOps 2024.01.24

[K8s] JSONPATH 활용하여 원하는 데이터 확인하기

JSONPath란? JSONPath는 JSON 데이터 구조 내에서 원하는 데이터를 식별하기 위한 경로 표현 방법입니다. 주로 Kubernetes나 다양한 API 응답에서 원하는 데이터를 추출하거나 쿼리하는 데 사용됩니다. JSONPath 패턴 $.store.book[0].title JSON 데이터 구조에서 store 객체 안의 book 배열의 첫 번째 요소의 title 값에 대한 경로 $..author 모든 author 키에 해당하는 값 반환 $.store.* store 객체 안의 모든 키와 값 반환 $.store..price store 객체 내부의 모든 price 키에 해당하는 값 반환 $.store.book[?(@.price < 10)] : **price**가 10 미만인 책에 해당하는 값들을 반환합..

DevOps/k8s 2023.11.16

[CKA] Namespace 내에 Service Account 생성 → Role 생성→ RoleBinding

koogle 네임스페이스 내에 pod-viewer라는 서비스 어카운트를 생성한다. 그리고 파드 리소스를 대상으로 get, list, watch 권한을 갖는 Role을 생성한다. 마지막으로 이 Role을 pod-viewer 서비스 어카운트에 연결하는 RoleBinding을 생성한다. 서비스 계정 생성 koogle 네임스페이스에 pod-viewer라는 서비스 계정을 생성하려면 다음 명령을 사용합니다. kubectl create serviceaccount pod-viewer -n koogle 잘 생성 되었는지 아래 명령어를 통해 확인합니다. 해당 파일은 pod-viewer-role이 pods 리소스에 대해 get, list, watch 권한을 수행할 수 있도록 하는 규칙을 정의하는 매니페스트입니다. 아래 매니..

DevOps/k8s 2023.11.16