本番環境と開発環境で使える コンテナイメージ運用 / Kubernetes Meetup Tokyo #2

6ad76bc77bb3205732ce31c3d2d25b29?s=47 mahata
June 21, 2016

本番環境と開発環境で使える コンテナイメージ運用 / Kubernetes Meetup Tokyo #2

Kubernetes Meetup Tokyo #2

6ad76bc77bb3205732ce31c3d2d25b29?s=128

mahata

June 21, 2016
Tweet

Transcript

  1. 本番環境と開発環境で 使えるコンテナイメージ 運用 Kubernetes Meetup Tokyo #2 By 真幡 康徳

  2. 自己紹介 • 株式会社Orb - DevOps チームリード • “mahata”@ GitHub /

    “Yasu” @ connpass • 最近の主戦場 ◦ Kubernetes (Docker) ◦ AWSサービス群 ◦ オーケストレーションツール群 ▪ Ansible とか...
  3. Kubernetes 本番で使いたい!

  4. Kubernetes 本番運用に立ちはだかる壁 • サービスのコンテナ化 ◦ マイクロサービス化 ◦ コンテナイメージの管理 • (本番環境にあわせた)

    開発環境の構築 ◦ ステージング環境も! • データの永続化
  5. Kubernetes 本番運用に立ちはだかる壁 • サービスのコンテナ化 ◦ マイクロサービス化 ◦ コンテナイメージの管理 • (本番環境にあわせた)

    開発環境の構築 ◦ ステージング環境も! • データの永続化
  6. コンテナイメージ管理黎明期

  7. 素朴な VPC 構成 (AWS) S3 Private Registry VPC Public Private

    踏み台 サーバ
  8. 素朴な SSH トンネル S3 Private Registry VPC Public Private 踏み台

    サーバ docker pull/push
  9. 素朴なSSHトンネルの良し悪し • 良し ◦ 環境構築が簡単 • 悪し ◦ Private Registry

    のSSHキーさえあれば全て のコンテナにアクセス可能
  10. ところで マイクロサービスって...

  11. Why Microservices Matter (by Heroku) Microservice-based apps are composed of

    several small programs, each with a single responsibility. This allows teams of engineers to work relatively independently on different services. 意訳: マイクロサービスでチームごとに責任範囲が 明確になるし, 独立して働けるようになるよね Why Microservices Matter
  12. 独立して働けるように なるよね!!

  13. サービス (チーム) ごとに独立したい • 一部のサービス開発をアウトソースしたい • アウトソース先に制約を課したい ◦ 必要なコンテナだけ pull/push

    可能に ◦ 素朴な SSH トンネルだと難しそう...
  14. Docker Hub のように認証をしたい • “$ docker login registry.example.com” したい •

    ログインユーザ毎にアクセス権を変えたい
  15. Docker Registry v2 の認証モデル cesanta/docker_auth: Authentication server for Docker Registry

    2 cesanta/docker_auth
  16. docker_auth の設定ファイル (抜粋) users: "john": password: "SOME_PASSWORD_BCRYPTED" acl: - match:

    {account: "john", name: "hey"} # "pull", "push", "*" actions: ["pull"]
  17. まとめ • Kubernetes 楽しい! • マイクロサービス楽しい! • cesanta/docker_auth 便利!