Twitter | Search | |
toVersus
Unskilled but lazy programmer in Japan. Gopher/Rustacean/WebAssembly/Kubernetes/Knative
68
Tweets
38
Following
31
Followers
Tweets
toVersus Jul 31
見ない間に Knative の Leader Election の実装が Reconciler 単位で sharding されようとしている。Autoscaler を StatefulSet に変えて replicas = shards で Pod 名で DNS 引けるようにしたり。Leader Election と Reconciler の相性が悪く、結局 SPOF じゃん問題の緩和策で解決策じゃない難しさ😇
Reply Retweet Like
toVersus Jun 16
で CfP が採択されました!Deep Dive なセッションになるように頑張ります
Reply Retweet Like
toVersus Jun 13
書きました。Knative Webhooks ライブラリを使うと、Admission Webhook 用の HTTPS サーバーの証明書の作成とローテーションを良い感じにやってくれます。cert-manager などの外部依存が無くなるので、導入しやすくなると思います!
Reply Retweet Like
toVersus Jun 1
Replying to @axot
そのブログに載ってる PingCAP の人のプレゼン動画を眺めてたら、TiDB で Local PV を使えてるのは、最低 3 箇所に書き込んでいるのと、Gardener を拡張して VM をなるべく止めないようにしてるからみたいですね。in-place で kubelet も入れ替えてる😱Stateful workload と相性良さそう
Reply Retweet Like
toVersus May 26
Replying to @toshi0607
確かに IANA が HTTP の代替ポート番号として 8080 を予約してますが、強制じゃないんですよね。ライブラリやフレームワーク、ミドルウェアでデフォルトポート番号もバラバラです。(e.g. Node.js -> 3000, Flask -> 5000, ...) なので、アプリのポート番号を何にするかで戦争になりそう…😇
Reply Retweet Like
toVersus May 26
Replying to @toshi0607
はい、その KEP です!Knative で複数コンテナ対応が難しいのは、メインのコンテナがどれか分からなくなるからです。queue-proxy がどのポートにリクエストを流せばいいか今の containers フィールドからは判断できません。Sidecar KEP の機能が入ると、どれが Sidecar か分かるので実装が楽になります
Reply Retweet Like
toVersus May 26
Replying to @toshi0607
データストア用のプロキシだったり、PHP みたいに Web サーバーが必要だったり、コンプライアンスが厳しい所で監査用のコンテナを隣で走らせてたり、Fargate もそうなのですが、マルチテナントな K8s 環境だと DaemonSet が使えない所もあってログやメトリクス収集用のコンテナを置いたりですね。
Reply Retweet Like
toVersus May 26
Replying to @toshi0607
最初はサポートしないスタンスに見えたのですが、ユースケースが多かったからですかね。Sidecar KEP が kubelet の闇のせいで停滞しちゃってるので、良かったかも?既にいくつかコードが入ってますね。次かその次あたりに入るかな?
Reply Retweet Like
toVersus May 20
ニッチな話題なので採択されるか分からないですが、CfP を提出しました!con track races に踏み込みつつ、NodeLocal DNSCache の内部実装の話を中心に。現職に移って一番気になっていたマルチクラスターの名前解決の話にも少し触れる予定です。
Reply Retweet Like
toVersus Apr 27
Replying to @toshi0607
今はここで API shape 固めていますね
Reply Retweet Like
toVersus Feb 6
Replying to @toshi0607
そもそも gateway (Envoy) 一種類しかいないですしね!
Reply Retweet Like
toVersus Feb 6
Replying to @toshi0607
部分的にしか読んでないです。Internal/External はさっき気になって調べました!この辺りですね。(たぶん)
Reply Retweet Like
toVersus Feb 6
Replying to @toshi0607
kourier の場合は、3scale-kourier-gateway がまんま Envoy みたいですね。Service ごとに置かない。仰る通り、起動時以外は、go-control-plane 経由で xDS で動的に設定しています。kourier が他と違うのは、Internal/External Visibility の VirtualHost を同じ Envoy に設定しているところですね👀
Reply Retweet Like
toVersus Feb 1
Replying to @toshi0607
後半は場合によっては正しいです。サイドカーの Envoy がいて mesh を構築している場合は、v0.12 以降サービス間通信の制御に cluster-localgateway は不要です!cluster-localgateway が必要なのは non-mesh (Istio-lean) でサービス間通信するときだけです。
Reply Retweet Like
toVersus Feb 1
Replying to @toshi0607
ん、一行目どういう意味でしょう?Traffic Splitting にサイドカーの Envoy は必須ではないです。cluster-localgateway (Istio) も knative-internal-proxy (Gloo) も実態は Envoy です。 こちらこそ、さらに混乱させてますね…口頭で話したい🥺はい、もちろん!自分が理解してる範囲で役立てるなら!
Reply Retweet Like
toVersus Feb 1
Replying to @toshi0607
いや、嘘だ。Route Controller が Knative Ingress を作って、Knative Ingress Controller が VirtualService を作ってます。Gloo/Ambassador/... が Knative 対応のために作ってるのがこの Ingress Controller です。
Reply Retweet Like
toVersus Feb 1
Replying to @toshi0607
あれ、サービス間でも Knative Route で Traffic Splitting は定義できると思ってますが...違うのかな。Route Controller が Knative Route の情報をもとに VirtualService を作ってるはずなので。host は Knative Route でタグづけした場合に追加されますね。
Reply Retweet Like
toVersus Feb 1
Replying to @toshi0607
ですです!この図は Istio Service Mesh を有効にしたパターンです。istio-sidecar-injector が Mutating Webhook で突っ込んだ Envoy なので、Knative は無関係です!
Reply Retweet Like
toVersus Feb 1
Replying to @toshi0607
Mixer Adapter の話は Istio のブログに出てます。
Reply Retweet Like
toVersus Feb 1
Replying to @toshi0607
queue-proxy を Envoy で置き換えようみたいな話は定期的に出てはいます。Istio Mixer のカスタム Adapter を作って queue-proxy を消し去ってるパターンも実装されてはいますが、Istio 以外の Ingress で現状実現できないので、Knative の upstream には入ってないです。
Reply Retweet Like