はじめに
いつも心は虹色に! nikkieです。
k8sのハンズオンに行ってきました。
Dockerを独学してdocker-composeでデプロイできるようにはなったのですが、
composeは本番環境向けではないと知ったので、コンテナの本番環境運用が知りたくて参加しました。
勉強会の概要
お盆休み KubernetesとRancher講習+もくもく勉強会 - connpass
上記リンクより抜粋。
普段なかなかDockerやKunernetesの勉強が追いついていない方、ぜひこの機会に初めの一歩を踏み出してください。
この勉強会では、コーチ(「コンテナ・ベース・オーケストレーション」の著者 cyberblack28 こと市川 豊)と共にハンズオン形式で学習していきます。難しいことは一先ずおいて、手を動かしてみましょう!
Rancherでkubernetesクラスタ構築、Guestbookアプリのデプロイ、Weavescopeによる可視化をやってみましょう!
講義部分の資料は先日のDevLOVEでの登壇をもとにされているそうです。
ハンズオンの資料はこちらです。
Introduction of Kubernetes & Rancher2.0
勉強会中にとったメモはこちらです。
scrapbox.io
ハンズオンでやったことを整理
Guestbookアプリをデプロイしました。1
- GCPで2台のVMインスタンスを立てる(rancher-server/rancher-host)
- 2台ともGCP コンソールからブラウザでSSH接続
- 2台ともDockerが使えるように設定(クライアント・サーバともにバージョンは 17.03.2-ce)
curl https://releases.rancher.com/install-docker/17.03.2.sh | sh
- rancher-serverの稼働(ブラウザからRancher UIにアクセスできるようにする)
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
- ブラウザでRancher UIにアクセス
- クラスタ構築: Rancher UIを操作してrancher-hostで実行するクラスタ構築用コマンドを生成する
- カタログからweavescopeをデプロイ
- Rancher UIからIngressを作る(外部からアクセスできるようにする)
- 生成されたURLからweavescopeの画面を確認できる
- Guestbookアプリケーションデプロイ
最終的な状態(Rancher UIのクラスタからLaunch kubectl)
> kubectl get nodes NAME STATUS ROLES AGE VERSION rancher-host Ready controlplane,etcd,worker 53m v1.10.5 > kubectl get services NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE frontend ClusterIP 10.43.70.55 <none> 80/TCP 41m ingress-8f292af7be845e4b740a8e031deba7c7 NodePort 10.43.169.177 <none> 80:32513/TCP 38m kubernetes ClusterIP 10.43.0.1 <none> 443/TCP 54m redis-master ClusterIP 10.43.157.208 <none> 6379/TCP 41m redis-slave ClusterIP 10.43.90.210 <none> 6379/TCP 41m > kubectl get pods NAME READY STATUS RESTARTS AGE frontend-5c548f4769-bhtvt 0/1 Pending 0 48m frontend-5c548f4769-mzpdc 1/1 Running 0 48m frontend-5c548f4769-nk7cw 0/1 Pending 0 48m redis-master-55db5f7567-q25w6 1/1 Running 0 48m redis-slave-584c66c5b5-8cv5r 1/1 Running 0 48m redis-slave-584c66c5b5-rq8p6 1/1 Running 0 48m >
weavescope3
Guestbookのページにアクセスがあると、frontendがslaveからデータ取得し、
Guestbookに書き込まれるとflontend→master→slaveとデータが書き込まれる様子が確認できます。
k8sの用語に理解が追いついていないのですが、ハンズオンのケースのノードはrancher-hostと理解しました。
今回は1ノードだから1Pod(Pod=デプロイ単位。中には3種のコンテナ)
感想
k8sは難しそうというイメージでしたが、Rancherのおかげで一歩目を踏み出すことができました。GUIは偉大ですね。
これをベースに黄色本(『コンテナ・ベース・オーケストレーション』)や教えていただいたリンク(katacodaなど)で情報収集続けていきます。
ハンズオンを開催いただき、どうもありがとうございました!
-
yamlファイルのreplicasを確認:https://raw.githubusercontent.com/kubernetes/examples/master/guestbook/all-in-one/guestbook-all-in-one.yaml↩
-
「コンテナ構成をリアルタイム視覚化」するものだそうです。 http://pocketstudio.jp/log3/2015/07/14/weave-scope-container-visualization/↩