Slide 1

Slide 1 text

k8s もよく分かってないけど を兎に角さわってみた Rancher Meetup #02 in Kobe @yoshiyoshifujii Rancher Meetup #02 in Kobe 1 / 20

Slide 2

Slide 2 text

Yoshitaka Fujii @yoshiyoshifujii Chatwork 株式会社(5 ヶ月目) Software Enginner Scala 歴 5 年目 Scala 関西 Summit スタッフ(4 年目) 自己紹介 k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 2 / 20

Slide 3

Slide 3 text

前回は、 Rancher どころか、 k8s もよくわかっていなかった k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 3 / 20

Slide 4

Slide 4 text

とりあえず、さわってみよう k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 4 / 20

Slide 5

Slide 5 text

とはいえ … いきなり、 AWS とか、 Azure とか Cloud 環境で試すのもちょっとハードル高いし、とりあえ ず、ローカルで Rancher を試してみたいなって思い まして … k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 5 / 20

Slide 6

Slide 6 text

Rancher にDocker for Mac のKubernetes をインポートする k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 6 / 20

Slide 7

Slide 7 text

ってことで、デモします。 k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 7 / 20

Slide 8

Slide 8 text

Rancher を起動 Manual Quick Start | Rancher Labs このあたりに書いてあるdocker run コマンドをローカルで実行します。 $ docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 8 / 20

Slide 9

Slide 9 text

Rancher を起動 Manual Quick Start | Rancher Labs このあたりに書いてあるdocker run コマンドをローカルで実行します。 $ docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher うまく起動してたら、 こんな感じで確認できるはず。 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS XXXXXXXXXXXX rancher/rancher:latest "entrypoint.sh" 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, 0.0.0.0:4 k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 8 / 20

Slide 10

Slide 10 text

Rancher にアクセス ローカルで起動しているので、 http://localhost でアクセスできる ですが、あとで、Rancher にDocker for Mac 上のk8s cluster を登録する そのあたりで、localhost では不都合がある ので、自身のIP アドレスでアクセスする k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 9 / 20

Slide 11

Slide 11 text

クラスターを追加 Rancher 上で、Docker for Mac のKubernetes Cluster を追加する 証明書がないので、 curl --insecure オプションを活かして実行する $ curl --insecure -sfL https://123.45.67.8/v3/import/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.yaml | kubectl apply -f - k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 10 / 20

Slide 12

Slide 12 text

うまく追加できると … k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 11 / 20

Slide 13

Slide 13 text

ちょっとさわってみると … k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 12 / 20

Slide 14

Slide 14 text

Rancher で CD/CI できないかと調査する目的で、 Pipelines を少しさわってみた k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 13 / 20

Slide 15

Slide 15 text

Rancher2.1 のPipelines を試す k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 14 / 20

Slide 16

Slide 16 text

Pipeline のステージ 以下の3 ステージが用意されている。 Build Publish Deploy k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 15 / 20

Slide 17

Slide 17 text

サポートしているバージョン管理システム GitHub GitLab k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 16 / 20

Slide 18

Slide 18 text

Pipelines の動き Jenkins 内部でJenkins を立ててRancher が良い感じにつかってくれるらしい Rancher のPipelines が良い感じにJenkins を使ってくれるのでロックされててアクセスできない Jenkins はステートレスに動作するので永続性とかは心配無用とのこと Docker Registry Default で、Docker Registry を立てて、そこにPublish してくれる オプションで外部のDocker Registry にPublish するように設定することもできる Minio Minio というStorage にPipelines の実行ログを吐き出してくれる Docker Registry は外部を指定すれば永続性とかは大丈夫。Minio は外部ストレージ化する手順が このへん にあるとのこと。 k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 17 / 20

Slide 19

Slide 19 text

トリガー Manually Automatically GitHub やGitLab のWebhook に自動で登録されるとのこと イベントとしては、push, pull request, tag が用意されている 管理者権限を持っているリポジトリしか対象にできない もちろん、GitHub やGitLab から見える位置に、Rancher を起動していないといけないからローカル起動は使えない k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 18 / 20

Slide 20

Slide 20 text

.rancher­pipeline.yml stages: - name: Build steps: - runScriptConfig: image: golang:1.11 shellScript: |- mkdir -p /go/src/github.com/rancher ln -s `pwd` /go/src/github.com/rancher/pipeline-example-go cd /go/src/github.com/rancher/pipeline-example-go go build -o bin/hello-server go test -cover - name: Publish steps: - publishImageConfig: dockerfilePath: ./Dockerfile buildContext: . tag: example-helloserver:${CICD_EXECUTION_SEQUENCE} - name: Deploy steps: - applyYamlConfig: path: ./deployment.yaml https://github.com/rancher/pipeline­example­go/blob/master/.rancher­pipeline.yml k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 19 / 20

Slide 21

Slide 21 text

まとめ Rancher ちょっとさわってみようと思うけど、いきなりクラウドはちょっとなーって方は、ぜひDocker for Mac で。 Rancher をさわってると、k8s を体系的に学んでなくても、それなりに使えたりしそうと思った Rancher をさわりながら、逆に、k8s の用語とかを確認していくと、GUI からなので、分かりやすい Projects とか、Namespaces みたいな、ちょっと分かりにくいのも、GUI からなので、理解しやすかった Rancher は、ほんとうに簡単にk8s cluster を扱えたので、k8s を勉強するのにオススメ k8s もよく分かってないけどRancher を兎に角さわってみた Rancher Meetup #02 in Kobe 20 / 20