-
日本IBMでk8sの入門イベントがあるとのことで参加してきた。 開催場所 日本IBM箱崎事業所 Docker/kubernetes入門 (戸倉彩 (とくあや) @絶賛執筆中(@ayatokura)さん | Twitter) IBMデベロッパーアドボケイト 元MSのテクニカルエバンジェリスト クラウドネイティブ 市場をリードする、スピード(開発、運用、デプロイ、Time to Marcket) Key Technology マイクロサービス コンテナ Docker Kubernetes マイクロサービス -> マーティン・ファウラーの2014年3月のブログエントリー Microservices マイクロサービス(用途や目的別) スケールアウトしやすい チームの連携はAPIで定義 課題 時間とともに複雑化していく 有名な事例 Pokemon Go : Google Cloud Platform Japan 公式ブログ: Pokémon GO の爆発的ヒットを支える Google Cloud GitHub Case Studies – Kubernetes 物理理的なコンテナでは港湾荷役の人手ボトルネックだった コンテナを採用することでパイプラインが自動化されてボトルネックが解消する Docker リソース効率が良い ポータビリティ 起動が速い コンテナのツラミ 監視 管理 そこでk8s スケールアウト 負荷分散 ロールアップデート ポリシーベースでの可用性 Home – DevOps.
-
Docker Meetup Tokyo #26 Docker Meetup Tokyo #26 に参加してきたのでそのメモ。 Stress Test with LOCUST on k8s(株式会社プレイド Masahiro Yamauchi(@algas)さん | Twitter) k8s使った事ある人 8割くらい 負荷テストの難しさ(ネットワークやスペックがボトルネックになる) LOCUST pythonベース k8sでLOCUST環境を構築(GKE) worker台数を自由に増減させられる DDoSとみなされないように 10000ユーザーくらいでテストした KubeCon China参加報告(ゼットラボ株式会社 Kazuki Suda / すぱぶら(@superbrothers)さん | Twitter) ゼットラボ(yahoo 100%子会社) Harbor,Dragonfly KubeConの中国開催は初(アジア圏で初めて) 上海は綺麗、ご飯美味しい、アメリカはご飯が微妙だった ファーウェイクラウドでk8sのマネージドを提供,企業3番目にコントリビュートしてる k8s靴下販売してた Harbor:イメージレジストリ TiKV:分散トランザクション Dragonfly:P2Pコンテナイメージ配信(Alibaba) CNCFサーベイ2018では58%で本番でk8sを本番運用している k8s is boring(本番で心配なく運用できている) ブロックチェーンとかマシンラーニングとかIoTで使われはじめてる Harbor(会場内では使っている人はいない) Dragonfly(本番で使っている人はいない) etcdの初期の開発をしていた人がつくっている OSS Javaで書かれている(Goで書き換えるらしい) k8sでベアメタルを管理したりするセッションとかもあった k8sでk8sを管理する https://speakerdeck.com/superbrothers/kubecon-plus-cloudnativecon-china-2018-recap いま話題のいろいろなコンテナランタイムを比較してみた (Comparison of several container runtimes)(NTT Kohei Tokunaga(@TokunagaKohei)さん | Twitter) [高レイヤー]containerd,cri-o,rkt [低レイヤー]runc,gVisor,Nabla Containers,Kata Containers critoolsを使ってpodの作成から破棄までを測定 rkt -> 最近は盛り上がりがなくなってきてる containerd,cri-oはパフォーマンスに差は殆ど無い rktはパフォーマンスがあまり良くない runcはLinuxの機能フル活用してセキュリティを担保している gVisorはGoogleが発表 アプリはgoroutineで実行 runnc(Nabla Container)はIBMが開発 Kata-runtime(Kata Containers)はOpenStack Foundationのプロジェクト PodとしてLinuxのVMを作成して中のコンテナが起動する Kata ContainerはPodの起動が他のランタイムより遅い 一番性能が良かったのは Containerd + runnc 一番性能が悪かったのは rkt + coreos Docker Swarm-mode(ZOZO inductor(▼・Å・▼)(@inductor)さん | Twitter) いまはSwarm Modeになってる swarmpit k8sはコミュニティが強い クラウドプロバイダが躍起になって対応している k8sの理解は難しい 分散基盤とかいらないレベルの小さなWebアプリの環境に入れるほどの規模じゃない 業務コストにみあうものは? Docker Swarmを使うのも一つ Swarmのデモ https://speakerdeck.
-
概要 Docker for Macを使っていて、80番ポートのコンテナを複数起動したいとする。 この場合、最初に起動したコンテナはデフォルトで0.0.0.0:80で待受するので、2つ目を起動しようとすと、 docker: Error response from daemon: driver failed programming external connectivity on endpoint nginxB (1c90fd41c712e357ef339bfd99ccda3258b20f5955ec8583a52c18bdaf643d91): Bind for 0.0.0.0:80 failed: port is already allocated. と言ったエラーになって、起動できない。 通常、こうならないように前段に80番で待受するNginxなどを使って、リバースプロキシするか、10080:80の様に待受ポートを変えるのが普通だと思う。 しかし、なんとかして80番ポートを待ち受けするコンテナを複数起動する良い方法がないか探したところ、一応方法があったので記録しておく。 方法1: 割当られているネットワークのIPアドレスを複数使う 例えば、WiFiを使ってインターネットに接続していたとすると、基本的にはDHCPでIPアドレスが振られる。 同じネットワーク帯のIPアドレスをもう一つもらってしまう方法で上記エラーが解決できる。 まず、Macで複数IPを設定する。 WiFiだったら既存のWiFiインタフェースを選択して複製をする。 次に手動でIPアドレスを設定する。 適用すると下記のようにIPアドレスが振られる。(IPは適当) $ ifconfig en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether a8:66:7f:1c:35:e9 inet6 fe80::84b:528c:e2d6:a4cc%en0 prefixlen 64 secured scopeid 0x5 inet 192.168.200.244 netmask 0xffffff00 broadcast 192.168.200.255 inet 192.168.200.254 netmask 0xffffff00 broadcast 192.168.200.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect status: active IPアドレスを2つ所有したら、下記のように実行する。Created
Sun, 23 Sep 2018 12:35:32 +0000