KubeCon+CNConのRecap会(recap: おさらい)

個人的にはオンプレで運用してる人たちも結構いて意外だった。セッションもクラスタ作成周りの話とか結構あった。クラウドでやるメリットは色々あるけど、オートスケールやバージョンアップとかが簡単なことかなぁという話を懇親会の時にした。

Lightning Talk: Introduction to GitOps Deployment to Kubernetes

  • gitops
  • imageが作られた後に、マニフェストファイルを自動で作る(?)
  • applicationでタグを切ると、リリース用prが作られるみたいなことをやった

Running VM Workloads Side by Side with Container Workloads

  • kubernetes完全ガイドの著者
  • session
  • ClusterAPIと連携して、kubernetesをkubernetesで管理することもできる
  • KubeVirt
  • VMとコンテナの共存のメリット: podを作るように、VMを作ることができる -> でも結局podなのでは
  • KubeVirtはシンプル
  • かくpodの中にvirt-handlerというのがある
  • VMIでライブマイグレーションとかできる
  • クラスタにはMachineを作成して組み込む(MachineDeployment, MachineSet, Machine)
  • Machine Controller
  • OpenStackHeatというやつで作る
  • OpenStackHeatを使わない構成もできる
  • その場合VM間のNetworkIsolationはNetworkPolicyになりそう(Scalableなのか?)
  • NodeをKubernetesで管理する -> 中国だと割と盛んな印象
  • Kubernetesクラスタを作るみたいなことをやってる
  • ストレージとネットワーキングを考えないといけない
  • strageはライブマイグレーションできるが、networkingは無理そう(podのipアドレスが引き継げないのでは…?)
  • 既存手法: CNI(container network interface)はpodに対して1個だけ
  • MultusCNIとかで1podに対して複数のCNIを持たせている?
  • Kubernetes Clusterの構成は複数ある
  • VMのイメージ管理は、libVirtが起動する場所で読めるようにしておく必要がある(デモとかではコンテナの中に直で置いている)

Keynote: Developing Kubernetes Services at Airbnb Scale

  • airbnbの人のセッション
  • deployの回数が1年間12万回(マイクロサービス化が進んでる)
  • VM -> chef -> kubernetes
  • 宣言的(declarative)な設定ができ、yamlで設定できるのがよかった
  • kubectlのコマンドが多すぎる(complex tooling)
  • Creating a Microservice (Wall of yaml)
  • dev, stg, canary, prodでそれぞれ異なるmanifestファイルたちが必要なのヤバイ
  • kubectlのラッパーを書いてkubectlを叩く回数を減らす
  • helm kustomize kapitanとかを使う方法もある
  • どれもイマイチマッチしなかったのでkube-genを自作した(テンプレートを作る)
  • creating service boilerplate
  • kubectl wrapper(k tool)
  • k generate(環境に必要なyamlを吐き出す)
  • k build(忘れた)
  • k deploy(デプロイできる)
  • CIとspinnakerのパイプラインを自動生成する

Fly Your Containerized Environments by Joint Work of Harbor and Dragonfly

  • Alibabaのセッション
  • 巨大なサイズのコンテナイメージを大規模な分散環境に効率よく配布する
  • 結論: Harborでイメージ管理し、Dragonflyで配布する
  • 同時配布数1000+, コンテナサイズ10GB+
  • 脆弱性スキャンとかもしたいけど高額
  • Harbor: クラウドネイティブレジストリ
    • イケてるWebUIとかもある
    • アクセス制御(RBAC)、Helmチャート対応、デジタル署名(Notary)、脆弱性スキャン(Clair)などの機能
  • Dragonfly: P2Pベースのイメージ配信
    • 配信フローのコントロール
    • 配信におけるセキュリティ
    • 1GBを超えるコンテナイメージを使う人にオススメ
    • 3つのコアコンポーネント(Dragonfly Controller, SuperNode, あと何か)
  • こういうのをプライベート環境(オンプレとか)に立てられるのが大きい

Securing Kubernetes With Admission Controllers

  • Admission Controller: Kubernetes API Serverが提供している機能
  • Admission WebHookの課題: ポリシーを動的に変更するのが難しい
  • open policy agent(opa)
  • 独自クエリ言語Regoがヤバそう(= が単純な比較のときと、代入のときがあるなど)
  • azure/kubernetes-policy-controller