<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Devops on History</title><link>https://kukie.tech/tags/devops/</link><description>Recent content in Devops on History</description><generator>Hugo</generator><language>ko-kr</language><lastBuildDate>Mon, 02 Nov 2026 09:00:00 +0900</lastBuildDate><atom:link href="https://kukie.tech/tags/devops/index.xml" rel="self" type="application/rss+xml"/><item><title>Network &amp; K8s.05-1 Stable Names, Moving Pods</title><link>https://kukie.tech/posts/network-k8s-05-1/</link><pubDate>Mon, 02 Nov 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-05-1/</guid><description>Kubernetes networking abstractions from the inside of the cluster — why a Service object existing and traffic actually flowing are two different facts separated by controllers and a node datapath, what a StatefulSet fixes (ordinal names, PVC, DNS) and what it does not (Pod IP), why Endpoints became EndpointSlice and how to read ready·serving·terminating, port vs targetPort vs containerPort, what NodePort&amp;rsquo;s Cluster and Local policies trade, how to tell whether iptables, nftables or Cilium eBPF is carrying your Services, and why Headless and ExternalName are Services without a virtual IP.</description></item><item><title>Network &amp; K8s.04-3 Who May Knock</title><link>https://kukie.tech/posts/network-k8s-04-3/</link><pubDate>Fri, 30 Oct 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-04-3/</guid><description>Having a path is not the same as being allowed to use it — a three-Pod lab (diagnostic, Go web server, PostgreSQL) shows what a NetworkPolicy really is: a per-Pod, per-direction allow list where both the sender&amp;rsquo;s egress door and the receiver&amp;rsquo;s ingress door must open, allow rules only add up, an empty selector, an empty list and an empty rule mean three different things, a hyphen in YAML decides AND versus OR, and the standard API stops at the TCP port while Cilium&amp;rsquo;s Envoy can refuse a single HTTP path with a 403.</description></item><item><title>Network &amp; K8s.04-2 A Name Becomes a Door</title><link>https://kukie.tech/posts/network-k8s-04-2/</link><pubDate>Wed, 28 Oct 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-04-2/</guid><description>How a Pod reaches a Pod that keeps changing — a three-node kind lab with Cilium as a plain CNI, how a Service&amp;rsquo;s virtual IP is rewritten to a real Pod IP by node rules at PREROUTING and OUTPUT, why the iptables chain says 1/4·1/3·1/2 and spreads connections rather than requests, how db becomes db.cn4.svc.cluster.local and what CoreDNS does with it, where search and ndots multiply queries, and what dual-stack actually changes in Pod, Service and EndpointSlice fields.</description></item><item><title>Network &amp; K8s.04-1 One IP per Room</title><link>https://kukie.tech/posts/network-k8s-04-1/</link><pubDate>Mon, 26 Oct 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-04-1/</guid><description>The Kubernetes network model read from the room up — why a Pod gets one IP and shares it across containers, the three rules every CNI must satisfy and where NAT still lives, how a Pod IP is born in two steps and dies only with the Pod, what kubelet actually does when it probes, and the /24-vs-/32 choice that decides whether the host sees every packet.</description></item><item><title>Network &amp; K8s.03-2 The Ways Out</title><link>https://kukie.tech/posts/network-k8s-03-2/</link><pubDate>Wed, 21 Oct 2026 10:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-03-2/</guid><description>How a container&amp;rsquo;s room gets out — Docker&amp;rsquo;s network modes compared with real namespace numbers, inside/outside pairing by @ifN, docker0 joined to the NIC by routing and NAT, CNM vs CNI and one CNI plugin call, VXLAN overlay, and one Go server knocked on from four places: another container, the host, another machine, and a container sharing its room.</description></item><item><title>Network &amp; K8s.03-1 A Process in a Room</title><link>https://kukie.tech/posts/network-k8s-03-1/</link><pubDate>Wed, 21 Oct 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-03-1/</guid><description>What a container actually is on an Ubuntu VM — three problems that VMs and containers each solve, the runtime stack from dockerd and kubelet down to runC, why runC vanishes and containerd-shim stays as the parent, the six namespaces and one cgroup directory seen through /proc.</description></item><item><title>Network &amp; K8s.02-2 The Packet's Way Through</title><link>https://kukie.tech/posts/network-k8s-02-2/</link><pubDate>Fri, 16 Oct 2026 21:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-02-2/</guid><description>What the Linux kernel does to a packet between the door and the socket, measured on an Ubuntu VM — counting the five Netfilter hooks, reading one conntrack entry and its state changes, DNAT to a Service-like address with kube-proxy&amp;rsquo;s random rule, MASQUERADE out of a namespace, a node as a router, an external SYN meeting 0.0.0.0 vs 127.0.0.1, and where eBPF plugs in.</description></item><item><title>Network &amp; K8s.02-1 Before the Packet</title><link>https://kukie.tech/posts/network-k8s-02-1/</link><pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-02-1/</guid><description>Inside the Linux kernel on an Ubuntu VM — a Python server under strace, the same socket seen from ss and /proc, why FD 4 comes back four times, interfaces as doors and lo as a mirror, veth pairs and a bridge built by hand, network namespaces as rooms, and nsenter into a Docker container&amp;rsquo;s room.</description></item><item><title>Kukie Infra.04 Image Pipeline to ECR</title><link>https://kukie.tech/posts/kukie-infra-04/</link><pubDate>Wed, 14 Oct 2026 09:30:00 +0900</pubDate><guid>https://kukie.tech/posts/kukie-infra-04/</guid><description>How a develop merge in each app repo becomes exactly one image in ECR — a role that can push to one repository only, a commit-SHA tag that never moves so the job checks before it builds, a build cache that silently never saved, and a digest a person still copies into the manifest by hand.</description></item><item><title>Kukie Infra.03 EKS and ArgoCD Bootstrap</title><link>https://kukie.tech/posts/kukie-infra-03/</link><pubDate>Wed, 14 Oct 2026 09:20:00 +0900</pubDate><guid>https://kukie.tech/posts/kukie-infra-03/</guid><description>Standing up the EKS cluster on top of the comment-approved pipeline — a NAT instance that costs a quarter of the gateway, three applies to finish one plan, an input that leaks into the next plan, and ArgoCD installed once from outside with every other Application kept in Git.</description></item><item><title>Kukie Infra.02 IAM Boundaries</title><link>https://kukie.tech/posts/kukie-infra-02/</link><pubDate>Wed, 14 Oct 2026 09:10:00 +0900</pubDate><guid>https://kukie.tech/posts/kukie-infra-02/</guid><description>Keeping a deploy robot from growing its own power — short-lived OIDC credentials instead of stored keys, a permissions boundary on every role it creates, permission and creation split into two PRs, and EKS access entries as one line in the cluster&amp;rsquo;s roster.</description></item><item><title>Kukie Infra.01 Terraform CD by PR Comment</title><link>https://kukie.tech/posts/kukie-infra-01/</link><pubDate>Wed, 14 Oct 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kukie-infra-01/</guid><description>How a three-person team made Terraform changes go through review and a PR comment — the deploy-config repo split off like a parcel box, plan and apply as two different badges, and one saved plan applied exactly once.</description></item><item><title>Network &amp; K8s.01-2 Across the Network</title><link>https://kukie.tech/posts/network-k8s-01-2/</link><pubDate>Mon, 12 Oct 2026 21:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-01-2/</guid><description>The same packet leaves the host — why the subnet mask never travels, how default routes and BGP fill the routing tables, why ARP looks for the router&amp;rsquo;s MAC instead of the server&amp;rsquo;s, and how Service NAT and VXLAN rebuild all of it inside Kubernetes.</description></item><item><title>Network &amp; K8s.01-1 Inside One Host</title><link>https://kukie.tech/posts/network-k8s-01-1/</link><pubDate>Mon, 12 Oct 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/network-k8s-01-1/</guid><description>One curl request to a local Go server, captured on lo0 and taken apart byte by byte — layers and encapsulation, the TCP handshake and connection states, TLS 1.3 vs 1.2 with decryption, and UDP with ICMP rejections.</description></item><item><title>K8sPatterns.29 Elastic Scale</title><link>https://kukie.tech/posts/kubernetes-patterns-29/</link><pubDate>Mon, 07 Sep 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-29/</guid><description>확장의 세 축 — 개수(HPA), 크기(VPA), 서버(CA). 내장은 HPA 하나뿐이고 숫자를 공급하는 쪽은 전부 설치한다는 것, 0에서 깨어나려면 Pod 앞에 문지기가 필요하다는 것, 그리고 서로 모르는 확장기들이 어떻게 맞물리는지까지.</description></item><item><title>K8sPatterns.26 Access Control</title><link>https://kukie.tech/posts/kubernetes-patterns-26/</link><pubDate>Fri, 04 Sep 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-26/</guid><description>API 서버로 가는 모든 요청은 인증·인가·어드미션 세 관문을 지난다. Role과 RoleBinding을 분리해 권한을 설계하고, ClusterRole의 범위는 정의가 아니라 바인딩이 정한다는 것까지.</description></item><item><title>K8sPatterns.25 Secure Configuration</title><link>https://kukie.tech/posts/kubernetes-patterns-25/</link><pubDate>Wed, 02 Sep 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-25/</guid><description>Secret은 암호화가 아니라 인코딩이다. Sealed Secrets·External Secrets·sops로 Git 노출을 막고, CSI·사이드카 주입으로 클러스터에 아무것도 남기지 않는 방법.</description></item><item><title>K8sPatterns.24 Network Segmentation</title><link>https://kukie.tech/posts/kubernetes-patterns-24/</link><pubDate>Mon, 31 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-24/</guid><description>NetworkPolicy와 Istio AuthorizationPolicy로 파드 간 통신을 제한하는 방법. 기본 차단에서 시작해 필요한 경로만 허용한다.</description></item><item><title>K8sPatterns.23 Process Containment</title><link>https://kukie.tech/posts/kubernetes-patterns-23/</link><pubDate>Mon, 24 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-23/</guid><description>검사는 언젠가 뚫린다고 가정하고, securityContext 7종 세트로 프로세스를 최소 권한의 울타리에 가둔 뒤, PSS/PSA 정책으로 그 울타리를 클러스터 차원에서 강제하는 법.</description></item><item><title>K8sPatterns.22 Configuration Template</title><link>https://kukie.tech/posts/kubernetes-patterns-22/</link><pubDate>Fri, 21 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-22/</guid><description>큰 설정 파일에 빈칸을 뚫어 템플릿으로 만들고, Init 컨테이너 안의 Gomplate가 ConfigMap 값으로 빈칸을 채워 시작 시점에 완성본을 찍어내는 법.</description></item><item><title>Docker.01 Bind Mount vs Volume (Named / Anonymous)</title><link>https://kukie.tech/posts/docker-01/</link><pubDate>Wed, 19 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/docker-01/</guid><description>How Docker persists data outside containers: bind mounts vs named and anonymous volumes, how each behaves on mount and removal, and the node_modules trick.</description></item><item><title>K8sPatterns.21 Immutable Configuration</title><link>https://kukie.tech/posts/kubernetes-patterns-21/</link><pubDate>Mon, 17 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-21/</guid><description>설정을 컨테이너 이미지로 굽는다 — Docker 볼륨 연결이 Kubernetes에서 막히는 이유, Init 컨테이너와 emptyDir로 우회하는 법, 그리고 이 번거로운 패턴을 정말 써야 하는 순간.</description></item><item><title>K8sPatterns.20 Configuration Resource</title><link>https://kukie.tech/posts/kubernetes-patterns-20/</link><pubDate>Sat, 15 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-20/</guid><description>설정을 일급 리소스로 — ConfigMap과 Secret의 두 가지 소비 경로(환경 변수/볼륨), 핫 리로드와 드리프트의 명암, Base64가 보안이 아닌 이유, 그리고 immutable까지.</description></item><item><title>K8sPatterns.19 EnvVar Configuration</title><link>https://kukie.tech/posts/kubernetes-patterns-19/</link><pubDate>Wed, 12 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-19/</guid><description>설정 외부화의 가장 단순한 수단, 환경 변수 — 기본값과 런타임 오버라이드 패턴부터 보안 한계와 불변성의 역설까지.</description></item><item><title>K8sPatterns.18.5 Sidecarless &amp; eBPF</title><link>https://kukie.tech/posts/kubernetes-patterns-18-1/</link><pubDate>Mon, 10 Aug 2026 21:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-18-1/</guid><description>Ambassador 패턴은 왜 요즘 잘 안 쓰일까 — 사이드카의 한계에서 출발해 Sidecarless 메시, CNI의 실체, eBPF까지. 하는 일은 그대로인데 프록시의 근무지만 이사 중이라는 이야기.</description></item><item><title>K8sPatterns.18 Ambassador</title><link>https://kukie.tech/posts/kubernetes-patterns-18/</link><pubDate>Mon, 10 Aug 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-18/</guid><description>외부 세계의 복잡함을 내 앱에서 걷어내는 법 — Ambassador 패턴으로 메인 컨테이너가 localhost만 바라보며 비즈니스 로직에 집중하는 방식을 이해한다.</description></item><item><title>K8sPatterns.17 Adapter</title><link>https://kukie.tech/posts/kubernetes-patterns-17/</link><pubDate>Fri, 31 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-17/</guid><description>메인 앱을 건드리지 않고 외부 인터페이스를 통일하는 법 — Adapter 패턴으로 이질적인 컨테이너 시스템이 하나의 표준 얼굴을 갖는 방식을 이해한다.</description></item><item><title>K8sPatterns.16 Sidecar</title><link>https://kukie.tech/posts/kubernetes-patterns-16/</link><pubDate>Wed, 29 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-16/</guid><description>컨테이너를 건드리지 않고 기능을 확장하는 법 — Sidecar 패턴으로 단일 목적 컨테이너들이 Pod 안에서 협력하는 방식을 이해한다.</description></item><item><title>K8sPatterns.14 Self-Awareness</title><link>https://kukie.tech/posts/kubernetes-patterns-14/</link><pubDate>Fri, 24 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-14/</guid><description>앱이 자기 자신의 정보를 알아야 할 때 — Kubernetes Downward API로 Pod 메타데이터를 환경변수와 볼륨 파일로 주입하는 방법.</description></item><item><title>K8sPatterns.13 Service Discovery</title><link>https://kukie.tech/posts/kubernetes-patterns-13/</link><pubDate>Wed, 22 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-13/</guid><description>동적으로 배치되는 Pod를 내부/외부에서 안정적으로 찾아가는 방법 — ClusterIP, NodePort, LoadBalancer, Ingress까지.</description></item><item><title>K8sPatterns.12 Stateful Service</title><link>https://kukie.tech/posts/kubernetes-patterns-12/</link><pubDate>Mon, 20 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-12/</guid><description>고유하고 교체 불가능한 인스턴스로 구성된 스테이트풀 애플리케이션을 Kubernetes에서 운영하는 방법 — StatefulSet, Headless Service, PVC까지.</description></item><item><title>K8sPatterns.11 Stateless Service</title><link>https://kukie.tech/posts/kubernetes-patterns-11/</link><pubDate>Wed, 15 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-11/</guid><description>동일한 일시적 복제본으로 구성된 무상태 애플리케이션을 Kubernetes에서 운영하는 방법 — ReplicaSet, Service, PVC까지.</description></item><item><title>Operating a Kubernetes Cluster: rollout, delete, apply</title><link>https://kukie.tech/posts/k8s-operating-cluster/</link><pubDate>Tue, 14 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/k8s-operating-cluster/</guid><description>kubectl commands that change cluster state — rollout, delete, apply — walked through with a real failed deployment and rollback on a live cluster.</description></item><item><title>Reading a Kubernetes Cluster: config, get, describe, logs</title><link>https://kukie.tech/posts/k8s-kubectl-basics/</link><pubDate>Tue, 14 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/k8s-kubectl-basics/</guid><description>kubectl commands look like a random pile of subcommands until you split them into verbs and nouns — walked through with a real pending pod from a live cluster.</description></item><item><title>K8sPatterns.10 Singleton Service</title><link>https://kukie.tech/posts/kubernetes-patterns-10/</link><pubDate>Mon, 13 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-10/</guid><description>분산 환경에서 단 하나의 인스턴스만 활성화되도록 보장하는 방법 — Out-of-Application Locking부터 분산 락, PodDisruptionBudget까지.</description></item><item><title>K8sPatterns.09 Daemon Service</title><link>https://kukie.tech/posts/kubernetes-patterns-09/</link><pubDate>Fri, 10 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-09/</guid><description>DaemonSet ensures one Pod per node for infra daemons — nodeSelector, scheduling evolution from nodeName to nodeAffinity, and comparison with Static Pods.</description></item><item><title>K8sPatterns.08 Periodic Job</title><link>https://kukie.tech/posts/kubernetes-patterns-08/</link><pubDate>Tue, 07 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-08/</guid><description>Batch Job 패턴에 시간 차원을 더한 CronJob — schedule, concurrencyPolicy, startingDeadlineSeconds까지.</description></item><item><title>K8sPatterns.07 Batch Job</title><link>https://kukie.tech/posts/kubernetes-patterns-07/</link><pubDate>Mon, 06 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-07/</guid><description>격리된 원자적 작업 단위를 안정적으로 실행하기 위한 Job 리소스 — completions, parallelism, Indexed Job까지.</description></item><item><title>K8sPatterns.06 Automated Placement</title><link>https://kukie.tech/posts/kubernetes-patterns-06/</link><pubDate>Thu, 02 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-06/</guid><description>How the Kubernetes scheduler assigns Pods to nodes using predicates, priorities, node affinity, pod affinity, taints and tolerations for optimal placement.</description></item><item><title>K8sPatterns.05 Managed Lifecycle</title><link>https://kukie.tech/posts/kubernetes-patterns-05/</link><pubDate>Wed, 01 Jul 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-05/</guid><description>How Kubernetes communicates lifecycle events to containers via SIGTERM, SIGKILL, postStart, preStop hooks, and init containers for graceful startup and shutdown.</description></item><item><title>K8sPatterns.04 Health Probe Pattern</title><link>https://kukie.tech/posts/kubernetes-patterns-04/</link><pubDate>Mon, 29 Jun 2026 09:00:00 +0900</pubDate><guid>https://kukie.tech/posts/kubernetes-patterns-04/</guid><description>A deep dive into Kubernetes Health Probe pattern: Process Health Check, Liveness Probe, and Readiness Probe for building self-healing cloud-native applications.</description></item></channel></rss>