コンテナ若葉マーク
<世界一わかりみの深いコンテナ&Docker入門 Noriyuki TAKEI>
サイオステクノロジー株式会社 武井 宜行さん
今回セッションのきっかけ
そもそもコンテナの仕組み
従来のテクノロジーとの違いが分かりづらい
#wakabamark
コンテナは単なるプロセス
→OSの中にOS
→(仮想化との違い)コンテナはOSが不要な分だけ速い。高速起動。
Docker上で動いているOSは、ホストOSのカネールを共有している。
namespace
→Javaのパッケージ概念と似ている。
パッケージが異なれば同一名称でもOK
→2006年にLinux実装。そんなに新しい技術ではない。
→このような機能はLinuxカーネルの1機能として実装されている。
→OS動作に必要なもの(沢山のコマンド群)を簡略化できる。←Docker
unshareコマンドで確認できる
Dockerで実現できること
→1.
2.DockerHub(OSに必要なものを管理している場所、各種OSイメージが格納されている)
DockerFile
→OSイメージ+必要なミドルウェア(Apacheとか)インストール
→インストール作業を省略できる。
→上記を自社リポジトリ(SVNとか)に管理できる。
開発者へSVNを介して配布できる。
→いろんなことができる。
開発環境の構築(例)
→従来の技術との差異は?
→仮想化の場合、手順に従った開発者が環境構築
開発者が手順の実施ミスをするとシステム管理者がケアしないといけない。(工数)
さらにVMイメージはサイズ大きいのでNW逼迫する。
→コンテナの場合、Dockerイメージ配布して終了。
手順とかはないので、システム管理者の工数削減になる。
※前提:開発PCにはDockerインストールしていること。
本番環境
→負荷分散、無停止更新とかをやってくれるのがk8s!
k8sとは?
1.変更を積み重ねるのではなく、作り直す。
2.宣言的設定
3.自己修復
https://qiita.com/ryu-yama/items/2e23342fd0f37e43a925
k8sの各プロセスはAPI Serverに変更有無を問い合わせしている。
→誰が構成を変更している?
→kubectlプロセスが構成変更している。
AKSはAzureの各種サービスの組合せでできている。
k8sに適さないサービスだと管理が複雑
判断軸
1.頻繁な機能追加や変更があるかどうか
利用者に無停止でアップデート機能が具備されている。
1機能1コンテナ(マイクロサービスアーキテクチャ)
2.大量のリソースを消費するかどうか?
3.急激なスケールアウトが必要かどうか?
k8sには今後のシステム設計に必要なエッセンス(マイクロサービス等)が沢山詰まっているので
学習するメリットあると認識している。
k8sは難しいが、コンピューター理論の基本(TCP/IPやhttpプロトコル)
→実はレガシーな技術の塊(namespaceとか)
SIOS技術ブログもAKSへ移行した。
■参考サイト
SIOS TECH.LAB
https://tech-lab.sios.jp/
OpenShiftとKubernetesの違いと価値
https://www.ibm.com/blogs/think/jp-ja/differences-values-openshift-and-kubernetes/
<怖くないコンテナ・ネットワーク zaki_hmkc>
私用により見れず
<実運用から考えるDocker iganari>
私用により見れず