Skip to content

Instantly share code, notes, and snippets.

View superbrothers's full-sized avatar
🌏
Working from the earth

Kazuki Suda superbrothers

🌏
Working from the earth
View GitHub Profile

v1.24.0

Documentation

Downloads for v1.24.0

Source Code

filename sha512 hash
@superbrothers
superbrothers / components.yaml
Last active July 4, 2024 06:41
Metrics proxy server for Kubernetes components
# based on https://github.com/kubermatic/kubeone/issues/1215#issuecomment-992471229
apiVersion: v1
kind: ConfigMap
metadata:
name: metrics-proxy-config
namespace: monitoring
data:
haproxy.cfg: |
defaults
mode http
#!/usr/bin/env bash
set -e -o pipefail; [[ -n "$DEBUG" ]] && set -x
curl_opts=(--silent -L)
if [[ -n "$PAT" ]]; then
curl_opts+=(-H "Authorization: token $PAT")
fi
cat | while read line; do
@superbrothers
superbrothers / docker-updown.sh
Last active October 22, 2021 06:40
This is a strongSwan updown script that allows Docker containers to be accessed through IPSec VPN on the host.
#!/usr/bin/env bash
# This is a strongSwan updown script that allows Docker containers to be
# accessed through IPSec VPN on the host.
set -e -o pipefail; [[ -n "$DEBUG" ]] && set -x
docker_addr_pools=( $(docker system info -f "{{range .DefaultAddressPools}}{{.Base}} {{end}}") )
case "$PLUTO_VERB" in

NLB + Envoy 負荷分散検証

TL;DR

  • Envoy はデフォルトでは接続済みコネクションを無制限に保持するため、Envoy Deployment の更新などでコネクション数が一度偏ると長時間それが維持される
  • Envoy max-connection-duration を用いて定期的にコネクションをクローズすることでコネクション数が分散する
    • gRPC クライアントはコネクションがクローズされると自動的に再接続する(Go クライアントの場合)
  • アクティブなコネクションのクローズを避けたい場合は idle-timeout も使用できる

screencapture-localhost-8001-graph-2021-06-12-12_45_39

#!/bin/bash -e
# https://gist.github.com/superbrothers/23e159f722eebe2627a7d9ea34447457
#Set Variables
BTPATH=/boot/firmware
CKPATH="$BTPATH/vmlinuz"
DKPATH="$BTPATH/vmlinux"
#Check if compression needs to be done.
{
"metadata": {
"name": "event-exporter.162d26137f11b560",
"namespace": "monitoring",
"selfLink": "/api/v1/namespaces/monitoring/events/event-exporter.162d26137f11b560",
"uid": "47d47d0a-719a-4629-82d9-36599a9ff17b",
"resourceVersion": "2475",
"creationTimestamp": "2020-08-21T02:01:47Z",
"managedFields": [
{
# HELP fluentbit_input_bytes_total Number of input bytes.
# TYPE fluentbit_input_bytes_total counter
fluentbit_input_bytes_total{name="systemd.0"} 572360 1597101884056
# HELP fluentbit_input_records_total Number of input records.
# TYPE fluentbit_input_records_total counter
fluentbit_input_records_total{name="systemd.0"} 510 1597101884056
# HELP fluentbit_output_errors_total Number of output errors.
# TYPE fluentbit_output_errors_total counter
fluentbit_output_errors_total{name="stdout.0"} 0 1597101884056
# HELP fluentbit_output_proc_bytes_total Number of processed output bytes.
# Create a minikube cluster
minikube start
# Install kubectl-debug_ns plugin
TMPDIR="$(mktemp -d)"
curl -L -o "${TMPDIR}/kubectl-debug_node" https://raw.githubusercontent.com/superbrothers/kubectl-plugins/master/kubectl-debug_node
chmod +x "${TMPDIR}/kubectl-debug_node"
export PATH="$TMPDIR:$PATH"
# Create a debugging pod for node/minikube
# This issues was fixed on v1.18.3 and later.
$ kind create cluster --image kindest/node:v1.18.2
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.4", GitCommit:"c96aede7b5205121079932896c4ad89bb93260af", GitTreeState:"clean", BuildDate:"2020-06-17T11:41:22Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-30T20:19:45Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
$ cat <<EOL | kubectl apply -f-
apiVersion: apps/v1