Skip to content

Instantly share code, notes, and snippets.

Avatar
🌏
Working from the earth

Kazuki Suda superbrothers

🌏
Working from the earth
View GitHub Profile
View kubernetes-1.24.md

v1.24.0

Documentation

Downloads for v1.24.0

Source Code

filename sha512 hash
@superbrothers
superbrothers / components.yaml
Last active Apr 16, 2022
Metrics proxy server for Kubernetes components
View components.yaml
# 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
View append-sig-labels.sh
#!/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 Oct 22, 2021
This is a strongSwan updown script that allows Docker containers to be accessed through IPSec VPN on the host.
View docker-updown.sh
#!/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
View gist:5fd0dd75878ea4d9b66a1f0fa28d4655

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

View auto_decompress_kernel
#!/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.
View gist:6b43421fc6417ecf8d7e13787d101ef9
{
"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": [
{
View fluent-bit metrics
# 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.
View gist:8894cf9f57805064477a2edf8b29f76c
# 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
View gist:e993a82f94c6e914e721c8596a2c662c
# 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