Member-only story

Kubernetes と Firebase の接続リセットの問題のデバッグ(後半)

gavin.zhou
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

--

--

No responses yet