More Related Content Similar to Docker on RHEL & Project Atomic 入門 - #Dockerjp 4 (20) More from Emma Haruka Iwao (20) Docker on RHEL & Project Atomic 入門 - #Dockerjp 41. Docker on RHEL & !
Project Atomic 入門
Haruka Iwao
Docker Meetup #4
2015/01/17
3. わたしはだれ?
• 岩尾 はるか (@Yuryu)
• レッドハットで働いています
– ストレージソリューションアーキテクト兼ク
ラウドエヴァンジェリスト(何でもやる)
• Final Fantasy XIV プレイヤー
– Carbuncle サーバー、学メイン
– バハ真成編4層をクリアしました
• Ingress 緑エージェント(A11)
9. Fedora, RHEL, CentOS比較
Fedora Red Hat
Enterprise
Linux
CentOS
開発主体 Fedora Project Red Hat CentOS Project
リリース間隔 およそ半年 3年∼3.5年 RHELに準ずる
メンテナンス期
間
およそ1年 10年+延長3年 10年
特徴 新機能をどんど
ん実装していく
Fedoraをもとに、
より堅牢、安定
化
RHELのソース
を元に、商標を
取り除き再ビル
ド
価格 無償 有償 無償
サポート なし あり なし
13. Red Hatの取り組み
• RHELへの移植
• Device mapper thin-provisioning への対応
– ディスク性能の向上
• Systemd 統合
• SELinux 対応
• DockerConスポンサー
• Kubernetes開発に参加
http://blog.docker.com/2014/06/keynote-videos-from-dockercon14/
14. Docker on RHEL
• Red Hat Enterprise Linux 7ではDockerが
正式サポート
– 「Extras」チャンネルでの提供
– ミッションクリティカル非推奨
18. 続・コンテナの互換性
• カーネルを載せ替えて、本当に大丈夫?
• /proc や /sys に依存するアプリケーション
は、正しく動かないことも
• システムコールの微妙な変更がアプリを
壊すことも
– 例: A kernel change breaks GlusterFS
– https://lwn.net/Articles/544298/
• RHELでは互換性を担保、サポート
19. Getting Started with Docker
• RHEL 7でDockerを動かすチュートリアル
• https://access.redhat.com/articles/881893
• CentOS 7でも基本的には同じ
– チャンネルは無いので、単に yum install
docker でインストールできる
– firewalld を disable & stop するのを忘れずに
21. Project Atomic とは
• Atomic Host を作っているプロジェクト
• 小さなOS+コンテナのためのツールを
セットで提供
• コンテナのためのプラットフォーム
22. Project Atomic ベースのOS
• Fedora Atomic
– Fedora と同じように、新機能開発のベース
• Red Hat Enterprise Linux Atomic Host
– 商用版でサポート付きの安定版
– 現在ベータ版提供中
• CentOS Atomic Host
– CentOSをベースにAtomic Hostの機能を追加
– RHEL Atomic Hostとは独自に開発(今のとこ)
23. Ubuntu Coreとの違い
• Ubuntu Core
– コンテナイメージを作るための最低限のOS
– tarで提供され、Dockerにインポートして使う
– ホストOSでは無い
• Atomic Host
– コンテナを実行するためのホストOS
– 仮想マシンイメージで提供される
– コンテナ内OSでは無い
24. Ubuntu Coreとの違い
• Ubuntu Core
– コンテナイメージを作るための最低限のOS
– tarで提供され、Dockerにインポートして使う
– ホストOSでは無い
• Atomic Host
– コンテナを実行するためのホストOS
– 仮想マシンイメージで提供される
– コンテナ内OSでは無い
初出時にSnappy Ubuntu Coreを見落として書いて
ありました。Ubuntu Coreはコンテナ用の最低限
のディスクイメージ、Snappy Ubuntu Coreは非常
に小さな最低限のUbuntuです。ただし、Dockerも
標準では付属せず、Dockerに限定しないものに
なっています。2015/01/17現在のalphaは、ディス
クイメージ109MB、メモリ消費量41MB、duで取
れるファイルシステム容量297MBでした。お詫び
して訂正します。
26. RHELとAtomic Hostの違い
• yum が無い
• OS自体はrpm-ostree でupgrade/rollback
• Docker, etcd, Kubernetesが標準で入る
• ファイルシステムが大部分読み込み専用
• リリースサイクル、サブスクリプション
の詳細などは少しお待ちを…!
27. リソース消費量を比べてみた
メモリ ディスク(du /) 配布イメージ
CoreOS 46MB 329MB 112MB
(PXE gz)
RHEL 7 Atomic
Host Beta (※)
195MB 1.1GB 416MB
(qcow2 gz)
CentOS 7 Atomic
Host
144MB 1.2GB 271MB
(qcow2 xz)
CentOS 7 (※) 194MB 1.2GB 3.9GB
(iso)
boot2docker 152MB 113MB 23MB(iso)
ホスト: VirtualBox 4.3.20, VMware Fusion 7.1.0(※)
それぞれ起動直後でDockerを動かした状態
実測値です。環境によって変わります。
29. CentOS Atomic Host
• CentOS をベースに Project Atomic の成果
を追加
• 標準で Docker, Kubernetes, Cockpit,
Etcd , cloud-initが入っている
• スナップショットが利用可能
30. CentOS Atomic の入手先
• http://buildlogs.centos.org/
rolling/7/isos/x86_64/
• 定期的にビルドされるスナップショット
が入手可能
• qcow2 イメージ
– KVMで使うか、変換して使う
32. 用意するファイル
cloud-‐config
password:
changeme
ssh_pwauth:
True
chpasswd:
{
expire:
False
}
ssh_authorized_keys:
-‐
ssh-‐rsa
...
foo@foo.com
(insert
~/.ssh/id_rsa.pub
here)
meta-‐data
instance-‐id:
iid-‐atomic01;
local-‐hostname:
centos-‐atomic;
36. Vagrant で CentOS Atomic
$
vagrant
init
yuryu/centos-‐atomic
$
vagrant
up
• 公式ではありません
• VirtualBox Additions は入っていません
• 20141129版のqcow2をもとに作成
• id: centos, password: vagrant
注意
37. CentOS AtomicでKubernetes
• 標準で入っているので使ってみよう
• Docker内にFedoraとApacheのイメージを
入れて、起動させてみる
• Minion, pod 1つの最小構成
• 参考資料: Testing Kubernetes with an
Atomic Host http://www.projectatomic.io/blog/
2014/11/testing-‐kubernetes-‐with-‐an-‐atomic-‐host/
39. デーモン起動&確認
#
for
SERVICES
in
etcd
kube-‐apiserver
kube-‐controller-‐manager
kube-‐scheduler
docker
kube-‐proxy.service
kubelet.service;
do
systemctl
restart
$SERVICES
systemctl
enable
$SERVICES
systemctl
status
$SERVICES
done
#
kubectl
get
minions
NAME
LABELS
127.0.0.1
<none>出力:
40. Apacheを起動してみる
#
curl
-‐Lo
apache.json
http://bit.ly/1ub4I0c
#
kubectl
create
-‐f
apache.json
状態確認
#
kubectl
get
pod
fedoraapache
出力:
NAME
IMAGE(S)
HOST
LABELS
STATUS
fedoraapache
fedora/apache
127.0.0.1/
name=fedoraapache
Running
41. ログの確認
Masterのログ
#
journalctl
-‐f
-‐l
-‐xn
-‐u
kube-‐apiserver
-‐u
etcd
-‐u
kube-‐scheduler
Minionのログ
#
journalctl
-‐f
-‐l
-‐xn
-‐u
kubelet
-‐u
kube-‐proxy
-‐u
docker
44. まとめ
• Atomic Host = コンテナ向けOS
– Docker, Kubernetes, Etcd などを標準搭載
– 従来のOSから出発して改良
• RHEL 7ではDockerをサポート
• RHEL Atomic Host と CentOS Atomic
Host は別プロジェクト
• Atomic Host は簡単に試せる