전체 글 89

[K8S Deploy] RKE2 & Cluster API

Cloudnet K8s Deploy 7주차 스터디를 진행하며 정리한 글입니다. RKE2 소개RKE2(Rancher Kubernetes Engine 2)는 SUSE가 제공하는 엔터프라이즈용 Kubernetes 배포판입니다. 기존 RKE를 보안 중심으로 재설계한 버전으로, CIS Benchmark를 기본적으로 고려해 구성되어 있습니다. Docker 대신 containerd를 사용하며, 컨트롤 플레인 구성 요소가 패키징되어 있어 설치와 운영이 비교적 단순합니다. 폐쇄망 환경도 지원해 금융·공공기관과 같은 보안 요구사항이 높은 환경에 적합합니다. RKE2 실습[root@k8s-node1 ~]# curl -sfL https://get.rke2.io --output install.sh[root@k8s-node1 ~..

[K8s Deploy] Kubespray offline 설치

Cloudnet K8s Deploy 6주차 스터디를 진행하며 정리한 글입니다. 폐쇄망 환경 소개폐쇄망에서 서비스 동작을 위해 필요한 주요 구성 요소NTP Server ← 보통 벤더 어플라이언스 장비(or SW/솔루션)로 기본 이중화(HA)로 구성되며, 인프라 부서/팀에서 관리DNS Server ← 보통 벤더 어플라이언스 장비(or SW/솔루션)로 기본 이중화(HA)로 구성되며, 인프라 부서/팀에서 관리Network Gateway (IGW, NATGW) : 내부망 내 다른 네트워크에 서버와 통신 및 필요 시 DMZ/외부망과 통신 시 ← 보통 네트워크 라우터/스위치 장비로 구성되며, 네트워크팀에서 관리Local (Mirror) YUM/DNF Repository : Linux 패키지 저장소, 예시) repo..

[K8s Deploy] Kubespary HA & Upgrade

Cloudnet K8s Deploy 5주차 스터디를 진행하며 정리한 글입니다. 실습 환경Worker Client-Side LoadBalancing Kubespray를 통한 K8s 배포# inventory.ini 확인root@admin-lb:~/kubespray# cat /root/kubespray/inventory/mycluster/inventory.ini[kube_control_plane]k8s-node1 ansible_host=192.168.10.11 ip=192.168.10.11 etcd_member_name=etcd1k8s-node2 ansible_host=192.168.10.12 ip=192.168.10.12 etcd_member_name=etcd2k8s-node3 ansible_host=19..

[K8s] Kubespray 배포 분석

Cloudnet K8s Deploy 4주차 스터디를 진행하며 정리한 글입니다. Kubespray https://github.com/kubernetes-sigs/kubespray GitHub - kubernetes-sigs/kubespray: Deploy a Production Ready Kubernetes ClusterDeploy a Production Ready Kubernetes Cluster. Contribute to kubernetes-sigs/kubespray development by creating an account on GitHub.github.com Ansible 기반으로 쿠버네티스(Kubernetes) 클러스터를 자동으로 설치, 업그레이드, 관리하기 위한 오픈소스 배포 도구 사전 설..

[K8s Deploy] Kubeadm Deep Dive

Cloudnet K8s Deploy 3주차 스터디를 진행하며 정리한 글입니다. Kubeadm 이란Kubeadm은 Kubernetes에서 제공하는 공식 클러스터 부트스트랩 도구로, kube-apiserver, etcd, kube-controller-manager, kube-scheduler와 같은 컨트롤 플레인 구성요소를 표준화된 방식으로 설치·구성해줍니다.복잡한 수작업 설정 없이도 kubeadm init, kubeadm join 명령만으로 Kubernetes 클러스터를 빠르고 일관되게 생성할 수 있도록 설계되었습니다.Kubeadm은 SIG Cluster Lifecycle에서 관리하며, 클러스터의생성 (init / join)업그레이드재구성초기화(reset)와 같은 클러스터 라이프사이클 전반의 기반 역할을..

[K8s Deploy] Ansible 기초

Cloudnet K8s Deploy 2주차 스터디를 진행하며 정리한 글입니다. 이번 포스팅에서는 Ansible 기초에 대해 알아보겠습니다. Ansible이란IT 인프라와 애플리케이션 운영 작업을 코드로 자동화하기 위한 오픈소스 도구입니다.서버 설정, 애플리케이션 설치, 클라우드 리소스 생성 같은 반복 작업을 YAML 기반 플레이북으로 정의해 여러 환경에 동일하게 적용할 수 있습니다. Ansible의 특징1. Agentless관리 대상 서버에 별도 에이전트 설치가 필요 없음SSH 기반으로 즉시 자동화 가능Puppet, Chef 대비 초기 도입과 운영 부담이 적음2. 멱등성 (Idempotent)동일한 작업을 여러 번 실행해도 항상 같은 결과원하는 상태(desired state)를 기준으로 시스템을 유지3...

[K8s Deploy] Bootstrap Kubernetes the hard way

Cloudnet K8s Deploy 1주차 스터디를 진행하며 정리한 글입니다. 이번 포스팅에서는 Kubernetes의 내부 동작을 보다 깊이 이해하기 위해, 자동화된 설치 도구를 벗어나 Kubernetes the Hard Way 방식으로 클러스터를 구성해 봅니다.CA, TLS 인증서, kubeconfig를 직접 구성하며 Kubernetes 구성 요소 간 mTLS 통신 구조 이해주요 컴포넌트를 systemd 서비스로 기동하여 실제 운영 환경과 유사한 구조 확인kind Kubernetes와의 비교를 통해 설정 방식과 동작 차이 분석macOS / Windows(WSL2)에서 동일하게 실습 가능한 Vagrant 기반 환경 제공스크립트 자동화 대신 단계별 명령 실행과 설정 파일 설명 중심으로 실습 진행 이번 포스..

[Cilium] Tetragon

Cloudnet Cilium 8주차 스터디를 진행하며 정리한 글입니다. 이번 포스팅에서는 쿠버네티스 환경에서 보안을 강화하기 위한 오픈소스 도구 중 Tetragon에 대해 알아보겠습니다. Tetragon Tetragon은 보안에 중요한 이벤트를 커널 단에서 감지하고, 필요 시 대응까지 할 수 있습니다.Process: 실행 및 권한 변경 이벤트System: 시스템 콜 활동I/O: 네트워크 및 파일 접근특히 Kubernetes 환경에서 실행되면, Tetragon은 네임스페이스, 포드, 워크로드 단위로 이벤트를 인식합니다.단순히 OS 레벨이 아니라 이 Pod 안에서 실행된 프로세스가 문제다라는 식으로 컨텍스트 기반 추적이 가능하다는 점이 큰 장점입니다. 1) eBPF 실시간Tetragon의 가장 큰 특징은 e..

스터디/Cilium 2025.09.07

[Cilium] Cilium Security

Cloudnet Cilium 8주차 스터디를 진행하며 정리한 글입니다. Clilium Security 쿠버네티스 기본 네트워크 정책(NetworkPolicy)은 트래픽을 제한할 수 있습니다.하지만 여기에는 몇 가지 한계가 있습니다.L3/L4까지만 지원 → IP와 포트 기반 제어에 머무름Identity 개념 없음 → 파드가 재시작되어 IP가 바뀌면 정책 관리가 번거로움애플리케이션 레벨(L7) 제어 불가 → HTTP 메서드나 경로 단위의 보안은 불가능이러한 빈틈을 메워주는 것이 바로 Cilium Security입니다.Cilium은 Identity 기반 보안을 중심으로, L3 → L4 → L7까지 계층적으로 보안을 확장할 수 있습니다. Cilium vs Kubernetes NetworkPolicy구분Kube..

스터디/Cilium 2025.09.07

[Cilium] Cilium Performance

Cloudnet Cilium 7주차 스터디를 진행하며 정리한 글입니다. 이번 포스팅에서는 Cilium Metrics 대시보드를 살펴보고, 간단한 쿼리문을 확인해보겠습니다. 실습 환경 준비kind 클러스터에 cilium cni를 비롯한 필요한 컴포넌트를 설치하겠습니다.# Prometheus Target connection refused bind-address 설정 : kube-controller-manager , kube-scheduler , etcd , kube-proxy> kind create cluster --name myk8s --image kindest/node:v1.33.2 --config - kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}'..

스터디/Cilium 2025.08.31