[Docker][swarm][ARM][自分用メモ] 今さらながらDocker swarmに入門してみた。

     
    • 最終更新日時:2019/02/08 10:48:12

    Embed
    docker-whales.jpg
    何周遅れなのかわかりませんが、自宅の環境をDocker swarmに置き換えることにしました。

    Screenshot_2019-02-08_e_maji.png
    今さら手を出すのであれば、Kubernetes (k8s) の方が良いのでしょうが、とりあえず管理方法などを学ぶ点でこちらにしました。
    ※イラストが雑くてすみません。

    公式ドキュメントは以下にあり、基本的にこのドキュメントを読むだけで大丈夫だと思います。
    docker swarm | Docker Documentation
    うちでは以下のようになりました。

    確認環境:
    $ docker version
    Client:
    Version: 18.09.1
    API version: 1.39
    Go version: go1.10.6
    Git commit: 4c52b90
    Built: Wed Jan 9 19:42:36 2019
    OS/Arch: linux/arm64
    Experimental: false

    Server: Docker Engine - Community
    Engine:
    Version: 18.09.1
    API version: 1.39 (minimum version 1.12)
    Go version: go1.10.6
    Git commit: 4c52b90
    Built: Wed Jan 9 19:03:16 2019
    OS/Arch: linux/arm64
    Experimental: false


    $ docker node list
    ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
    vjh474a30s6upsit2fz5s5zts * dns02 Ready Active Leader 18.09.1
    s3m37xdq15bt2rnoudzdkousg k8s-work1 Ready Active 18.09.1
    q33fsja53dni46wnf77lyr6so k8s-work2 Ready Active 18.09.1
    eruk3dzsej4q2kw0628yudqah k8s-work3 Ready Active 18.09.1
    k1zchrvf4ie6l6s86uhxduwho k8s-work4 Ready Active 18.09.1

    host名にk8sが含まれているのは、以前にk8sを構築しようとしたときの名残です。
    以前から自宅で検証しているDNS関連をこちらに移しています。
    workerについては、自宅で遊んでいる以下のArm SBCをpoolしている形になります。これにManagerはRock64を足して5台のリソースプールで稼働しています。

    - Libre Computer Board ROC-RK3328-CC (Renegade)
    - Banana Pi M64
    - Odroid C2
    - Libre Computer Board ALL-H3-CC (Tritium)

    home_docker_swarm.png

    サービス自体も以前から検証で作成しているcontainerをそのまま乗せ換える形です。
    $ docker service ls
    ID NAME MODE REPLICAS IMAGE PORTS
    8vaswda0y1mr portainer-agent_agent global 5/5 portainer/agent:latest
    kas37rlk74pd stack_bind_bind replicated 5/5 kometchtech/bind:latest *:9853->53/tcp, *:9853->53/udp
    ktu1d70jzjzq stack_coredns_coredns replicated 5/5 kometchtech/coredns:latest *:9653->53/tcp, *:9653->53/udp
    ku2llhfutyig stack_dnscrypt-proxy_dnscrypt-proxy replicated 5/5 kometchtech/dnscrypt-proxy:latest *:9953->53/tcp, *:9953->53/udp
    7fkspkdrvw5n stack_dnsdist_dnsdist global 5/5 kometchtech/dnsdist:latest *:53->53/tcp, *:53->53/udp
    yjr8d3coc4fq stack_knot_knot global 5/5 kometchtech/knot:latest *:10153->53/tcp, *:10153->53/udp
    uggls3ilw9z1 stack_kresd_kresd replicated 0/1 kometchtech/kresd:latest *:9553->53/tcp, *:9553->53/udp
    t0fdwzv6ykur stack_nsd_nsd global 5/5 kometchtech/nsd:latest *:10053->53/tcp, *:10053->53/udp
    102i7mr9rraa stack_pdnsrec_pdns_rec replicated 5/5 kometchtech/pdnsrec:latest *:9453->53/tcp, *:9453->53/udp
    mzs0tw5dj0an stack_stubby_stubby replicated 5/5 kometchtech/stubby:latest *:8053->53/tcp, *:8053->53/udp
    gd4irpvfz6l0 stack_unbound_unbound replicated 5/5 kometchtech/unbound:latest *:9753->53/tcp, *:9753->53/udp

    これらを別のストレージサーバから、設定ディレクトリだけをNFSマウントする形で共有するようにしています。
    最初、docker volume createすれば、スケールしたcontainerすべてからマウントできるのか勘違いしていました・・・(よくよく考えたら、docker volume createされるのは、そのコマンドを発行したホストだけで有効になりますもんね・・・)。
    この辺りは、docker networkのoverlayと混同していました。

    また、以前と同じようにDocker networkでIPv6を有効にする方法も、少し悩んでいました。
    こちらもDocker stack deployするとき、対象になるDocker compose fileのバージョンが3以降なんですね・・・ Docker composeでIPv6の設定が有効になるのは、Docker composeの2系までなので、そのままではデプロイ出来ないという・・・
    こちらも予めIPv6を有効にしたoverlayネットワークを作成したうえで、docker stack deployするcontainerを、そのネットワークに所属させる、という手段で解決しました。

    今はManagerノードが1台だけなので、現在、secondaryで独立しているサーバをManagerノードに追加して、負荷分散をさせるかどうかを検討中です。

    あとは、業務で関係するHPC向けのスケジューラなどをdockerを使って構築できないか、を検討中です。
    関連記事


    Pagination

    Trackback

    Trackback URL

    https://kometchtech.blog.fc2.com/tb.php/2216-d6ac77b9

    Comment

    Post Your Comment

    コメント登録フォーム
    公開設定

    Utility

    Profile

    kometchtech

    Author:kometchtech
    なんちゃってエンジニアです。
    2009年10月から業務都合により大阪勤務になりました。
    2010年1月、HYBRID W-ZERO3を購入しました。
    2010年11月、HTC Desire HDを購入しました。
    2012年2月、都内の会社に転職しました。
    2012年5月、HTC One Xを購入しました。
    2012年8月、事情により休職しました。
    2012年8月、SONY Xperia SXを購入しました。
    2013年1月、一身上の都合により退職しました。
    2014年3月、都内の会社に就職しました。
    2016年8月、HPC系の会社に転職しました。
    2018年6月、Xperia XZ1 compactに機種変。

    Amazonほしい物リスト
    何か問題などありましたら、こちらまで。 Twitter:@kometchtech follow us in feedly

    カレンダー

    01 | 2019/02 | 03
    - - - - - 1 2
    3 4 5 6 7 8 9
    10 11 12 13 14 15 16
    17 18 19 20 21 22 23
    24 25 26 27 28 - -

    記事リスト

    最新の記事

    全記事(数)表示

    全タイトルを表示

    バロメーター

    カテゴリー

    カテゴリークラウド

    アーカイブ

    検索フォーム

    FCカウンター

    オンライン

    現在の閲覧者数:

    Amazonアソシエイト

    スポンサードリンク

    月間ページランキング

    ブログパーツ

    サイトランキング