勉強会
docker
DevLOVE
kubernetes

「Kubernetesによるコンテナオーケストレーション」参加メモ

https://devlove.doorkeeper.jp/events/76164

DevLOVE主催の「Kubernetesによるコンテナオーケストレーション」に参加してきました。
雑なメモとなりますが、共有します。

参加目的

  • いつものDevLOVEでの開催
  • 最近、流行っているらしい。
  • 技術トレンドを追いかけるため

Introduction of Kubernetes & Rancher

Market trend of Kubernetes

  • 十分な成熟したソフトウェアに到達した段階と認められた
  • Amazon EKS が正式版
  • Azure Kubernetes ServiceがGAになった
  • VMwareでもサービス開始
  • GitHubもKubernetesを利用している。SREの事例として面白い

Kubernetes Acrhitecture

  • google内のコンテナオーケストレーションツールからインスパイアされたツール
  • master と nodeで構成される
  • podに対してのローリングアップデート、ロールバックを行うことができる

Introduction RANCHER

  • コンテナ環境の構築、運用するための管理プラットフォーム

おすすめ

  • プログラマのためのDocker教科書
  • 資格
    • CKA
    • CKAD
  • katacoda.com

Kubernetes(k8s)を使いこなすために理解しておくべきこと/ベストプラクティス

コンテナイメージ作成

  • Dockerfileを使う
  • 適切なレイヤー化をする
    • 責任範囲ごとにコンテナの回想をメンテナンス
    • Dockerイメージはレイヤー毎にIDが付与され、切り戻しも容易かつ確実
  • ログ出力先の変更(stdoutすること)
  • 環境依存パラメータやシークレットの外部化
    • ConfigMapを活用
  • 信頼できるイメージを使うこと
  • コンテナ・セキュリティの10大要素がある。あとで読む

k8sへのデプロイメント

  • デプロイメントの3要素
    • コンテナイメージ(git管理)
      • dockerfileで管理
    • アプリケーション(git管理)
      • k8sで管理
    • 永続データ
      • 今まで通りバックアップとかレプリカとかで管理

ノード障害対応の自動化

  • リカバリーではなく、イメージからの再作成となるので、ステートは失われる
  • ステートを保持したい場合は、コンテナ外部のストレージを利用する
  • 縮退運転を考慮した設計が必要

Podのヘルスチェッック

  • サービスレベルでのヘルスチェックが可能
  • VMで運用しているものをコンテナ化するだけでも、運用の省略化が可能

リソース浪費の抑止:Quota/Limit

  • 設計すること。悪さする。

ログの出力

  • 標準出力にはく、fluentdで収集、elasticsearchで可視化?
  • ステートレスサービスを乗せるのがよい。
  • 永続データは、得意ではない。
  • WEBAPIの課題
    • LB, searvice Discovery
      • k8sにのせるだけで解決する
      • RESTを多用するサービスは、載せると楽になる。

感想

  • そもそもコンテナとVMの違いもわからない状態で参加しましたので、知らないことが数多くありました。
  • わからないことが多く増えたことは、良かった。
  • 2時間でわかった気になれるので、勉強会に出席するのは良いと改めて実感する。
  • コンテナとVMの違いを簡単に説明している資料を見つけたので共有。