2018-01-01から1年間の記事一覧
k8s の複数 pod を横断してかつ「並列」でコマンドを実行する必要がある場合、どのような手段があるだろうか。例えばパフォーマンス測定のために jstat を複数 pod で実行したい場合、以下のように kubectl に pod を次々と「直列」で渡していっては、各 pod…
Docker コンテナを ENTRYPOINT や CMD の指定なしにちょっとだけ立ち上げたいことがある。例えば Docker イメージで提供されている OS の環境で少しだけ作業をしたい場合など。そんな時は大抵 -d でバックグラウンド指定して sleep コマンドで適当に長い秒数…
ログの一部を抽出して計算するには sampling-filter + numeric-monitor の組み合わせがぴったり! 大規模データ収集のログコレクタとして fluentd を使用している場合、全部のログの中から一部を抽出してデータ分析を行いたい場合がないだろうか。例えば、サ…
はやいは正義 ripgrep が現在進行形で大正義らしい。名前からなんとなく「闇を切り裂く grep」みたいなイメージが浮かぶ。こう、アスファルトタイヤを切り裂きながら暗闇走り抜ける素敵なサムシング、を感じる... のはおぢさんだけ、か。 github.com なぜ、r…
Docker, Kubernetes 学習の進めかた Udemy の Learning Docker and Kubernetes by Lab を完了した。実際に手を動かしながらだったので 1 週間ほどかかってしまった。内容はかなりよかった。Docker の基礎から Linux カーネルとの関連(Network Namespaces, cg…
Linux と Mac で xargs の挙動が違うのは以前から認識していたが、詳細までは調べていなかった。今回、プライベートの git レポジトリをコミットして Mac で xargs を実行した際に illegail option -- i と怒られてしまったので、これを機会に xargs が Linu…
Docker イメージのメタ情報(メンテナ、ライセンス種別、ビルド日時、Github の URL など) は LABEL に集約しようという動きが広まってきている。そのために「どういった情報を載せるべきか」という議論がコミュニティベースで展開された結果、標準として Lab…
CoreOS 社が提供している Kubernetes にセキュリティ、監視、マルチクラウド統合、そしてカッコイイ管理インターフェイスを備えた統合環境 Tectonic を使用してみた。 同社の推しは「Kubernetes の管理コストをさげる」「クラウドベンダーにロックインされな…
Scala の学習用に Ammonite 環境 を AWS EC2 上に構築していて、Scala Exercises の例を試せるように紹介されている cats や shapeless のライブラリを追加していた。ただ、個人的に Ruby を使う機会が圧倒的に多いので pry は必須だし、Go もやってみたいと…
agnoster-bash 会社の同僚に教えていただいて Mac のプロンプトを変えてみた。今までも環境ごとにプロンプトは変えていたけれど、vt100 で xterm な枠の中でせいぜい背景色と文字書を変更するぐらいだった。大げさかかもしれないけど、ブランチの記号がフォ…
GitHub - kyagi/rod: REPLs On Docker を作っている中で Ammonite の起動が早くなるようにあらかじめライブラリをキャッシュさせておくため .ammonite/predef.sc にライブラリを追加したあとに echo exit | amm -s を実行するようにしたところ、docker build…
Linux の Network Namespace を ip netns exec で操作しているうちに「docker exec の正体」がなんとなく見えてきた。 Bridge Networking Deep Dive — Docker Kubernetes Lab 0.1 documentation デフォルトでは docker はコンテナの Network Namespace を見…
Safari Books Online で検索したところ、以下の記述が見つかった。 Disjunction is conceptually similar to Either, which can be used to represent one of two possible types. Disjunction is different from Either because its operations are right-b…
いままでメインの docker 環境は AWS EC2 上で curl -fsSL get.docker.com -o get-docker.sh && sudo sh get-docker.sh のように構築していたけれど、 docker-machine for AWS を使ったほうがいろいろ便利だった。 Amazon Web Services (AWS) EC2 example | …
Docker 再入門として Learning Docker and Kubernetes by Lab | Udemy のコースを受講しているのだが、とてもよい。コンテナを支える Linux カーネルの機能として cgroups, Network Namespaces (Strorage(aufs), Security, Process Namespaces) の概要から、…
会社の Scala エキスパートから、better-fs, fs2 というライブラリを教えていただいたので書き直してみる。とても短くなりました。(^q^)。 GitHub - pathikrit/better-files: Simple, safe and intuitive Scala I/O ayakumo.hatenablog.com @ import better.…
9.4 WRITING NEW CONTROL STRUCTURES を読んでいて、複数ファイルに対して「ファイルを開いて特定の処理を行う」ことができるはずと思って実装した。Scala でメソッドをメソッドの引数に取るのは HOF(Higher Order Functions) というらしい。 C でいう関数ポ…
だいたい Ammonite に書いてある。Magic Imports はとてもありがたい。 インストール $ sudo curl -L -o /usr/local/bin/amm https://git.io/vdNv2 && sudo chmod +x /usr/local/bin/amm && amm REPL として使う $ amm (... snip the greeting message ...) …
sbt は優秀なツールだけれども、さくっと Scala のスクリプトを書くには Ammonite のほうがお気に入り。シェルからは -c オプションで気軽に Scala をスクリプトとして実行可能。 $ amm -c 'import scala.io.Source; val file = Source.fromFile("/home/kyag…
Singleton objects are sort of a shorthand for defining a single-use class, which can’t directly be instantiated, and a val member at the point of definition of the object, with the same name. Indeed, like vals, singleton objects can be def…
A sequence of cases (i.e., alternatives) in curly braces can be used anywhere a function literal can be used.Essentially, a case sequence is a function literal, only more general. Instead of having a single entry point and list of paramete…
case class は abstract class の派生でなくてもいい。コップ本だと Expr の派生クラスとして UnOp や BinOp クラスを定義しているが別に親がいなくてもいい。 パターンマッチのブロックの中の e はパターンに束縛される一時変数。「この e はどこから出てき…
def の後の body の前に = を置かない場合と置く場合の違いが気になっていた。 = を置かない場合はメソッド/関数の戻り値は Unit になる。 = を置く場合はメソッド/関数の戻り値を任意に指定する。 The equals sign that precedes the body of a function hi…