containerd v1.1.2を動かして色々操作してみた

containerdを動かしてコンテナを作ったりイメージをプルしたり色々やってみようっていう内容です。containerdに対する操作はCLIツールのctrを使用します。 containerdのインストールと実行 GitHubのリリースページよりtarballをダウンロードしてきます。今回…

docker-containerd、docker-containerd-shim、 docker-containerd-ctr、docker-runc

stack overflowのdockerd vs docker-containerd vs docker-runc vs docker-containerd-ctr vs docker-containerd-shimの補足的な記事です。 各コマンドの説明と、これらを説明する上で必要なcontainerdやCRIの話もちょっと書きます。 一応自分の環境の情報 u…

Linux上にDockerをインストールするまでの作業

これと同じことをやることが頻繁にあるので、手順書(笑)にしておくことにしました。リモートマシンのUbuntuにDockerをインストールすることを想定。 SSH鍵転送 SSH鍵作成 TARGETは適宜変更。 TARGET=sushi 鍵作成 mkdir ~/.ssh/$TARGET ssh-keygen -t rsa -b…

Git操作メモ(1. 取り消し系)

Git

Gitの取り消し系の操作 コミットとかステージングをやり直したい時の操作について書いていきます。 ファイルの変更の取り消し $ git checkout <ファイルまたはディレクトリ> これで一応ファイルの変更の取り消せるんですが、より正確にはこういうことをやっ…

Kubernetes Hardwayメモ

k8sクラスタはkubeadmとかrkeとかを使うと、クラスタに必要なコンポーネントを自動で作成してくれたりしてある程度楽に構築できます。しかし、あえてそれらを手作業でデプロイしていって、手動でk8sのクラスタを構築したいって人はKubernetes Hardway(下記…

Golang EchoとTemplateのメモ(自分用)

Go

入門記事 Go言語でWebサイトを作ってみる:目次 - Qiita 【Go】Echoでのテンプレート(html/template)の使い方メモ - とりあえずphpとか HTMLタグが勝手にHTML特殊文字に変換されちゃう 同じお悩み stackoverflow.com template.HTML('<p>hoge</p>')みたいにすればOK…

AlpineでRustのバイナリを動かす

Rustのプログラムをビルドする時に静的リンクにするようにして、ビルドしてできたバイナリをDockerコンテナのAlpineで動かすまでの話です。 cargo buildについて Rustのパッケージマネージャ兼ビルドシステムのcargoというものがあります。まぁRust書いてる…

とりあえずdocker-composeでEFK動かした時のメモ

初めてfluentd触った時設定ファイルのあれやこれやがちんぷんかんぷんだったのでメモっておきました。ほぼ自分用。 とりあえず何も考えずにここのサンプルを実行 docs.fluentd.org このサンプルは何をやってるのか httpdのコンテナの出力をDockerのlogdriver…

Alpine Linuxのコンテナのタイムゾーンの変更

コンテナのタイムゾーンをJST(日本標準時)に変更したい場合、よく知られている方法として $ docker run -e TZ=Asia/Tokyo hoge というように環境変数TZを設定してやればいいというのがあります。ただしAlpine Linuxの公式のDockerイメージはこれだけではうま…

外出先からVPNを通じて自宅のNASに接続する(3. NASをOpenVPNに接続する)

etogen.hatenablog.com の続きです。QNAP TS-231PをOpenVPNに接続します。 1. 各種ファイルをコピー 前回と同様に、OpenVPNに接続するために必要なファイルをscpでコピーしてきます。 コピーしてくる対象はこれらです ca.crt ta.key client2.crt client2.key…

外出先からVPNを通じて自宅のNASに接続する(2. iPhoneをOpenVPNに接続する)

etogen.hatenablog.com の続きです。今回はiPhoneをOpenVPNのネットワークに接続します。 1. 各種ファイルをコピー ca証明書などのOpenVPNに接続するために必要なファイルを、OpenVPNが動いているVPSからscpでコピーしてきます。 コピーしてくる対象はこれら…

外出先からVPNを通じて自宅のNASに接続する(1. ConohaのVPSにOpenVPNサーバーを立てる)

つい最近NASを購入しました。QNAPのTS-231Pというモデルです。 私はよくGoogleDriveにファイルを置いておいて、外出先で端末(主にiPhone)からそれらを利用できるようにしています。クラウドストレージは大変便利なんですけど、あえてNASでこれと同じような…

Dockerのポート開放がufwの制限を受けなくて焦った件について

前提としてufwを使ってConohaにVPS立ててみた 第2回 FW設定 - 24時のような設定をしているとします。たとえばNginxのプロセスをコンテナではなくホストで動かす場合、外部からホストの80番ポートにアクセスしようとしてもフィルタリングされてアクセスができ…

CaddyでHTTPS通信

「Caddyを使うとこんな簡単にHTTPSの通信ができるんだよ」っていう紹介 Caddy すごいWebサーバーだよ HTTP/2.0が使える Let's Encryptで証明書の取得を簡単に行なってくれる 実装はGo プロキシとして動作させられる QUIC対応 ...etc お遊び Nginxへの通信の…

docker stats

docker statsはDockerコンテナのCPUやメモリの使用率を表示するコマンド。地味にこのコマンドの存在知らなかったのでメモメモ。 公式ドキュメント: docker stats | Docker Documentation それと、docker statsはデフォルトでコンテナIDを表示するんですが、…

Elasticsearchのmemory locking requested for elasticsearch process but memory is not lockedから学んだCapabilityの話

Elasticsearchを起動したらこんなエラーが発生しました。昨日一日くらいずっとこれに頭を悩ましてましたね...。 [2018-02-20T03:39:32,327][WARN ][o.e.b.JNANatives ] Unable to lock JVM Memory: error=12, reason=Cannot allocate memory [2018-02-20T03:…

Sysdigまとめ

ホストやホスト上で動いているコンテナ内のパフォーマンスを調査するのに用いるモニタリングツール。機能的にはstrace + tcpdump + htop + iftop + lsof + wiresharkという感じ。Sysdig, Incで開発されています。 Sysdigのプロダクト Sysdig(コマンドライン…

Ubuntuにディスクをマウントする

UbuntuにHDDをマウントする時ちょっとばかし手こずったのでメモメモ lsblk アタッチされている物理ディスクの一覧はlsblkで表示できます。 ~$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 50G 0 disk ├─sda1 8:1 0 487M 0…

KubernetesのemptyDirとhostPathの検証

k8sのemptyDirとかhostPathを用いてマウントした場合、Podを削除した時にデータはどうなるんだろうって検証をしました。 結論を先に書くと、emptyDirの場合はホストに作成したマウント先のディレクトリはPodを削除すると一緒に消え、hostPathの場合は指定し…

ElasticsearchのNative controller process has stopped

普通にUbuntuのDockerで公式のElasticsearchを使ってコンテナを作成しようとしたら、下記のようなエラーが発生。 $ docker run docker.elastic.co/elasticsearch/elasticsearch:6.1.3 [2018-02-04T06:28:59,001][INFO ][o.e.n.Node ] [] initializing ... [2…

SSHのSOCKSプロキシを経由させてTorを使う

Tor

「学内ネットワークからだとフィルタリングされててTorに繋がらない(怒)」って人向け。事前に学内ネットから繋がるVPSとかにSSHサーバーを立てといてください。 SSH接続 下記コマンド実行 $ ssh -f -N -D 1080 hoge@server オプションの説明 f: バックグラウ…

Tor Circuitの全てのRelayを調べる

概要 最近Torにハマってて、Tor: Onion Service Protocolについて読んだんですけど、本当にこんな感じのTor Circuitができているのかが気になりました。というわけでClientとHidden Service(HS)間の通信に使用されているRelayを全部確認してみました。 www…

pipでSphinxをインストールする時に発生したエラー

pip install sphinxを実行したら下記のようなエラーが発生した OSError: [Errno 1] Operation not permitted: '/tmp/pip-bqvrm8-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.egg-info' 権限がな…

Go言語 sliceのnilについて

Go

へー、と思ったこと。こんな感じのコードを書きます。 package main import ( "fmt" ) func main() { var b []string c := []string{} if b == nil { fmt.Println("B") } if c == nil { fmt.Println("C") } } 「B」と「C」の出力が得られると思いきや、実行…

Kibanaでgeoip.locationが見えなくなった時の対策

バージョン Kibana 5.6.3 問題 Logstashのgeoipフィルタでlocationのフィールドを付加した LogstashからElasticsearchへデータをoutputする時、indexにlogstash-*(デフォルトの名前)ではなく、特別な名前をつけている Elasticsearchで確認したらgeoip.locati…

Elasticsearchのデータ構造とKibanaの基本について

ElasticsearchとかKibanaがどういう物なのかをなんとな〜く知った人向けのことを書きます。 Elasticsearchのデータ構造 図としてはこんな感じです データ構造について – AWSで始めるElasticSearch(4) | Developers.IO RDBに例えればわかりやすいのではない…

AlpineでGoのバイナリ動かなくて焦った話(anaconda)

先に結論を言うと、CA証明書が必要になるプログラムをAlpineのDockerコンテナで動かしたい時、公式のAlpineのイメージには元から入ってないんでca-certificatesをインストールしましょう、ということ。 過程 Go言語ではanacondaっていうライブラリを使うとTw…

ConohaにVPS立ててみた 第2回 FW設定

今回はFW(ファイアウォール)の設定をしていきたいと思います。 ConohaのVPSだと、サーバーを立てる時どのポートを開放するか設定できると思うんですけど、ぼくはあえて全てのポートを開放しました。 こうすれば「うわぁ〜!ポート閉じなきゃ!」って使命感…

ConohaにVPS立ててみた 第1回 初期設定

ConohaのVPSで行なったこととかをこれから何回かに分けて書いていこうかなーと思いました。ほぼ自分用のメモ。 ちなみにOSはUbuntu16.04です。 一般ユーザー登録 rootユーザーだけで色々やっていくのはアカンので、とりあえずsudoをパスワードなしでできる一…