「車輪の再実装」って言葉が好き(実践はできてない)

Weekly Log 6 -- 書評: 雰囲気で使わずきちんと理解する! 整理してOAuth2.0を使うためのチュートリアルガイド --

認証・認可について理解する必要にかられたので、先日あったDMMの7割引セールの際に仕入れたOAuthの本を読んだ。 booth.pm タイトルに書評と書いているが、実質読書メモ 第1章 はじめに OAuth2.0とは? RFC6749を引用すると OAuth2.0はサードパーティアプ…

Weekly Log 5 -- k8s meetup tokyoをまとめる#5〜#9 --

kubernetes meetup tokyoの動画を5回分ぐらい眺めたので軽くまとめる #5 Kubernetes Meetup Tokyo #5 - connpass (2017/06/27) [WIP] 運用しているサービスをKubernetes化するかどうか考える by @r_takaishi ペパボのサービス運用をk8sに移すための検証 Ope…

Weekly Log 4 -- 書評: Kubernetes完全ガイド --

Kubernetesの勉強のため、今月はこの本を読んだ book.impress.co.jp CyberAgentの青山さんが書かれたK8sの本の第二版だ。 全体の構成としては、 導入 環境構築 kubectlの解説 各APIの解説 各トピック(リソース、スケジューリング、監視、セキュリティ、etc)…

Weekly Log 3 -- k8s the hard wayとk8sのアーキテクチャと --

はじめに k8sの勉強というと、「こんな機能がある」、「こういう使い方をする」ということを学んでいくべきなんだろうけど、正直面倒というか、丸暗記に近い感覚があってあんまり気が乗らない。 なので、k8sのアーキテクチャを中心に、必要に応じてk8sの機能…

Weekly Log 2 -- Kubernetesについて今知っていること・知らないこと --

はじめに Kubernetesをやるぞ!と言いながら、実はこれまでまともにk8sを使ったことがない。 とはいえ、大学院でコンテナ関連の研究をしていたり、バイトでOCIランタイムの改良をしていたりしたので、 偏ってはいるもののそれなりに知識はある。 今後効率よ…

Weekly Log 1 -- 社会人になったので --

4月から社会人になった。 ということで、せっかくなので誓約みたいな物を立ててみることにする。 「楽しく生きる!」っていう目標?は変わらないだろうけれど、 とはいえ生きていれば色々と状況は変わるので、とりあえず今年の誓いを立ててみる。 2021年の誓…

bibtexでurlパッケージを使ったらusepackageしてなくて引用が?になっていた話(メモ)

タイトルの通りです。 例えば.bibファイルで以下の様にurlパッケージを使っていた場合、 @misc{dockerhub, title = {Docker Hub}, note = {\url{https://hub.docker.com/}} } .texファイル中で以下のようにusepackageしなくて引用が「?」になりました。 \use…

paramikoでclientをcloseせずにCtrl+Cを実現する

paramikoとは paramikoは、SSHの為のPythonライブラリです。 paramikoを使うことで、認証情報の管理、接続、そしてリモートでのコマンドの実行等を行うことができます。 例えば以下のようにすることで、リモートでコマンドを実行できます from paramiko impo…

コンテナランタイムなしでDockerHubのイメージをマウントする

この記事は、東京大学 品川研究室 Advent Calendar 2020及びDocker Advent Calendar 2020の2日目の記事として書かれました。 Docker Advent Calendar のネタですが、Dockerは使わないという若干本末転倒気味な小ネタです。 (あまり埋まってない様子だったの…

Ubuntu18.04でpython3のデフォルトを3.6から3.8に変更したらaptが壊れた話

まとめ Ubuntu18.04で python3 パッケージをインストールするとデフォルトでは python3.6 が入ります。 ただ諸事情で新しいバージョンを使いたくなったので、python3.8 パッケージをインストールして、 update-alternativesを使って python3 コマンドを使っ…

vagrant-libvirtで作ったVMを、dockerのネットワークにつなげる。

...というタイトルのものの、実際は既存のlinuxブリッジにlibvirtの仮想マシンをつなげる方法です。 1. つなげたいdockerネットワークのブリッジ名を調べる. 特に設定をしていなければdocker0のはずですが、 以下の様にして調べても大丈夫だと思います。 doc…

起動済みのdockerコンテナのネットワーク名前空間に入る方法

まず、あらかじめ入りたいコンテナのIDか名前を取得しておき、以下の様な手順で入れる。 pid=$(docker inspect <コンテナのIDか名前> --format '{{.State.Pid}}') sudo mkdir -p /var/run/netns sudo mount --bind /proc/${pid}/ns/net /var/run/netns/<名前…

オンライン上のmanページまとめ(随時追記)

www.mankier.com デフォルトでついているページ内検索が優秀だったり、デザインが一番モダンな感じで個人的に一番好き。対応しているページも多い気がする。 ただSEOの問題か、google検索してこのサイトに飛ぶことは少ない。 linux.die.net ちょっとマニアッ…

linux namespacesのファイルと永続化について

ip netnsコマンドを使うと、/var/run/netnsディレクトリにファイルを足してネットワーク名前空間を足してくれたり、 /proc/[pid]/ns以下に、そのプロセスの名前空間に対応するファイルを見せてくれるのは知っていたけれど、そのあたりの扱いをうろ覚えなので…

vagrant-libvirtをネストした時のネットワークアドレス衝突への対処法

vagrant-libvirtを使うと、vagrantでlibvirtをproviderとして使うことことができ、自分でvirshコマンド等をいちいち叩かなくてすごい便利なのですが、 表題の通り、ネストして使おうとするとネットワークアドレスが衝突して2段目のvagrant upに失敗します。 …

UNIXドメインソケットの通信相手(プロセス)を調べる

UNIX ドメインソケットを使っているプロセスの番号とファイルディスクリプタの番号を知りたくなったので、やり方をメモ。 以下のようにlsofコマンドを使う。 $ sudo lsof -U +E +c 15 | grep containerd systemd 1 root 48u unix 0xffff8b1691980400 0t0 106…

overlayファイルシステムで複数のlowerdirを使うときの順序

overlay でマウントするときの下位ディレクトリの順番をよく忘れるのでメモ $ mkdir lower1 lower2 upper work merged $ echo 'lower1' >> lower1/file $ echo 'lower2' >> lower2/file $ sudo mount -t overlay \ -o lowerdir=$PWD/lower1:$PWD/lower2,uppe…

Ubuntu18.04 でbcc, bpftraceを動かす

最近流行りのeBPFを研究でつかっている?のですが、せっかくなので使い方のメモを公開しておこうと思います。 OSのセットアップ タイトルにもあるようにUbuntu18.04を使います。 bpfは最近流行っていることもあり、新しいバージョンのカーネルでないと使えな…

Linux (Ubuntu 18.04) からUTokyo WiFiに接続する (GUI編+CLI編)

UTokyo WiFiの公式ページの記載だけでは、Ubuntuからうまく接続できなかったので、 またOSをふっ飛ばして再インストールするであろう将来の自分に向けて接続方法のメモ GUI編 設定例 以下のように設定すれば接続できるはず。 設定項目 設定値 Wi-Fi security…

ネットワークへの接続状況を監視してみる (Prometheus on Docker on ラズパイ)

github pagesを畳んだので、そこにあった記事の転載 現在一人暮らし中なので、自宅の回線はモバイルルーターを契約しているのだが、近頃回線がものすごく遅くなるときがある。 google.comとか1.1.1.1とかにpingを飛ばすとロス率が70%を越したり、レイテンシ…

git bisectを用いてsyscallテーブルの表記変更コミットを探す

linuxにシステムコールを追加しようと思ったりすると、 arch/x86/entry/syscalls/syscall_64.tbl にsys*と書くと思っていたのですが、最近は__x64_sys*という表記に変わっていることに気づきました。 例えばLinux v4.15ではシステムコールテーブルは以下の様…

カーネルモジュールのロードに失敗した話(insmod が Operation not permittedでコケる)。

結論 セキュアブート環境下*1では、カーネルモジュールに署名をつけましょう 経緯 卒論の関係でカーネルモジュールを書いていて、「さて実機で動かすぞ!」という段階でコケました。 自分が悪いコードを書いたせいかと思い、よく転がっていそうな単純なモジ…

gccで本当に使われているデフォルトリンカスクリプトを手に入れる。

結論 ld --verboseではなく、gcc -Wl,--verboseを使いましょう。 環境 $ gcc --version gcc (Ubuntu 8.2.0-7ubuntu1) 8.2.0 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO…

RISC-Vについて(CPU実験その2)

この記事はIS17er Advent Calendar 2017 - Adventarの3日目の記事として書かれました。 「日本語で書かれたRISC-V命令一覧が欲しいな」と思ったのがこの記事を書いたモチベーションなので、基本的にはCPU実験の班員向けに書いたRISC-Vの基本命令RV32Iのまと…

Vivado入門1(CPU実験その1)

この記事は IS17er Advent Calendar 2017 - Adventarの1日目の記事として書かれました。 CPU実験とは 東大理学部情報科学科では名物講義のひとつにCPU実験というものがあります。 CPU実験の説明は歴代の先輩方が様々説明を書いてくださっているので説明は割…

ブログ移行

なんとなく以前のブログのurlが気に入らなかったので移行しました。