Upgrade to Pro — share decks privately, control downloads, hide ads and more …

k8sもよく分かってないけどRancherを兎に角さわってみた

 k8sもよく分かってないけどRancherを兎に角さわってみた

yoshiyoshifujii

January 11, 2019
Tweet

More Decks by yoshiyoshifujii

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  5. とはいえ

    いきなり、
    AWS
    とか、
    Azure
    とか
    Cloud
    環境で試すのもちょっとハードル高いし、とりあえ
    ず、ローカルで
    Rancher
    を試してみたいなって思い
    まして

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

    View Slide

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

    View Slide

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

    View Slide

  8. 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

    View Slide

  9. 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

    View Slide

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

    View Slide

  11. クラスターを追加
    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

    View Slide

  12. うまく追加できると

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

    View Slide

  13. ちょっとさわってみると

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

    View Slide

  14. Rancher

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. 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

    View Slide

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

    View Slide

  20. .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

    View Slide

  21. まとめ
    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

    View Slide