Member-only story
Kubernetes と Firebase の接続リセットの問題のデバッグ(後半)
10 min readApr 26, 2021
今回の記事は長いので前半と後半に分けてお送りします。
今回は後半です。Cloud NAT、Firebaseのデバッグについてです。
Problem…Not Solved
接続リセットの問題をバリデーションした後、私たちはその修正を実装することに着手しました。解決策は、無効なパケットをドロップするように明示的に conntrack に指示するか、もっとリベラルに無効なパケットとしてマークしないようにすることです。
sysctl -w net.netfilter.nf_conntrack_tcp_be_liberal=1
1.14以下を実行しているクラスタでは、以下のDaemonSetがすべてのノードにconntrackパッチを適用することで問題を修正します。
apiVersion: extensions/v1beta1kind: DaemonSetmetadata:name: startup-scriptlabels:app: startup-scriptspec:template:metadata:labels:app: startup-scriptspec:hostPID: truecontainers:- name: startup-scriptimage: gcr.io/google-containers/startup-script:v1imagePullPolicy: IfNotPresentsecurityContext:privileged: trueenv:- name: STARTUP_SCRIPTvalue: |#! /bin/bashecho 1 > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_be_liberalecho done