DevLOVE主催の「Kubernetesによるコンテナオーケストレーション」に参加してきました。
雑なメモとなりますが、共有します。
参加目的
- いつものDevLOVEでの開催
- 最近、流行っているらしい。
- 技術トレンドを追いかけるため
Introduction of Kubernetes & Rancher
- https://www.slideshare.net/cyberblackvoom/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で管理
- 永続データ
- 今まで通りバックアップとかレプリカとかで管理
- コンテナイメージ(git管理)
ノード障害対応の自動化
- リカバリーではなく、イメージからの再作成となるので、ステートは失われる
- ステートを保持したい場合は、コンテナ外部のストレージを利用する
- 縮退運転を考慮した設計が必要
Podのヘルスチェッック
- サービスレベルでのヘルスチェックが可能
- VMで運用しているものをコンテナ化するだけでも、運用の省略化が可能
リソース浪費の抑止:Quota/Limit
- 設計すること。悪さする。
ログの出力
- 標準出力にはく、fluentdで収集、elasticsearchで可視化?
- ステートレスサービスを乗せるのがよい。
- 永続データは、得意ではない。
- WEBAPIの課題
- LB, searvice Discovery
- k8sにのせるだけで解決する
- RESTを多用するサービスは、載せると楽になる。
- LB, searvice Discovery
感想
- そもそもコンテナとVMの違いもわからない状態で参加しましたので、知らないことが数多くありました。
- わからないことが多く増えたことは、良かった。
- 2時間でわかった気になれるので、勉強会に出席するのは良いと改めて実感する。
- コンテナとVMの違いを簡単に説明している資料を見つけたので共有。