Skip to content

Instantly share code, notes, and snippets.

View ruo91's full-sized avatar

Yongbok Kim ruo91

View GitHub Profile
@ruo91
ruo91 / haproxy-quic.md
Last active June 11, 2023 06:03
How to Install and Configure HAProxy+QUIC on Rocky Linux 9

How to Install and Configure HAProxy+QUIC on Rocky Linux 9

RockyLinux 9 버전에서 HAProxy+QUIC 조합을 사용하여 구성하는 방법에 대해서 설명한다.

1. HAProxy란?

HAProxy는 C 언어로 개발된 TCP 및 HTTP 기반 애플리케이션을 위해 고가용성 로드밸런서와 리버스 프록시를 제공하는 오픈소스 소프트웨어다.

TCP 및 HTTP 애플리케이션을 로드 밸런싱하고 고가용성을 제공하는데 주로 사용되며 로드밸런싱은 여러 서버 사이에 트래픽을 분산하여 서버의 성능을 향상시키고 가용성을 높이는 기술이다.
여러 서버로 들어오는 요청을 분산하여 부하를 공정하게 분배하고, 각 서버의 상태를 모니터링하며 문제가 있는 서버를 제외시킴으로써 신뢰성을 높일수 있다.

또한, 프록시 서버로 사용될 수 있어 클라이언트와 서버 간의 통신을 중개하는 역할을 수행할 수 있어서, 보안, 로깅, SSL 종단 감시 등 다양한 기능을 제공할 수 있다.

@ruo91
ruo91 / apache2_add_http_status_code_444_http_protocol.patch
Created May 24, 2023 15:56
Apache2 - Apply HTTP Status Code 444
# usage: patch -p0 < apache2_add_http_status_code_444_http_protocol.patch
# vi httpd.conf
# ErrorDocument 444 "No Response"
# apachectl graceful
--- httpd-2.4.57/modules/http/http_protocol.c.orig 2023-05-24 22:50:23.905088004 +0900
+++ httpd-2.4.57/modules/http/http_protocol.c 2023-05-24 22:51:10.275677091 +0900
@@ -158,7 +158,7 @@
NULL, /* 441 */
NULL, /* 442 */
NULL, /* 443 */
@ruo91
ruo91 / python3-urldecode.py
Created May 16, 2023 04:15
Python3 - URL Decode
# - Usage
# ex1)
# python3 url_decode.py "Blah%7E%20Blah%7E~"
#
# ex2)
# python3 url_decode.py "/path/to/directory/example-url-encode.txt"
#
# - RefURL
# https://gist.github.com/Paradoxis/733af9516af9022d2d4ca7432ff15a96
#
@ruo91
ruo91 / python3-urlencode.py
Created May 16, 2023 04:13
Python3 - URL Encode
# - Usage
# ex1)
# python3 url_encode.py "Blah~ Blah~"
#
# ex2)
# python3 url_encode.py "/path/to/directory/example.txt"
#
# - RefURL
# https://gist.github.com/Paradoxis/6336c2eaea20a591dd36bb1f5e227da2
#
@ruo91
ruo91 / ocp4-stf-elasticsearch-geoip.log
Created May 7, 2023 11:59
OpenShift v4.x - STF ElasticSearch - exception during geoip databases update
{"type": "server", "timestamp": "2023-05-07T11:53:26,271Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "elasticsearch", "node.name": "elasticsearch-es-default-0", "message": "version[7.16.1], pid[7], build[default/docker/5b38441b16b1ebb16a27c107a4c3865776e20c53/2021-12-11T00:29:38.865893768Z], OS[Linux/4.18.0-372.52.1.el8_6.x86_64/amd64], JVM[Eclipse Adoptium/OpenJDK 64-Bit Server VM/17.0.1/17.0.1+12]" }
{"type": "server", "timestamp": "2023-05-07T11:53:26,276Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "elasticsearch", "node.name": "elasticsearch-es-default-0", "message": "JVM home [/usr/share/elasticsearch/jdk], using bundled JDK [true]" }
{"type": "server", "timestamp": "2023-05-07T11:53:26,277Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "elasticsearch", "node.name": "elasticsearch-es-default-0", "message": "JVM arguments [-Xshare:auto, -Des.networkaddress.cache.ttl=60, -Des.networkaddress.cache.negative.ttl=10, -XX:+AlwaysPreTouch, -Xss1m, -Djava.awt.
@ruo91
ruo91 / ocp4-loxilb-test.md
Created April 5, 2023 19:39
OpenShift v4.x - LoxiLB 설정 테스트

OpenShift v4.x - LoxiLB 설정 테스트

1. LoxiLB Namespace 생성

[root@bastion ~]# oc new-project loxilb

2. LoxiLB SCC 권한 부여

[root@bastion ~]# oc adm policy add-scc-to-user privileged -z default -n loxilb
@ruo91
ruo91 / ocp4-kubernetes-nmstate-operator-nncp-ipv6-ipv4.md
Created March 20, 2023 17:22
OpenShift v4.x - Kubernetes NMState Operator 구성

Kubernetes NMState Operator 구성

Kubernetes NMState Operator는 클러스터 노드에서 다양한 네트워크 인터페이스를 구성하는 기능을 사용자에게 제공한다.
Multiple 네트워크 인터페이스 설정을 구성하고자 할 경우 사용자가 수동으로 CoreOS에서 생성하지 않고 NMState를 사용하여, 네트워크 인터페이스를 설정하도록 한다.

1. Project(namespace) 생성

Kubernetes NMState Operator에서 권장하는 프로젝트(namespace)를 생성한다.

[root@bastion ~]# vi 00_namespace.yaml
apiVersion: v1
kind: Namespace
@ruo91
ruo91 / ocp4-ovn-kubernetes-sdn-migration.md
Last active March 21, 2023 10:20
OpenShift v4.x - OVN-Kubernetes SDN 마이그레이션

OpenShift v4.x - OVN-Kubernetes SDN 마이그레이션

OpenShift v4.x 클러스터에서 OpenShift-SDN을 OVN-Kubernetes SDN으로 마이그레이션 방법을 정리한다.
본 방법은 OpenShift 클러스터 전체에 영향도가 있는 작업이므로 작업 전 VM 스냅샷 백업 또는 ETCD 백업을 적극 권장한다.

ETCD 백업의 경우 아래 링크를 통해 백업&복구 전략을 세우고 진행하기 바란다.
OpenShift v4.x - ETCD 백업 및 복구 방법

1. SDN 네트워크 정보

기본적으로 사용하는 OpenShift-SDN의 네트워크 정보를 백업 후 확인한다.

@ruo91
ruo91 / ocp4-mongodb-enterprise-operator.md
Last active April 5, 2023 16:05
OpenShift v4.x - MongoDB Enterprise Operator 구성

OpenShift v4.x - MongoDB Enterprise Operator 구성

OpenShift v4.x 환경에서 MongoDB Enterprise Operator를 구성하고 실제 배포하는 부분을 테스트 한다.

1. Project(Namespace) 생성

[root@bastion ~]# vi 00_namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
  name: mongodb
@ruo91
ruo91 / ocp3-etcd-backup-restore.md
Last active January 30, 2023 05:17
OpenShift v3.x - ETCD 백업 및 복구 방법

OpenShift v3.11 - ETCD 백업 및 복구 방법

본 글은 OpenShift v3.11 환경에서 클러스터가 정상적이지 않거나 사용자에 의해
object resource가 손상되었을 경우를 대비해 백업 및 복구하는 방법에 대해서 작성 되었다.

또한, OpenShift v3.11 버전은 레드햇(RedHat)에서 EoL(End of Life) 및 EoS(End of Service)된
제품이기 때문에 RedHat에서 더 이상 지원하지 않음을 알린다.

1. ETCD 백업

etcd는 kubernetes에서 사용되는 모든 정보들이 저장되어 있는 key/value 기반의 database 이다.
etcd 백업은 크게 2가지 방법으로 수행이 가능하다.