$30 off During Our Annual Pro Sale. View Details »

Mastodon on Kubernetes

Mastodon on Kubernetes

Kubernetes Meetup Tokyo #4
◼︎ EventPage: https://k8sjp.connpass.com/event/53737/
◼︎ Youtube: https://youtu.be/GlbPk0mHgcs?t=2h13m52s

Aya (Igarashi) Ozawa

April 20, 2017
Tweet

More Decks by Aya (Igarashi) Ozawa

Other Decks in Technology

Transcript

  1. Mastodon
    on Kubernetes
    Mastodon
    Kubernetes Meetup Tokyo #4
    on Kubernetes

    View Slide

  2. ABOUT ME
    INTRODUCTION
    AYA IGARASHI
    @Ladicle
    NTT Communications
    Software Engineer

    View Slide

  3. ABOUT ME
    INTRODUCTION
    SoftwareDesign
    Linux入門
    コンピュータはどうやって通
    信するのか?
    新人さんにプレゼントし
    てください :D

    View Slide

  4. を知っていますか?
    Mastodon

    View Slide

  5. ここ1週間
    やたらと話題のアレです

    View Slide

  6. AGENDA
    INTRODUCTION
    Mastodonとは?
    02
    01
    03
    04
    OVERVIEW
    DEPLOYING
    DEMO
    SUMMARY
    Kubernetes上でどうやって構築するのか?
    時間があれば実物(?)みせます
    まとめ

    View Slide

  7. Mastodonとは?
    OVERVIEW
    ● 見た目がTweetDeckなOSSのSNS
    ● OStatusをサポートしている
    特徴
    管理 ● Githubのtootsuite/mastodon

    View Slide

  8. ● Atom
    ○ コンテンツ配信(RSSの仲間)と編集用
    ● Activity Streams
    ○ 記事情報以外にも対応したAtomの拡張
    ● Salmon
    ○ 分散した記事に対するコメントを付ける
    ● Webfinger
    ○ ユーザ(人)を識別するURI
    ● PubSubHubbub
    ○ 変更をリアルタイムに通知するPub/Subモデル
    OStatusとは?
    OVERVIEW
    構成テクノロジ例 対応ソフトェア
    ● GNUsocial
    ● Mastodon
    ● Diaspora etc...
    W3Cで定められている複数のテクノロジを組み合わせた分散マイクロブロ
    ギングのためのオープンな仕様のこと。(XML全盛期感)
    Mastodonでなくても
    OStatus対応ならリモート
    フォローできるよ

    View Slide

  9. Mastodonの構成
    OVERVIEW
    /api/v1/streaming /*

    View Slide

  10. Kubernetes
    上に乗せると
    どうなるのか?

    View Slide

  11. MastodonのChart
    DEPLOYING
    https://github.com/Ladicle/mastodon-chart
    今回Kubernetes上に建てたMastodonのHelm(k8s用のパッケージマ
    ネージャ)Chartは公開しているのでご利用ください :)

    View Slide

  12. Kubernetes上の構成
    DEPLOYING
    Ingress
    Controller
    Kube
    lego
    service service
    service
    service
    service
    ReplicaSet ReplicaSet
    ReplicaSet
    ReplicaSet ReplicaSet
    assets
    system
    data
    data
    Deployment
    Hook CronJob
    PersistentVolume
    (Pod) (Pod)
    mount
    mount

    View Slide

  13. Kubernetes上の構成
    DEPLOYING
    Ingress
    Controller
    Kube
    lego
    service service
    service
    service
    service
    ReplicaSet ReplicaSet
    ReplicaSet
    ReplicaSet ReplicaSet
    assets
    system
    data
    data
    Deployment
    Hook CronJob
    PersistentVolume
    (Pod) (Pod)
    日時実行の
    CleanUpタスク
    Install / Upgradeに
    Hook
    Let’sEncrypt対応

    View Slide

  14. ルーティング
    DEPLOYING
    /api/v1/streaming /*
    service service
    Ingress
    Controller
    Simple fanout
    Name based
    virtual hosting
    mastodon.ladicle.com

    View Slide

  15. ルーティング
    DEPLOYING
    /api/v1/streaming /*
    service service
    Ingress
    Controller
    mastodon.ladicle.com
    ladicle.ddns.net
    CNAMEで
    DDNSドメインへ

    View Slide

  16. Kubernetes最高!
    DEPLOYING
    compose使うと手動でアップデートのたびにコマンドを打つ必要がある
    が、KubernetesにはEventHookやCronJobでコマンド流せるので自動
    化できる
    毎回やるのは面倒だね!

    View Slide

  17. おわりに
    SUMMARY
    ● Kubernetes上でもMastodonできる!
    ● 色々な機能を使うのでk8sの練習に
    ● 個人インスタンスで脱中央集権化
    ● 自ドメインでアカウント証明
    まとめ
    ● インスタンスのスケールアウト
    ● Prometheusによるモニタリング
    次やること

    View Slide

  18. 参考リンク
    REFERENCES
    ● tootsuite/mastodon
    ○ https://github.com/tootsuite/mastodon
    ● Atom
    ○ https://www.ietf.org/wg/concluded/atompub
    ● OStatus
    ○ https://www.w3.org/community/ostatus/wiki/Main_Page
    ● Salmon Protocol
    ○ http://www.salmon-protocol.org/
    ● WebFinger
    ○ https://webfinger.net/
    ● PubsubHubbub
    ○ https://github.com/pubsubhubbub/
    ● Activity Stream
    ○ http://activitystrea.ms/

    View Slide

  19. Thanks For Watching!
    See you next time

    View Slide