-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.xml
executable file
·244 lines (208 loc) · 16.7 KB
/
index.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>> /tmp</title>
<link>https://jiwonaid.github.io/</link>
<description>Recent content on > /tmp</description>
<generator>Hugo -- gohugo.io</generator>
<language>ko-kr</language>
<lastBuildDate>Thu, 03 Oct 2024 17:47:03 +0900</lastBuildDate><atom:link href="https://jiwonaid.github.io/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>The eXpress Data Path (XDP) at a Glance</title>
<link>https://jiwonaid.github.io/posts/xpd/</link>
<pubDate>Thu, 03 Oct 2024 17:47:03 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/xpd/</guid>
<description>Table of Contents What is XDP [1]?
How does XDP work?
Where can I start?
Result
Futher reading and references
What is XDP? The kernel subsystems making use of BPF [2], [3].
The kernel bypass techniques, where a userspace application takes complete control of the networking hardware to avoid expensive context switches between kernel and userspace.
In XDP, the operating system kernel itself provides a safe execution environment for custom packet processing applications, executed in device driver context.</description>
</item>
<item>
<title>Linux Kernel Dev Env Configuration For BPF</title>
<link>https://jiwonaid.github.io/posts/linux-kernel-dev-env-conf-for-bpf/</link>
<pubDate>Thu, 03 Oct 2024 16:51:27 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/linux-kernel-dev-env-conf-for-bpf/</guid>
<description>Prerequisite Linux Kernel Dev Env Configuration
Linux 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.</description>
</item>
<item>
<title>WSL 2 VPN not working or no internet</title>
<link>https://jiwonaid.github.io/posts/wsl/</link>
<pubDate>Sat, 06 Jan 2024 22:59:06 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/wsl/</guid>
<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.
.wslconfig
Mirrored mode networking
P.S.
DNS Tunneling </description>
</item>
<item>
<title>DevOps Troubleshooting</title>
<link>https://jiwonaid.github.io/posts/dt/</link>
<pubDate>Sat, 23 Jul 2022 15:52:11 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/dt/</guid>
<description>Note: 본 문서는 '데브옵스 - 카일 랜킨 저'의 cheat sheet로, 보다 자세한 내용은 책에서 찾아보실 수 있습니다. 01장 문제 해결 우수사례 02장 왜 서버가 이렇게 느리지? CPU, RAM 그리고 디스크 I/O의 자원 고갈 부하 문제 진단 CPU, RAM, 디스크 I/O 순으로 확인
top iotop 부하 문제 해결하기 sysstat 03장 왜 시스템이 부팅되지 않을까? 부팅 문제 해결하기 리눅스 부팅 과정 바이오스
부트 로더(GRUB)
initrd
/sbin/init(systemd)</description>
</item>
<item>
<title>Materials</title>
<link>https://jiwonaid.github.io/posts/materials/</link>
<pubDate>Tue, 21 Jun 2022 22:09:32 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/materials/</guid>
<description>HTTP: The Protocol Every Web Developer Must Know—Part 1
HTTP: The Protocol Every Web Developer Must Know—Part 2
Big-O Cheat Sheet
Google Style Guides
High Performance Browser Networking
Prepare for Your Google Interview: Systems Design
System Design Interview
Anatomy of a System Design Interview</description>
</item>
<item>
<title>runcontainer</title>
<link>https://jiwonaid.github.io/posts/runcontainer/</link>
<pubDate>Sun, 05 Jun 2022 19:40:18 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/runcontainer/</guid>
<description>Subtitle: runc and container Learning Containers From The Bottom Up
Does a Container Image Have an OS Inside
Container Networking Is Simple!
Containers vs. Pods - Taking a Deeper Look
What Is a Standard Container (2021 edition)
</description>
</item>
<item>
<title>Golang Build Tools</title>
<link>https://jiwonaid.github.io/posts/golang-build-tools/</link>
<pubDate>Tue, 01 Feb 2022 16:20:07 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/golang-build-tools/</guid>
<description>부제: golang 프로젝트를 빌드하는 개발자를 위한 안내서 (Happy Hacking하지만 make로 빌드하고 싶지 않은 개발자를 위한 안내서) golang 프로젝트 빌드에 어떤 툴이 좋을까요? 정해진 답은 없지만 오늘은
간편하게 빌드와 릴리스가 가능한 GoReleaser
간편하게 이미지를 빌드하고 푸시할 수 있는 ko
&ldquo;재현 가능하고 이식성이 뛰어나서 개발자가 코드 작성에 집중하게 해주지만 도입하는데 노력이 필요한&rdquo; 구글의 Bazel
위 세 가지 도구에 대해 알아보겠습니다.
1. golang 프로젝트 준비 Note: 지금부터 코드 블럭의 &lsquo;jiwonaid&rsquo;에 유의해 주세요.</description>
</item>
<item>
<title>Kubernetes Multi-tenancy</title>
<link>https://jiwonaid.github.io/posts/km/</link>
<pubDate>Thu, 20 Jan 2022 16:25:34 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/km/</guid>
<description>부제: Namespaces as a Service를 제공해야 누군가가 떠먹여줬으면 하는 개발자를 위한 정리
Introduction 클러스터를 하나씩 나누어주면 비용, scale out, 자원의 효율성 등에서 문제가 발생합니다.
가장 빠른 해결 방법은 아래와 같이 하나의 클러스터를 네임스페이스로 나누어서 여러 tenant들에게 나누어 주는 것입니다.
이를 통해서 여러 사용자가 분리된 환경에서 공평하게 하나의 클러스터를 나누어 쓸 수 있습니다.
CheckList 중요 항목을 [ ]로 표기했습니다.
Access Control
- [ ] Authentication: IAM - [ ] Authorization: RBAC 테넌트 관리자(네임스페이스 관리자), 테넌트 개발자(네임스페이스 관리자, 네임스페이스 뷰어), https://cloud.</description>
</item>
<item>
<title>Hello RabbitMQ Go</title>
<link>https://jiwonaid.github.io/posts/rmq/</link>
<pubDate>Mon, 03 Jan 2022 12:39:55 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/rmq/</guid>
<description>https://www.rabbitmq.com/tutorials/tutorial-one-go.html
Introduction Producer: A program that sends messages.
Broker(Exchange+Binding+Queue): A queue is essentially a large message buffer and bound by the host&rsquo;s memory &amp; disk limits.
Consumer: A program that mostly waits to receive messages.
Installation 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.</description>
</item>
<item>
<title>The Kubebuilder Quick Start</title>
<link>https://jiwonaid.github.io/posts/kqs/</link>
<pubDate>Tue, 14 Dec 2021 19:42:02 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/kqs/</guid>
<description>칼끝에 선 개발자를 위한 Note
오퍼레이터 기본 개념: http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&amp;mallGb=KOR&amp;barcode=9791161754789&amp;orderClick=LAG&amp;Kc=
한 줄 요약: 오퍼레이터는 CRD와 동작(controller&rsquo;s reconciling)으로 구성되며 클러스터의 상태를 선언된 형상으로 맞춰나가기 위한 동작을 반복한다. 오퍼레이터 개발 도구: https://book.kubebuilder.io/
한 줄 요약: kube-controller-manager가 여러 kubernetes 네이티브 컨트롤러들을 관리하는 것과 같이 manager에 여러 컨트롤러들을 추가할 수 있는 controller-runtime 기반의 도구 오퍼레이터 best practices 개요: https://github.com/cncf/tag-app-delivery/blob/main/operator-wg/whitepaper/Operator-WhitePaper_v1-0.md#emerging-patterns-of-the-future
Installation brew install kubebuilder Create a Project mkdir guestbook cd guestbook kubebuilder init --domain my.</description>
</item>
<item>
<title>Tilt at Dev Env</title>
<link>https://jiwonaid.github.io/posts/tilt/</link>
<pubDate>Tue, 07 Dec 2021 21:48:35 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/tilt/</guid>
<description>부제: 개발 환경을 구축하려고 애쓰다.
목차 Tilt란?
Using k8s with Tilt
Using Helm with Tilt
참고
Tilt란? &ldquo;value 변경, helm chart 변경이 너무 불편합니다.&rdquo;
일반적으로 쿠버네티스에 배포하는 것은
코드 작성
도커 이미지 빌드
이미지 레지스트리 푸시
쿠버네티스 팟 생성
을 반복하는 것인데 조금 더 편하게 배포할 수는 없을까요?
tilt up # Tilt Control Loop가 개발 환경을 갱신하게 하는 명령어 을 사용하면</description>
</item>
<item>
<title>리눅스 커널 이야기</title>
<link>https://jiwonaid.github.io/posts/lks/</link>
<pubDate>Sat, 09 Oct 2021 22:22:54 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/lks/</guid>
<description>Note: 본 문서는 '리눅스 커널 이야기 - 강진우 저'와 몇몇 링크들을 참고한 cheat sheet로, 커널의 동작 방식이나 파라미터에 대한 보다 자세한 내용은 책에서 찾아보실 수 있습니다. 1장 시스템 구성 정보 확인하기 uname -a # 커널 정보 출력 dmesg # 커널 ring buffer 메세지 출력 dmidecode -t # 하드웨어 정보 출력 lscpu cat /proc/cpuinfo # cpu 정보 출력 free -m # 메모리 정보 출력 df -h # 디스크 정보 출력 ethtool eth0 # 네트워크 카드 정보 출력 2장 top을 통해 살펴보는 프로세스 정보들 pstree -a ps aux top # 프로세스 정보 출력 3장 Load Average와 시스템 부하 uptime cat /proc/loadavg vmstat cat /proc/sched_debug # 가상 메모리 정보 출력 4장 free 명령이 숨기고 있는 것들 free -m cat /proc/meminfo 5장 swap, 메모리 증설의 포인트 free -m smem -t 6장 NUMA, 메모리 관리의 새로운 세계 7장 TIME_WAIT 소켓이 서비스에 미치는 영향 netstat -napo # 네트워크 정보 출력 8장 TCP Keepalive를 이용한 세션 유지 9장 TCP 재전송과 타임아웃 ss -i # 소켓 정보 출력 10장 dirty page가 I/O에 끼치는 영향 11장 I/O 작업이 지나가는 관문, I/O 스케줄러 iostat iotop -P # I/O 사용량 정보 출력 12장 애플리케이션 성능 측정과 튜닝 - 애플리케이션 워커 수를 cpu 코어 수 이상으로 설정 - 커넥션 풀 방식과 keepalive 옵션 등을 이용해서 TCP TIME_WAIT 소켓을 줄임 Appendix A 커널 디버깅을 위한 커널 컴파일 Appendix B strace를 통한 애플리케이션 분석 strace -s 65535 -f -T -tt # -p &lt;pid&gt; Appendix C tcpdump와 와이어샤크를 통한 TCP 패킷 분석 tcpdump -vvv -nn -A host &lt;IP&gt; and port &lt;port&gt; dropwatch Reference http://devo.</description>
</item>
<item>
<title>Create a Blog with Github Pages and Actions</title>
<link>https://jiwonaid.github.io/posts/create-blog-github/</link>
<pubDate>Sat, 18 Sep 2021 17:16:24 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/create-blog-github/</guid>
<description>부제: 깃헙 블로그를 깃헙 액션으로 배포하는 방법 개발자는 블로그를 시작했다! 효과는 미미했다.. Note: 본 문서는 이미 깃헙 페이지로 블로그를 제작한 사람을 대상으로 합니다. 개발자라면 기술 블로그 하나쯤 있어야 하기에 열심히 정적 사이트 생성기를 고르고 나면 배포부터 귀찮아지는 당신을 위한 Github Actions 안내서
Github Actions 처음 블로그를 생성하고 배포를 여러 번 반복하다 보면 이내 자동화에 대한 욕구가 샘솟게 됩니다.
물론 가장 직관적인 방법은 휴먼 오퍼레이터나 크론잡을 사용하는 것입니다.
혹시 더 좋은 방법(무료)은 없을까에 대해 고민하다 보면 이내 배포를 위한 compute 리소스가 필요하다는 것을 알게 됩니다.</description>
</item>
<item>
<title>Linux Kernel Dev Env Configuration</title>
<link>https://jiwonaid.github.io/posts/linux-kernel-dev-env-conf/</link>
<pubDate>Thu, 02 Sep 2021 22:07:46 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/linux-kernel-dev-env-conf/</guid>
<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`* .</description>
</item>
<item>
<title>cloud-init User-Data Script Re-run</title>
<link>https://jiwonaid.github.io/posts/cloud-init-user-data-script-re-run/</link>
<pubDate>Thu, 05 Aug 2021 22:55:27 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/cloud-init-user-data-script-re-run/</guid>
<description>User-Data Script의 동작 방식 오픈스택 ubuntu 이미지를 기준으로 작성
1.사용자가 metadata service나 config drive에 데이터와 스크립트를 제공한다.
2.cloud-init이 VM이 오픈스택이라는 것을 discovery한다.
3.cloud-init이 지정된 metadata_urls(default: [’http://169.254.169.254’])에 접근한다.
4.cloud-init -&gt; neutron-metadata-agent -&gt; nova-api -&gt; Meta-Data, User-Data에서 정보를 받아오고
5.이 정보는 /var/lib/cloud/instances(-&gt; /var/lib/cloud/instance 심볼릭 링크)에 저장된다.
6.이중 사용자 스크립트의 경우 cloud-init의 boot stage인
Generator Local Network Config Final 중 5번의 cloud-final.service에서 동작을 하는 구조이다.
deploy@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.</description>
</item>
<item>
<title>My First Post</title>
<link>https://jiwonaid.github.io/posts/my-first-post/</link>
<pubDate>Thu, 22 Jul 2021 20:03:08 +0900</pubDate>
<guid>https://jiwonaid.github.io/posts/my-first-post/</guid>
<description>내 첫 게시글</description>
</item>
<item>
<title>About</title>
<link>https://jiwonaid.github.io/about/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://jiwonaid.github.io/about/</guid>
<description>Work on cloud computing services (Linux, Kubernetes, and OpenStack). Have an interest in open source cloud computing technologies like Agones.
(more)</description>
</item>
<item>
<title>Adamantium</title>
<link>https://jiwonaid.github.io/adamantium/</link>
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
<guid>https://jiwonaid.github.io/adamantium/</guid>
<description>2025-03-03 00:00:00 VOO ETF의 종가와 종가의 3, 5, 10일 이동평균을 비교합니다.</description>
</item>
</channel>
</rss>