Linux カーネル ソースコードのマクロを展開する

やりたいこと カーネルのソースコードを読んでいると、まあまあな頻度でマクロに遭遇する。 core_param(pause_on_oops, pause_on_oops, int, 0644); 簡単なマクロならそのまま読めるが、マクロの定義中にマクロが使われてたりする。 #define core_param(name…

Linux プロセス管理を理解したい

プロセスについて学習したことをまとめました。間違いあればコメントください。 検証環境 プロセスとは プロセス空間 プログラムはどのように動作するか タイムシェアリング どうやって実行するプロセスを切り替えるか? いつプロセスを切り替えるか? どの…

認定Kubernetes管理者(CKA)にほぼ満点で合格しました

認定Kubernetes管理者 (CKA) に ほぼ満点 で合格しました。 スコアは 98% でした。これはつまり、 Kubernetes 完全に理解した(入門した) という事ですね? この記事は 認定Kubernetes管理者(CKA) の概要と勉強方法を共有します。 認定Kubernetes管理者(CKA) …

PostgreSQL Isolation について

DB

トランザクションのACID特性のうち、Isolation(隔離性)について整理する。 検証環境 Isolationとは? Isolation Level Snapshot Isolationとは? Write Skew Read Only Skew PostgreSQLにおける実現手段 ANSIとの対応 実装の詳細 追加/更新/削除の挙動 Isolati…

iptables で [unsupported revision] が出る

問題 kube-proxy が設定したルールを iptables コマンドで表示すると、[unsupported revision] になる。 ]# iptables -nL -t nat Chain KUBE-SEP-AAJZQ5YHVGUCPI77 (1 references) target prot opt source destination KUBE-MARK-MASQ all -- 10.200.192.87 …

Kubernetes ログを読んで理解する kube-proxy の仕組み

kube-proxy は各ノードで動作するネットワークプロキシ。Service の仕組みの一部(ClusterIP や NodePort など)を実現し、クラスタ内部または外部から Pod にアクセスできるように制御する。 参考 Kubernetes Components 参考 Kubernetes Service Service は …

Kubernetes コンテナ名を y にすると実行できなくて困った(YAML の Boolean の話)

k8s

環境 Kubernetes 1.15 ]# kubectl version Client Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:13:54Z", GoVersion:"go1.…

linux /proc/kallsyms をコードから理解する

検証環境 CentOS 8.1 を利用する。 ]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-147.3.1.el8_1.x86_64 #1 SMP Fri Jan 3 23:55:26 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux /proc/ka…

k8s Persistent Volumes の ReadWriteOnce は単一 Pod からのアクセスに絞るための設定じゃない

k8s

kubernates 1.17。 $ kubectl version Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.2", GitCommit:"59603c6e503c87169aea6106f57b9f242f64df89", GitTreeState:"clean", BuildDate:"2020-01-18T23:30:10Z", GoVersion:"go1.13.5…

k8s ConfigMap で設定を Pod から分離できる( nginx の設定を ConfigMap で管理する)

k8s

ConfigMap は Pod の外から設定データ(環境変数やファイル)を注入するための仕組み。設定を Pod と分離して管理できることに価値がある。 ConfigMap はキーとバリューで構成されていて、複数の方法で作成できる。また、複数の方法で Pod に設定データを注入…