LoginSignup
5
4

More than 3 years have passed since last update.

Kubernetes Meetup Tokyo #20 参加レポート

Last updated at Posted at 2019-06-21

はじめに

今年に入ってますます Kubernetes (k8s) が盛り上がりを見せています。つい先日も Apple がCNCF (Cloud Native Computing Foundation) への参加を発表する 等、エコシステムの進化が急速に進みそうなニュースも発表されました。今後、ますます k8s を使うユーザが増えていくと考えられます。

今回、2019年6月18日に開催された Kubernetes Meetup Tokyo #20 に blog 枠として参加させていただけましたので、イベントの内容についてレポートいたします。

KubeCon + CloudNativeCon Europe 2019

発表内容については全て KubeCon + CloudNativeCon Europe 2019 に関するものになります。1件のみ、もともと予定されていた "Production GPU Clusters With K8s for AI and DL workloads"については急遽キャンセルとなりました。

発表者 タイトル
@hatotaka KubeCon + CloudNativeCon Europe 2019 Overview
@yoshikai_ 5G Orchestration in Serverless & Managing Edge Computing with Serverles
@jyoshise Modern CI/CD with Tekton and Prow Automated via Jenkins X
@inductor Kubectl Apply 2019: Defense Against the Dark Arts
@shmurata Resize Your Pods w/o Disruptions... & Restart-Free Vertical Scaling...
@IanMLewis Container Runtime

KubeCon + CloudNativeCon Europe 2019 Overview

今回のイベントで Keynote でも大きく取り扱われていた分野としては、OpenTelemetry と Service Mesh Interface (SMI) とのことでした。

  • 開催場所: Fira Gran Via, Barcelona, Spain
  • 参加人数 7,700 人
  • Keynote
    • OpenTelemetry, Service Mesh Interface (SMI)
  • Project Updates
    • Linkerd, Helm, Harbor, ROOK, cri-o等
  • OpenTelemetry
    • 次の major update から、OpenTelemetry に変わる予定
  • SMI
    • Interfaceの共通化が進む
    • Ingress に近いAPI仕様になる模様
  • index-free Logs
    • Obervability
    • 開発者でも、もっと簡単に log grep をしたい
  • Grafana loki
    • Prometheus に似たログアグリゲーションシステム
  • 次回はアムステルダム
  • All Attendee Party
    • パエリアが振舞われたり、フラメンコが観られたり

5G Orchestration in Serverless & Managing Edge Computing with Serverles

主に、Edge 系のセッションについて紹介をいただけました。ただし、yoshikai_ さんが注目
されている分野は いわゆる Customer Edge なので、Telecom Carrier が想定している
基地局や集約拠点とはサイズ感が異なっていた、とのことでした。

個人的には、k3s を Raspberry Pi に入れてアプリをガンガンと動かしている点がとても
面白かったです。丁度 ROCK64 (Raspberry Pi に似た メモリ容量の大きいボード) に
ROOK を入れて色々遊んでみようと準備していたところなので、k3s だけを深掘りするような
発表が今後あると嬉しいです。

  • 5G Orchestration in Serverless (AT&T)
  • Container より Serverless をなるべく使いましょう
  • Cloud に集約することで発生する課題を解決したい
  • Akraino Edge Stack
    • Edge のえー感じなやつ!?
    • VM よりは軽いが、課題もある
    • MQTT を用いたメッセージングにより、リソース消費を抑えている
    • Serverless で処理される
    • 全てのコンポーネントは k8s 上で稼働する
  • ONAP
    • とても広範囲にわたる仕様
  • Managing Edge Computing with Serverless
    • 活用事例の紹介だった
  • Inteligent Edge の必要性
    • 元々、提唱したのは Microsoft
    • 賢いEdge, Serverless
    • 必要なデータのみを Cloud にアップロードする
  • Nuclio
    • non-blocking parallel で高い処理性能が出せる
    • AWS Lambda よりも 100倍 速い、とのベンダ見解
  • Success Stories
    • マッチング系のクーポンシステム
  • 弊社事例
    • 工場に設置したデバイス(Raspberry Pi 3; k3s)から CloudFunctionにデータをアップロード
    • Pub/Sub インタフェース, MQTT にて通信

Modern CI/CD with Tekton and Prow Automated via Jenkins X

アプリ及びインフラ、それぞれの各レイヤーで GitOps を考えないといけない、という考えを披露されていました。オンプレで Kubernetes を運用する人にとっては、とても重要なテーマに今後なっていきそうです。
https://twitter.com/jyoshise/status/1136917140605288448

インフラの GitOps を実現することについては、かなりの開発力が必要になると予想されます。
例えば Airship のようなものが、いずれはその役を担える日が来ると良いですね。

  • Jenkins X のお話は、割愛しておりますので悪しからず
  • Kubernetes Native な CI/CD 構築のサポートをしてます
  • Continous Delivery Foundation が発足した
    • CI/CD の標準化を狙っている
  • Kubernetes Native とは
    • あらゆるプロセスは、コンテナ上で稼働
    • オブジェクトは、Decrarative に記述できること
    • 状態の変更は拡張可能な Kubernetes API を通じて行われる
  • GitOps
    • PullReq -> Merge の流れ
    • レイヤごとに考えられる
    • アプリ
    • インフラ
  • Tekton
    • Knative が出自
    • Custom Reource として Pipeline を定義できる
    • 足りないもの
    • Event trigger
    • Log Persistence
    • SCM Support (chat ops)
    • Pipeline Resource / Task の拡張性
    • 2019年中に実装される予定
  • Jenkins X + Prow + Tekton
    • Jenkins X の中に Tekton が組み込まれている

Kubectl Apply 2019: Defense Against the Dark Arts

GitOps を実践するのは辛いので、CIOps + Kustomize + diff を考案した点、とても勉強になりました。確かに GitOps にいきなり進めるのは大変ですね。。

  • 闇の魔術に対する防衛術
  • kubectl apply: 宣言的っぽいリソース管理
    • 3-way diff
    • zlabさん(kusumiさん)の qiita ドキュメントに網羅されている
  • 新しいバージョンの k8s
    • server 側に差分計算をするための endpoint が追加された
    • kubectl diff
    • v1.13 以降で使用できるようになった
    • Kustomize
    • v1.14 以降で統合された
  • Apply 怖い
    • 動作がわかりにくい
    • namespace 間違いで事故りそう
  • yamlファイルがどんどん増えて管理が大変 -> gitops, or ciops に進みたいが、gitops はシステム自体の管理が大変
    • Kustomize + kubectl diff でシンプルに解決できないか
    • CIOPS + Kustomize + kubectl diff で乗り切れそう

Resize Your Pods w/o Disruptions ... & Restart-Free Vertical Scaling...

  • 発表タイトル
    • Resize Your Pods w/o Disruptions aka How to Have a Cake and Eat a Cake
    • Restart-Free Vertical Scaling for Kubernetes Pods
  • VirticalPodScalerの現状
    • 参加者の挙手では、VPA を実際に使っている人は皆無
  • resource request 変更に伴い、pod の再起動が必要となる
    • statefulset だと、あまり嬉しくないこともありえるので、今後の改善課題となっている
  • Restart Free ...
    • Option1(patch) だと race condition が発生する可能性がある
    • Option2(annotation 使用)
  • another one
    • KEP にて proposal が出ている
  • 弊社での取り組み
    • YJ では200+のクラスタが稼働している
    • アドオンの resource request の設定が難しい
    • VPA を利用できないか検証中
    • ユーザの利用動向の変更にうまく追従できそうなことが分かった
    • in-place updater が欲しい
    • 現状、YJ k8s では persistent volume が使えないため

Container Runtime Recap

  • Container Runtime
    • カバーしている領域は広範に及ぶ
    • どこまでが runtime なのか
    • 'run container' だけではない
    • run container でやっていることが雑多
    • high level と low level に runtime を分離したい
    • 分離することで、差し替えができたり、例えば kata container / firecracker に移譲することもできる
  • Lessons learned Migrating k8s from docker to containerd runtime
  • Let's Try Every CRI Runtimes Available for k8s, No Reality!
    • cri 実装をいくつか試す
    • cata や gvisor は、そのままでは同じ動作をしないので、Shim を挟むことで差分吸収をしている

おまけ

Google さんの Guest Wifi ネットワーク、IPv4 には default route が付いていません。なかなかアグレッシブな構成です。
ということは、もはや古い端末からはインターネットに出られないのかな..

bash
netstat -nrfinet6
Routing tables

Internet6:
Destination                             Gateway                         Flags         Netif Expire
default                                 fe80::200:5eff:fe00:265%en0     UGc             en0
default                                 fe80::%utun0                    UGcI          utun0
...
netstat -nrfinet
Routing tables

Internet:
Destination        Gateway            Flags        Refs      Use   Netif Expire
127                127.0.0.1          UCS             0        0     lo0
127.0.0.1          127.0.0.1          UH             12  1744911     lo0
169.254            link#8             UCS             1        0     en0      !
169.254.154.95/32  link#8             UCS             1        0     en0      !
...
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4