本記事について
この記事で書かれている内容は
Restrict a Container's Syscalls with seccomp
をベースにしていました。このドキュメントのうち前半の指定した任意のSeccompプロファイルを使ってPodを作成する機能は1.25でデフォルトで使えるようになった機能ではなく、以前から使えるものです。
タイトルが紛らわしいと思いますので、「旧タイトル: Kubernetes 1.25でデフォルト有効化された「SeccompDefault」を試してみる」から「Kubernetes 1.25でデフォルト有効化された「SeccompDefault」機能で「RuntimeDefault」を試してみる」に変更しています。
初稿で不足している部分を「8/25追記 もう少し深堀り」という後で追記しています。
Kubernetes 1.25がリリースされましたね!
Kubernetes 1.25がリリースされた
ので、kubeadmとCRI-Oの組み合わせで評価環境を作ってみることにしました。
CRI-OはKubernetesのリリースに合わせて同じバージョンのCRI-Oをリリースしていますが、現時点ではCRI-O 1.25がまだ利用可能ではなかったので、CRI-O 1.24を利用しています。
kubeadmなどのインストールについてはいつものように
Installing kubeadm
、ランタイムのインストールについては
Container Runtimes
に従ってセットアップしています。
早速kubeadmでクラスタ作成!
早速クラスターを作成してみます。
$ sudo kubeadm init --kubernetes-version 1.25.0 --pod-network-cidr=10.244.0.0/16 --control-plane-endpoint=172.16.214.190
[init] Using Kubernetes version: v1.25.0
[preflight] Running pre-flight checks
[WARNING Swap]: swap is enabled; production deployments should disable swap unless testing the NodeSwap feature gate of the kubelet
[WARNING FileExisting-tc]: tc not found in system path
[WARNING SystemVerification]: missing optional cgroups: blkio
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher
失敗です!
1つ目の問題「SWAP」
ワーニングなのでそのままでも動くっぽいですが、Fedora 33以降の場合はZRAMを使っているので、次のドキュメントにあるように場合によっては無効化したほうが良いかもしれません。