{"@attributes":{"version":"2.0"},"channel":{"title":"> \/tmp","link":"https:\/\/jiwonaid.github.io\/","description":"Recent content on > \/tmp","generator":"Hugo -- gohugo.io","language":"ko-kr","lastBuildDate":"Thu, 03 Oct 2024 17:47:03 +0900","item":[{"title":"The eXpress Data Path (XDP) at a Glance","link":"https:\/\/jiwonaid.github.io\/posts\/xpd\/","pubDate":"Thu, 03 Oct 2024 17:47:03 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/xpd\/","description":"Table of Contents What is XDP [1]?\nHow does XDP work?\nWhere can I start?\nResult\nFuther reading and references\nWhat is XDP?   The kernel subsystems making use of BPF [2], [3].\n  The kernel bypass techniques, where a userspace application takes complete control of the networking hardware to avoid expensive context switches between kernel and userspace.\n  In XDP, the operating system kernel itself provides a safe execution environment for custom packet processing applications, executed in device driver context."},{"title":"Linux Kernel Dev Env Configuration For BPF","link":"https:\/\/jiwonaid.github.io\/posts\/linux-kernel-dev-env-conf-for-bpf\/","pubDate":"Thu, 03 Oct 2024 16:51:27 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/linux-kernel-dev-env-conf-for-bpf\/","description":"Prerequisite Linux Kernel Dev Env Configuration\nLinux Kernel Dev Env Configuration For BPF # Ref. https:\/\/docs.cilium.io\/en\/latest\/bpf\/toolchain\/#development-tools sudo apt-get install -y make gcc libssl-dev bc libelf-dev libcap-dev \\  clang gcc-multilib llvm libncurses5-dev git pkg-config libmnl-dev bison flex \\  graphviz # CONFIG_CGROUP_BPF=y # CONFIG_BPF=y # CONFIG_BPF_SYSCALL=y # CONFIG_NET_SCH_INGRESS=m # CONFIG_NET_CLS_BPF=m # CONFIG_NET_CLS_ACT=y # CONFIG_BPF_JIT=y # CONFIG_LWTUNNEL_BPF=y # CONFIG_HAVE_EBPF_JIT=y # CONFIG_BPF_EVENTS=y # CONFIG_TEST_BPF=m sudo apt-get install dwarves # CONFIG_DEBUG_INFO_BTF=y sudo apt-get install lld g++ python3-docutils Fun Facts ELF  In computing, the Executable and Linkable Format[2] (ELF, formerly named Extensible Linking Format) is a common standard file format for executable files, object code, shared libraries, and core dumps."},{"title":"WSL 2 VPN not working or no internet","link":"https:\/\/jiwonaid.github.io\/posts\/wsl\/","pubDate":"Sat, 06 Jan 2024 22:59:06 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/wsl\/","description":"Create .wslconfig and shutdown PS C:\\Users\\jiwonaid&gt; cat C:\\Users\\jiwonaid\\.wslconfig [wsl2] networkingMode=mirrored PS C:\\Users\\jiwonaid&gt; wsl --shutdown ref.\n  .wslconfig\n  Mirrored mode networking\n  P.S.\n DNS Tunneling  "},{"title":"DevOps Troubleshooting","link":"https:\/\/jiwonaid.github.io\/posts\/dt\/","pubDate":"Sat, 23 Jul 2022 15:52:11 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/dt\/","description":"Note: \ubcf8 \ubb38\uc11c\ub294 '\ub370\ube0c\uc635\uc2a4 - \uce74\uc77c \ub79c\ud0a8 \uc800'\uc758 cheat sheet\ub85c, \ubcf4\ub2e4 \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ucc45\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. 01\uc7a5 \ubb38\uc81c \ud574\uacb0 \uc6b0\uc218\uc0ac\ub840 02\uc7a5 \uc65c \uc11c\ubc84\uac00 \uc774\ub807\uac8c \ub290\ub9ac\uc9c0? CPU, RAM \uadf8\ub9ac\uace0 \ub514\uc2a4\ud06c I\/O\uc758 \uc790\uc6d0 \uace0\uac08 \ubd80\ud558 \ubb38\uc81c \uc9c4\ub2e8 CPU, RAM, \ub514\uc2a4\ud06c I\/O \uc21c\uc73c\ub85c \ud655\uc778\ntop iotop \ubd80\ud558 \ubb38\uc81c \ud574\uacb0\ud558\uae30 sysstat 03\uc7a5 \uc65c \uc2dc\uc2a4\ud15c\uc774 \ubd80\ud305\ub418\uc9c0 \uc54a\uc744\uae4c? \ubd80\ud305 \ubb38\uc81c \ud574\uacb0\ud558\uae30 \ub9ac\ub205\uc2a4 \ubd80\ud305 \uacfc\uc815   \ubc14\uc774\uc624\uc2a4\n  \ubd80\ud2b8 \ub85c\ub354(GRUB)\n  initrd\n  \/sbin\/init(systemd)"},{"title":"Materials","link":"https:\/\/jiwonaid.github.io\/posts\/materials\/","pubDate":"Tue, 21 Jun 2022 22:09:32 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/materials\/","description":"HTTP: The Protocol Every Web Developer Must Know\u2014Part 1\nHTTP: The Protocol Every Web Developer Must Know\u2014Part 2\nBig-O Cheat Sheet\nGoogle Style Guides\nHigh Performance Browser Networking\n Prepare for Your Google Interview: Systems Design\nSystem Design Interview\nAnatomy of a System Design Interview"},{"title":"runcontainer","link":"https:\/\/jiwonaid.github.io\/posts\/runcontainer\/","pubDate":"Sun, 05 Jun 2022 19:40:18 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/runcontainer\/","description":"Subtitle: runc and container Learning Containers From The Bottom Up\n  Does a Container Image Have an OS Inside\n  Container Networking Is Simple!\n  Containers vs. Pods - Taking a Deeper Look\n  What Is a Standard Container (2021 edition)\n  "},{"title":"Golang Build Tools","link":"https:\/\/jiwonaid.github.io\/posts\/golang-build-tools\/","pubDate":"Tue, 01 Feb 2022 16:20:07 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/golang-build-tools\/","description":"\ubd80\uc81c: golang \ud504\ub85c\uc81d\ud2b8\ub97c \ube4c\ub4dc\ud558\ub294 \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \uc548\ub0b4\uc11c (Happy Hacking\ud558\uc9c0\ub9cc make\ub85c \ube4c\ub4dc\ud558\uace0 \uc2f6\uc9c0 \uc54a\uc740 \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \uc548\ub0b4\uc11c) golang \ud504\ub85c\uc81d\ud2b8 \ube4c\ub4dc\uc5d0 \uc5b4\ub5a4 \ud234\uc774 \uc88b\uc744\uae4c\uc694? \uc815\ud574\uc9c4 \ub2f5\uc740 \uc5c6\uc9c0\ub9cc \uc624\ub298\uc740\n  \uac04\ud3b8\ud558\uac8c \ube4c\ub4dc\uc640 \ub9b4\ub9ac\uc2a4\uac00 \uac00\ub2a5\ud55c GoReleaser\n  \uac04\ud3b8\ud558\uac8c \uc774\ubbf8\uc9c0\ub97c \ube4c\ub4dc\ud558\uace0 \ud478\uc2dc\ud560 \uc218 \uc788\ub294 ko\n  &ldquo;\uc7ac\ud604 \uac00\ub2a5\ud558\uace0 \uc774\uc2dd\uc131\uc774 \ub6f0\uc5b4\ub098\uc11c \uac1c\ubc1c\uc790\uac00 \ucf54\ub4dc \uc791\uc131\uc5d0 \uc9d1\uc911\ud558\uac8c \ud574\uc8fc\uc9c0\ub9cc \ub3c4\uc785\ud558\ub294\ub370 \ub178\ub825\uc774 \ud544\uc694\ud55c&rdquo; \uad6c\uae00\uc758 Bazel\n  \uc704 \uc138 \uac00\uc9c0 \ub3c4\uad6c\uc5d0 \ub300\ud574 \uc54c\uc544\ubcf4\uaca0\uc2b5\ub2c8\ub2e4.\n1. golang \ud504\ub85c\uc81d\ud2b8 \uc900\ube44 Note: \uc9c0\uae08\ubd80\ud130 \ucf54\ub4dc \ube14\ub7ed\uc758 &lsquo;jiwonaid&rsquo;\uc5d0 \uc720\uc758\ud574 \uc8fc\uc138\uc694."},{"title":"Kubernetes Multi-tenancy","link":"https:\/\/jiwonaid.github.io\/posts\/km\/","pubDate":"Thu, 20 Jan 2022 16:25:34 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/km\/","description":"\ubd80\uc81c: Namespaces as a Service\ub97c \uc81c\uacf5\ud574\uc57c \ub204\uad70\uac00\uac00 \ub5a0\uba39\uc5ec\uc92c\uc73c\uba74 \ud558\ub294 \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \uc815\ub9ac\nIntroduction \ud074\ub7ec\uc2a4\ud130\ub97c \ud558\ub098\uc529 \ub098\ub204\uc5b4\uc8fc\uba74 \ube44\uc6a9, scale out, \uc790\uc6d0\uc758 \ud6a8\uc728\uc131 \ub4f1\uc5d0\uc11c \ubb38\uc81c\uac00 \ubc1c\uc0dd\ud569\ub2c8\ub2e4.\n\uac00\uc7a5 \ube60\ub978 \ud574\uacb0 \ubc29\ubc95\uc740 \uc544\ub798\uc640 \uac19\uc774 \ud558\ub098\uc758 \ud074\ub7ec\uc2a4\ud130\ub97c \ub124\uc784\uc2a4\ud398\uc774\uc2a4\ub85c \ub098\ub204\uc5b4\uc11c \uc5ec\ub7ec tenant\ub4e4\uc5d0\uac8c \ub098\ub204\uc5b4 \uc8fc\ub294 \uac83\uc785\ub2c8\ub2e4.\n\uc774\ub97c \ud1b5\ud574\uc11c \uc5ec\ub7ec \uc0ac\uc6a9\uc790\uac00 \ubd84\ub9ac\ub41c \ud658\uacbd\uc5d0\uc11c \uacf5\ud3c9\ud558\uac8c \ud558\ub098\uc758 \ud074\ub7ec\uc2a4\ud130\ub97c \ub098\ub204\uc5b4 \uc4f8 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\nCheckList \uc911\uc694 \ud56d\ubaa9\uc744 [ ]\ub85c \ud45c\uae30\ud588\uc2b5\ub2c8\ub2e4.\nAccess Control\n- [ ] Authentication: IAM - [ ] Authorization: RBAC \ud14c\ub10c\ud2b8 \uad00\ub9ac\uc790(\ub124\uc784\uc2a4\ud398\uc774\uc2a4 \uad00\ub9ac\uc790), \ud14c\ub10c\ud2b8 \uac1c\ubc1c\uc790(\ub124\uc784\uc2a4\ud398\uc774\uc2a4 \uad00\ub9ac\uc790, \ub124\uc784\uc2a4\ud398\uc774\uc2a4 \ubdf0\uc5b4), https:\/\/cloud."},{"title":"Hello RabbitMQ Go","link":"https:\/\/jiwonaid.github.io\/posts\/rmq\/","pubDate":"Mon, 03 Jan 2022 12:39:55 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/rmq\/","description":"https:\/\/www.rabbitmq.com\/tutorials\/tutorial-one-go.html\nIntroduction Producer: A program that sends messages.\nBroker(Exchange+Binding+Queue): A queue is essentially a large message buffer and bound by the host&rsquo;s memory &amp; disk limits.\nConsumer: A program that mostly waits to receive messages.\nInstallation brew install rabbitmq go get github.com\/streadway\/amqp Sending(Producer) \/\/ https:\/\/github.com\/rabbitmq\/rabbitmq-tutorials\/blob\/master\/go\/send.go package main import ( &quot;log&quot; &quot;github.com\/streadway\/amqp&quot; ) func failOnError(err error, msg string) { if err != nil { log.Panicf(&quot;%s: %s&quot;, msg, err) } } func main() { conn, err := amqp."},{"title":"The Kubebuilder Quick Start","link":"https:\/\/jiwonaid.github.io\/posts\/kqs\/","pubDate":"Tue, 14 Dec 2021 19:42:02 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/kqs\/","description":"\uce7c\ub05d\uc5d0 \uc120 \uac1c\ubc1c\uc790\ub97c \uc704\ud55c Note\n\uc624\ud37c\ub808\uc774\ud130 \uae30\ubcf8 \uac1c\ub150: http:\/\/www.kyobobook.co.kr\/product\/detailViewKor.laf?ejkGb=KOR&amp;mallGb=KOR&amp;barcode=9791161754789&amp;orderClick=LAG&amp;Kc=\n \ud55c \uc904 \uc694\uc57d: \uc624\ud37c\ub808\uc774\ud130\ub294 CRD\uc640 \ub3d9\uc791(controller&rsquo;s reconciling)\uc73c\ub85c \uad6c\uc131\ub418\uba70 \ud074\ub7ec\uc2a4\ud130\uc758 \uc0c1\ud0dc\ub97c \uc120\uc5b8\ub41c \ud615\uc0c1\uc73c\ub85c \ub9de\ucdb0\ub098\uac00\uae30 \uc704\ud55c \ub3d9\uc791\uc744 \ubc18\ubcf5\ud55c\ub2e4.  \uc624\ud37c\ub808\uc774\ud130 \uac1c\ubc1c \ub3c4\uad6c: https:\/\/book.kubebuilder.io\/\n \ud55c \uc904 \uc694\uc57d: kube-controller-manager\uac00 \uc5ec\ub7ec kubernetes \ub124\uc774\ud2f0\ube0c \ucee8\ud2b8\ub864\ub7ec\ub4e4\uc744 \uad00\ub9ac\ud558\ub294 \uac83\uacfc \uac19\uc774 manager\uc5d0 \uc5ec\ub7ec \ucee8\ud2b8\ub864\ub7ec\ub4e4\uc744 \ucd94\uac00\ud560 \uc218 \uc788\ub294 controller-runtime \uae30\ubc18\uc758 \ub3c4\uad6c  \uc624\ud37c\ub808\uc774\ud130 best practices \uac1c\uc694: https:\/\/github.com\/cncf\/tag-app-delivery\/blob\/main\/operator-wg\/whitepaper\/Operator-WhitePaper_v1-0.md#emerging-patterns-of-the-future\nInstallation brew install kubebuilder Create a Project mkdir guestbook cd guestbook kubebuilder init --domain my."},{"title":"Tilt at Dev Env","link":"https:\/\/jiwonaid.github.io\/posts\/tilt\/","pubDate":"Tue, 07 Dec 2021 21:48:35 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/tilt\/","description":"\ubd80\uc81c: \uac1c\ubc1c \ud658\uacbd\uc744 \uad6c\ucd95\ud558\ub824\uace0 \uc560\uc4f0\ub2e4.\n\ubaa9\ucc28 Tilt\ub780?\nUsing k8s with Tilt\nUsing Helm with Tilt\n\ucc38\uace0\nTilt\ub780?  &ldquo;value \ubcc0\uacbd, helm chart \ubcc0\uacbd\uc774 \ub108\ubb34 \ubd88\ud3b8\ud569\ub2c8\ub2e4.&rdquo;\n \uc77c\ubc18\uc801\uc73c\ub85c \ucfe0\ubc84\ub124\ud2f0\uc2a4\uc5d0 \ubc30\ud3ec\ud558\ub294 \uac83\uc740\n  \ucf54\ub4dc \uc791\uc131\n  \ub3c4\ucee4 \uc774\ubbf8\uc9c0 \ube4c\ub4dc\n  \uc774\ubbf8\uc9c0 \ub808\uc9c0\uc2a4\ud2b8\ub9ac \ud478\uc2dc\n  \ucfe0\ubc84\ub124\ud2f0\uc2a4 \ud31f \uc0dd\uc131\n  \uc744 \ubc18\ubcf5\ud558\ub294 \uac83\uc778\ub370 \uc870\uae08 \ub354 \ud3b8\ud558\uac8c \ubc30\ud3ec\ud560 \uc218\ub294 \uc5c6\uc744\uae4c\uc694?\ntilt up # Tilt Control Loop\uac00 \uac1c\ubc1c \ud658\uacbd\uc744 \uac31\uc2e0\ud558\uac8c \ud558\ub294 \uba85\ub839\uc5b4 \uc744 \uc0ac\uc6a9\ud558\uba74"},{"title":"\ub9ac\ub205\uc2a4 \ucee4\ub110 \uc774\uc57c\uae30","link":"https:\/\/jiwonaid.github.io\/posts\/lks\/","pubDate":"Sat, 09 Oct 2021 22:22:54 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/lks\/","description":"Note: \ubcf8 \ubb38\uc11c\ub294 '\ub9ac\ub205\uc2a4 \ucee4\ub110 \uc774\uc57c\uae30 - \uac15\uc9c4\uc6b0 \uc800'\uc640 \uba87\uba87 \ub9c1\ud06c\ub4e4\uc744 \ucc38\uace0\ud55c cheat sheet\ub85c, \ucee4\ub110\uc758 \ub3d9\uc791 \ubc29\uc2dd\uc774\ub098 \ud30c\ub77c\ubbf8\ud130\uc5d0 \ub300\ud55c \ubcf4\ub2e4 \uc790\uc138\ud55c \ub0b4\uc6a9\uc740 \ucc45\uc5d0\uc11c \ucc3e\uc544\ubcf4\uc2e4 \uc218 \uc788\uc2b5\ub2c8\ub2e4. 1\uc7a5 \uc2dc\uc2a4\ud15c \uad6c\uc131 \uc815\ubcf4 \ud655\uc778\ud558\uae30 uname -a # \ucee4\ub110 \uc815\ubcf4 \ucd9c\ub825 dmesg # \ucee4\ub110 ring buffer \uba54\uc138\uc9c0 \ucd9c\ub825 dmidecode -t # \ud558\ub4dc\uc6e8\uc5b4 \uc815\ubcf4 \ucd9c\ub825 lscpu cat \/proc\/cpuinfo # cpu \uc815\ubcf4 \ucd9c\ub825 free -m # \uba54\ubaa8\ub9ac \uc815\ubcf4 \ucd9c\ub825 df -h # \ub514\uc2a4\ud06c \uc815\ubcf4 \ucd9c\ub825 ethtool eth0 # \ub124\ud2b8\uc6cc\ud06c \uce74\ub4dc \uc815\ubcf4 \ucd9c\ub825 2\uc7a5 top\uc744 \ud1b5\ud574 \uc0b4\ud3b4\ubcf4\ub294 \ud504\ub85c\uc138\uc2a4 \uc815\ubcf4\ub4e4 pstree -a ps aux top # \ud504\ub85c\uc138\uc2a4 \uc815\ubcf4 \ucd9c\ub825 3\uc7a5 Load Average\uc640 \uc2dc\uc2a4\ud15c \ubd80\ud558 uptime cat \/proc\/loadavg vmstat cat \/proc\/sched_debug # \uac00\uc0c1 \uba54\ubaa8\ub9ac \uc815\ubcf4 \ucd9c\ub825 4\uc7a5 free \uba85\ub839\uc774 \uc228\uae30\uace0 \uc788\ub294 \uac83\ub4e4 free -m cat \/proc\/meminfo 5\uc7a5 swap, \uba54\ubaa8\ub9ac \uc99d\uc124\uc758 \ud3ec\uc778\ud2b8 free -m smem -t 6\uc7a5 NUMA, \uba54\ubaa8\ub9ac \uad00\ub9ac\uc758 \uc0c8\ub85c\uc6b4 \uc138\uacc4 7\uc7a5 TIME_WAIT \uc18c\ucf13\uc774 \uc11c\ube44\uc2a4\uc5d0 \ubbf8\uce58\ub294 \uc601\ud5a5 netstat -napo # \ub124\ud2b8\uc6cc\ud06c \uc815\ubcf4 \ucd9c\ub825 8\uc7a5 TCP Keepalive\ub97c \uc774\uc6a9\ud55c \uc138\uc158 \uc720\uc9c0 9\uc7a5 TCP \uc7ac\uc804\uc1a1\uacfc \ud0c0\uc784\uc544\uc6c3 ss -i # \uc18c\ucf13 \uc815\ubcf4 \ucd9c\ub825 10\uc7a5 dirty page\uac00 I\/O\uc5d0 \ub07c\uce58\ub294 \uc601\ud5a5 11\uc7a5 I\/O \uc791\uc5c5\uc774 \uc9c0\ub098\uac00\ub294 \uad00\ubb38, I\/O \uc2a4\ucf00\uc904\ub7ec iostat iotop -P # I\/O \uc0ac\uc6a9\ub7c9 \uc815\ubcf4 \ucd9c\ub825 12\uc7a5 \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc131\ub2a5 \uce21\uc815\uacfc \ud29c\ub2dd - \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \uc6cc\ucee4 \uc218\ub97c cpu \ucf54\uc5b4 \uc218 \uc774\uc0c1\uc73c\ub85c \uc124\uc815 - \ucee4\ub125\uc158 \ud480 \ubc29\uc2dd\uacfc keepalive \uc635\uc158 \ub4f1\uc744 \uc774\uc6a9\ud574\uc11c TCP TIME_WAIT \uc18c\ucf13\uc744 \uc904\uc784 Appendix A \ucee4\ub110 \ub514\ubc84\uae45\uc744 \uc704\ud55c \ucee4\ub110 \ucef4\ud30c\uc77c Appendix B strace\ub97c \ud1b5\ud55c \uc560\ud50c\ub9ac\ucf00\uc774\uc158 \ubd84\uc11d strace -s 65535 -f -T -tt # -p &lt;pid&gt; Appendix C tcpdump\uc640 \uc640\uc774\uc5b4\uc0e4\ud06c\ub97c \ud1b5\ud55c TCP \ud328\ud0b7 \ubd84\uc11d tcpdump -vvv -nn -A host &lt;IP&gt; and port &lt;port&gt; dropwatch Reference http:\/\/devo."},{"title":"Create a Blog with Github Pages and Actions","link":"https:\/\/jiwonaid.github.io\/posts\/create-blog-github\/","pubDate":"Sat, 18 Sep 2021 17:16:24 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/create-blog-github\/","description":"\ubd80\uc81c: \uae43\ud5d9 \ube14\ub85c\uadf8\ub97c \uae43\ud5d9 \uc561\uc158\uc73c\ub85c \ubc30\ud3ec\ud558\ub294 \ubc29\ubc95 \uac1c\ubc1c\uc790\ub294 \ube14\ub85c\uadf8\ub97c \uc2dc\uc791\ud588\ub2e4! \ud6a8\uacfc\ub294 \ubbf8\ubbf8\ud588\ub2e4.. Note: \ubcf8 \ubb38\uc11c\ub294 \uc774\ubbf8 \uae43\ud5d9 \ud398\uc774\uc9c0\ub85c \ube14\ub85c\uadf8\ub97c \uc81c\uc791\ud55c \uc0ac\ub78c\uc744 \ub300\uc0c1\uc73c\ub85c \ud569\ub2c8\ub2e4. \uac1c\ubc1c\uc790\ub77c\uba74 \uae30\uc220 \ube14\ub85c\uadf8 \ud558\ub098\ucbe4 \uc788\uc5b4\uc57c \ud558\uae30\uc5d0 \uc5f4\uc2ec\ud788 \uc815\uc801 \uc0ac\uc774\ud2b8 \uc0dd\uc131\uae30\ub97c \uace0\ub974\uace0 \ub098\uba74 \ubc30\ud3ec\ubd80\ud130 \uadc0\ucc2e\uc544\uc9c0\ub294 \ub2f9\uc2e0\uc744 \uc704\ud55c Github Actions \uc548\ub0b4\uc11c\nGithub Actions \ucc98\uc74c \ube14\ub85c\uadf8\ub97c \uc0dd\uc131\ud558\uace0 \ubc30\ud3ec\ub97c \uc5ec\ub7ec \ubc88 \ubc18\ubcf5\ud558\ub2e4 \ubcf4\uba74 \uc774\ub0b4 \uc790\ub3d9\ud654\uc5d0 \ub300\ud55c \uc695\uad6c\uac00 \uc0d8\uc19f\uac8c \ub429\ub2c8\ub2e4.\n\ubb3c\ub860 \uac00\uc7a5 \uc9c1\uad00\uc801\uc778 \ubc29\ubc95\uc740 \ud734\uba3c \uc624\ud37c\ub808\uc774\ud130\ub098 \ud06c\ub860\uc7a1\uc744 \uc0ac\uc6a9\ud558\ub294 \uac83\uc785\ub2c8\ub2e4.\n\ud639\uc2dc \ub354 \uc88b\uc740 \ubc29\ubc95(\ubb34\ub8cc)\uc740 \uc5c6\uc744\uae4c\uc5d0 \ub300\ud574 \uace0\ubbfc\ud558\ub2e4 \ubcf4\uba74 \uc774\ub0b4 \ubc30\ud3ec\ub97c \uc704\ud55c compute \ub9ac\uc18c\uc2a4\uac00 \ud544\uc694\ud558\ub2e4\ub294 \uac83\uc744 \uc54c\uac8c \ub429\ub2c8\ub2e4."},{"title":"Linux Kernel Dev Env Configuration","link":"https:\/\/jiwonaid.github.io\/posts\/linux-kernel-dev-env-conf\/","pubDate":"Thu, 02 Sep 2021 22:07:46 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/linux-kernel-dev-env-conf\/","description":"Host sudo apt install snapd # https:\/\/multipass.run\/docs\/installing-on-linux sudo snap install multipass # https:\/\/multipass.run\/docs\/using-libvirt sudo apt install libvirt-daemon-system sudo snap connect multipass:libvirt sudo multipass stop --all sudo multipass set local.driver=libvirt # https:\/\/multipass.run\/docs\/launch-command sudo multipass launch -n mp # Check libvirt virsh console mp Guest vi \/etc\/default\/grub GRUB_DEFAULT=3 GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT=3 update-grub2 # https:\/\/kernelnewbies.org\/KernelBuild sudo apt-get install libncurses5-dev gcc make git exuberant-ctags bc libssl-dev flex bison libelf-dev git clone https:\/\/kernel.googlesource.com\/pub\/scm\/linux\/kernel\/git\/netdev\/net-next.git cd net-next cp \/boot\/config-`uname -r`* ."},{"title":"cloud-init User-Data Script Re-run","link":"https:\/\/jiwonaid.github.io\/posts\/cloud-init-user-data-script-re-run\/","pubDate":"Thu, 05 Aug 2021 22:55:27 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/cloud-init-user-data-script-re-run\/","description":"User-Data Script\uc758 \ub3d9\uc791 \ubc29\uc2dd \uc624\ud508\uc2a4\ud0dd ubuntu \uc774\ubbf8\uc9c0\ub97c \uae30\uc900\uc73c\ub85c \uc791\uc131\n1.\uc0ac\uc6a9\uc790\uac00 metadata service\ub098 config drive\uc5d0 \ub370\uc774\ud130\uc640 \uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc81c\uacf5\ud55c\ub2e4.\n2.cloud-init\uc774 VM\uc774 \uc624\ud508\uc2a4\ud0dd\uc774\ub77c\ub294 \uac83\uc744 discovery\ud55c\ub2e4.\n3.cloud-init\uc774 \uc9c0\uc815\ub41c metadata_urls(default: [\u2019http:\/\/169.254.169.254\u2019])\uc5d0 \uc811\uadfc\ud55c\ub2e4.\n4.cloud-init -&gt; neutron-metadata-agent -&gt; nova-api -&gt; Meta-Data, User-Data\uc5d0\uc11c \uc815\ubcf4\ub97c \ubc1b\uc544\uc624\uace0\n5.\uc774 \uc815\ubcf4\ub294 \/var\/lib\/cloud\/instances(-&gt; \/var\/lib\/cloud\/instance \uc2ec\ubcfc\ub9ad \ub9c1\ud06c)\uc5d0 \uc800\uc7a5\ub41c\ub2e4.\n6.\uc774\uc911 \uc0ac\uc6a9\uc790 \uc2a4\ud06c\ub9bd\ud2b8\uc758 \uacbd\uc6b0 cloud-init\uc758 boot stage\uc778\n Generator Local Network Config Final  \uc911 5\ubc88\uc758 cloud-final.service\uc5d0\uc11c \ub3d9\uc791\uc744 \ud558\ub294 \uad6c\uc870\uc774\ub2e4.\ndeploy@vm-instance:~$ systemctl cat cloud-init.target # \/lib\/systemd\/system\/cloud-init.target # cloud-init target is enabled by cloud-init-generator # To disable it you can either: # a."},{"title":"My First Post","link":"https:\/\/jiwonaid.github.io\/posts\/my-first-post\/","pubDate":"Thu, 22 Jul 2021 20:03:08 +0900","guid":"https:\/\/jiwonaid.github.io\/posts\/my-first-post\/","description":"\ub0b4 \uccab \uac8c\uc2dc\uae00"},{"title":"About","link":"https:\/\/jiwonaid.github.io\/about\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/jiwonaid.github.io\/about\/","description":"Work on cloud computing services (Linux, Kubernetes, and OpenStack). Have an interest in open source cloud computing technologies like Agones.\n(more)"},{"title":"Adamantium","link":"https:\/\/jiwonaid.github.io\/adamantium\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/jiwonaid.github.io\/adamantium\/","description":"2026-03-27 00:00:00 VOO ETF\uc758 \uc885\uac00\uc640 \uc885\uac00\uc758 3, 5, 10\uc77c \uc774\ub3d9\ud3c9\uade0\uc744 \ube44\uad50\ud569\ub2c8\ub2e4."}]}}