Category: Gentoo

Gentooでkubernetesのセットアップ

事前準備 固定 IP 化 swap を無効化 docker のインストールと自動起動 cgroup で CPU とメモリーが有効になっている必要がある Gentoo で OpenRC だと /etc/rc.conf で設定する。 Gentoo側は Cgroup v1 と v2 の設定が選べる(hybrit になるようだ)。 Kubernetes での Cgroup v2 サポートは Docker で Docker Engine 20.10 から実装された模様 2021/10/10 時点の 私の Gentoo の Docker のバージョンを確認した所、20.10.7 だった。 kubernetes は 1.22 から Cgroup v2 をサポートした模様 参考 Kubernetes 1.22 における新機能は? ただ私がKubernetesをインストールする際に使った k3s.io のバージョンを確認した所、2021/10/24時点で v1.21.5+k3s2 だった。 ので v1 をサポートする設定のままにする。 k3s.ioで一発インストール 結局、これが一番はやい。 ※ この前に既に Gentoo のパッケージで kubectl をインストールしている場合は削除すること k3s. Read more...

Gentooでkubernetesのセットアップに失敗した

事前準備 固定 IP 化 swap を無効化 docker のインストールと自動起動 cgroup で CPU とメモリーが有効になっている必要がある Gentoo で OpenRC だと /etc/rc.conf で設定する。 Gentoo側は Cgroup v1 と v2 の設定が選べる(hybrit になるようだ)。 Kubernetes での Cgroup v2 サポートは Docker で Docker Engine 20.10 から実装された模様 2021/10/10 時点の 私の Gentoo の Docker のバージョンを確認した所、20.10.7 だった。 kubernetes は 1.22 から Cgroup v2 をサポートした模様 参考 Kubernetes 1.22 における新機能は? なぜ失敗しているのか? kubeletやkubeadmのコンパイルは上手くいく。そういう観点でパッケージメンテナの作業は成功している。 kubeletも起動している。kubeadm –dry-runも正常に終了する。が実際にkubeadmで構築する段階で失敗している。 ここまま検証するより、一度、正常に動作しているkubenetesと比較した方が検証が進みやすそうだったので、構築できたk3s.ioを用いて検証を続けている。 kubernetes をインストールする gentoo は標準でパッケージが用意されていたので、それでどこまで行けるか確認してみる。 パッケージインストール app-admin/helm がマスクされていたのでマスクを外す。 cat << EOF | sudo tee -a /etc/portage/package. Read more...

Gentooでkubernetesのトラブルシューティング

トラブルシューティングのログ machine-idがないエラーが出る $ sudo journalctl -r --since today | less 8月 02 00:48:56 k3s-prd-agent-g k3s[364]: W0802 00:48:56.104196 364 info.go:53] Couldn't collect info from any of the files in "/etc/machine-id,/var/lib/dbus/machine-id" 8月 02 00:48:56 k3s-prd-agent-g k3s[364]: E0802 00:48:56.103437 364 info.go:119] Failed to get system UUID: open /etc/machine-id: no such file or directory machine-idのファイルが存在するか確認する。 sudo ls -l /etc/machine-id /var/lib/dbus/machine-id ls: '/etc/machine-id' にアクセスできません: そのようなファイルやディレクトリはありません lrwxrwxrwx 1 root root 15 3月 18 21:43 /var/lib/dbus/machine-id -> /etc/machine-id ファイルが無かったので作成する。 Read more...

GenPi64でrootパーティションの拡張

partedを起動 GenPi64 /home/demouser $ sudo parted GNU Parted 3.6 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. セクタ単位に表示を切り替え (parted) unit s 空きスペース確認 (parted) print free Model: SATA SSD (scsi) Disk /dev/sda: 468862128s Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 63s 2047s 1985s Free Space 1 2048s 524287s 522240s primary fat16 boot, lba 2 524288s 9682946s 9158659s primary btrfs 9682947s 468862127s 459179181s Free Space resizeは使えない Read more...

Gentoo distccd Docker

背景 Gentoo の Docker イメージが作りたい。が、 オフィシャルの gentoo/stage3-amd64 の更新頻度が低い( 2021/08/08 時点で以前のアップデートが 1 年前だった ) portage 用のイメージ gentoo/portageがあり、こちらは毎日更新されている。 コマンドや glibc などが置かれているビルド済みの領域は gentoo/stage3-amd64 に置かれているため、実際に使うときには emerge –update –deep –newuse @world とリビルドが必要 リビルドするとイメージのサイズがかなり増える が、できればコンパクトなイメージにしたい。 結論(2021/08/17 時点) docker-slimを使ってイメージをコンパクトにする方法が一番コンパクトになった。 手法 サイズ 備考 ダウンサイジング前 3.04GB 不要なディレクトリの削除 1.8GB emerge が一時的に使うファイル郡 (上記ディレクトリ削除に加えて)不要なパッケージの削除 983MB パッケージ一覧を見ながら不要そうなパッケージを削除 docker-slim 39MB Dockerfile サンプル ここに公開した 手法の比較 不要なディレクトリ削除は emerge が一時的に使うファイル郡を削除するだけなので安全に使える。 Read more...

make.confのメモ

make.confの FEATURES のメモ 私が良く使う、あるいは検討したもの。man make.confでも確認できる。 usepkg ローカルで使用可能なパッケージの利用を試みる バイナリーパッケージガイド - Gentoo Wiki getbinpkg リモートのバイナリパッケージホストからバイナリパッケージをダウンロード バイナリーパッケージガイド - Gentoo Wiki buildpkg インストールするたびにバイナリパッケージを作成する バイナリーパッケージガイド - Gentoo Wiki binpkg-multi-instance パッケージディレクトリを新しい形にする portage-3.0.15以降はデフォルとなので不要 バイナリーパッケージガイド - Gentoo Wiki parallel-fetch 同時に複数回呼ばれた場合、プロセス間の干渉を防ぐ Project:Portage/FAQ - Gentoo Wiki parallel-install インストール時、キメの細かいロックを使用して高度な並列化を行う、更に並列化を行う場合はebuild-lockを無効化する man make. Read more...

distccのサーバ/クライアント設定

distcc サーバーを建てる 概要 ラズパイ Gentoo GenPi64 でのコンパイルに時間がかかるので、 amd64 のマシンの docker 上にクロスコンパイル環境を構築、 distcc デーモンを立てて、ラズパイがクライアント、amd64 が distcc サーバの構成でコンパイルを早くした。 手順 distcc が起動する docker コンテナを作る distcc への接続確認 telnet コマンドでポート 3632 に接続。 切断は Ctrl + ] を押してから Ctrl + d $ telnet localhost 3632 Trying ::1... Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. ^] telnet> Connection closed. GenPi64 distcc クライアント側の設定 GenPi64 は distcc はインストール済みなので emerge は不要。ただし gcc のプロファイルを揃える distcc サーバーの IP アドレスの追加 は必要。 gcc のプロファイルを確認 Read more...

Gentoo Linuxで依存関係のあれこれを残す

依存関係のエラーをまとめる 私の短い経験と調査で得られたものを追加していく… @world の指定は大きすぎる場合がある。 @system で試すと必要なパッケージのアップデートはできるかもしれない。 個別のパッケージでアップデートを試みてみる。 @preserved-rebuild と出たら emerge -1 @preserved-rebuild を行う dispatch-conf を行う マスクされている場合、マスクされたパッケージをインストールする方法 USE フラグの変更が必要 configure で失敗 2021/08/09 perl の gettext が必要との事 checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking for library containing dlsym... -ldl checking for library containing bindtextdomain... none required configure: error: perl module Locale::gettext required eix gettext で検索して必要そうなパッケージを追加した RUN emerge sys-devel/gettext dev-perl/Locale-gettext 2023/06 ToDo 一旦、下記のmaskで自宅のラズパイ全部を最新にする Read more...

Gentoo周りのメモ

/etc/portage/gnupg が無い、というエラーが出る gpg: keyblock リソース'/etc/portage/ gnupg/pubring.kbx': そのようなファイルやディレクトリはありません\n [GNUPG:] ERROR add_keyblock_resource 33587281\n [GNUPG:] PLAINTEXT 740 \n [GNUPG:] NEWSIG\ngpg: 2023年09月03日 07時32分03秒 JSTに施された署名\n gpg: RSA鍵534E4209AB49EEE1C19D96162C44695DB9F6043Dを使用\n [GNUPG:] ERROR keydb_search 33554445\n [GNUPG:] ERROR keydb_search 33554445\n [GNUPG:] ERRSIG 2C44695DB9F6043D 1 10 01 1693693923 9 534E4209AB49EEE1C19D96162C44695DB9F6043D\n [GNUPG:] NO_PUBKEY 2C44695DB9F6043D\ngpg: 署名を検査できません: 公開鍵がありません\n 私の場合は /etc/portage/make.conf に –getbinpkg を追加したからだった。 バイナリパッケージの OpenPGP 署名を検証する Portage は可能であればいつでもバイナリパッケージの署名の検証を試みますが、 そのためにはまず、信頼されたローカル鍵を構成する必要があります。 app-portage/getuto は、ローカルのトラストアンカーをセットアップし、 /etc/portage/gnupg 内の鍵を更新するために使用することができます。 --getbinpkg または --getbinpkgonly を使用すると、Portage は自動的に getuto を呼び出します。 対応方法としては getutoコマンドをインストール getutoを実行 1度実行すると /etc/portage/gnupg ディレクトリが作成され初期化される この初期化が完了すればemergeも正常に進行する パッケージの USE フラグ /etc/portage/package. Read more...