入門Kubernetesに参加してきました
はじめに
サポーターズCoLabの『入門Kubernetes』に参加してきました。
GKEのチュートリアルをやったことがあるのと、GKE入門の勉強会に参加したことがあるくらいで、k8sはまだまだ理解不足だったので今回の勉強会に参加しました。
とてもわかりやすかったです! Dockerの前提知識があれば誰でも聞ける内容だったと思います。
「こういう課題があったからこういうサービスや概念が生まれた」
のようにサービスや概念の紹介だけではなく、「どういった課題を解決するため」という技術が生まれた背景やデファクトスタンダードになった理由とともにストリー仕立てに構成されていたため非常に飲み込みやすかったです。
また、プレゼンの仕方も勉強させいただきました。ライブコーディングはたまに見ますが、ホワイトボードを使う講義は初めてだったので新鮮でした。
要所要所で笑いを誘うテクニックも含め、聴講者を集中させる技術を自分も磨きたいです。
ホワイトボードとQAの部分のみですが以下メモ書きです。
自己紹介
- 片岡航平さん(@p__oka)
- 株式会社ワクテカCTO
- FITRA, FITRA Workout (DMM英会話のFitness版)
Dockerとは
- コンテナ型仮想化環境
- プロセスを隔離させる
Kubernetes
- コンテナオーケストレーションサービス
Case Study
- Railsアプリケーション
- Railsのプロセスを常に4つ起動することを保証したい
deployment
- imageとプロセス数を定義する
- オートスケールも可能(4~10)
RollingUpdateStrategy
- ロードバランシングを適切に設定することが難しい
Service
- Service間での通信(マイクロサービス)
- 外部からのアクセスがない場合は必要ない
- どうやって外部に公開するか
ingress
Service
との連携する- 一つのドメインで異なる
Service
に通信できる - できるが推奨されていない
- 環境変数の管理
- ConfigMap
- ハードコードしかできない?大きな問題
- imageを置換する
- CIでsedしまくる
Kubernetes Helm
コンテナランタイマー
- gVisor
- Dockerは影響力を失いつつある
- 抽象レイヤーがないという脆弱性がある
クラスタ
Dockerコンテナを実行するために用意された実行環境
ノード
物理(仮想)マシン
ロギング
- GCPの場合は意識せずstackdriverにたまる
- stackdriverは監視もできる
- アプリケーションのログは全て標準出力にだす
- DataDogはKubernetes完全対応
- サイドカー(requestヘッダにrequestIDを入れる)
Istio(イスティオ)
Envoy
を入れるならIstio
ごと入れるとよい
Red Hat Openshift
- 本番環境適用に向けた多様な機能