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のトラブルシューティング

メトリクスサーバが起動していなかった 検証でサーバを増やす際にddコピーでサーバを増やしており、k3sサーバとk3sエージェントの整合性が崩れ、正常に動作していなかったケースを調査して直したのであまり参考にはならない。 一応、記録として残す。 E0706 00:24:50.413023 2860 resource_quota_controller.go:413] unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request W0706 00:24:50.434573 2860 garbagecollector.go:747] failed to discover some groups: map[metrics.k8s.io/v1beta1:the server is currently unable to handle the request] E0706 00:25:20.435843 2860 resource_quota_controller.go:413] unable to retrieve the complete list of server APIs: metrics.k8s.io/v1beta1: the server is currently unable to handle the request W0706 00:25:20.469495 2860 garbagecollector. 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周りのメモ

パッケージの USE フラグ /etc/portage/package.use/ 配下に置くようにした。 以下、chromecast できるのは vlc であって、mpv ではないので、不要になったがメモ echo 'media-video/mpv bluray dvb pulseaudio raspberry-pi' > /etc/portage/package.use/mpv sudo emerge --ask --newuse --verbose media-video/mpv echo 'media-sound/mpg123 -sdl' > /etc/portage/package.use/mpg123 echo 'media-libs/libmpeg2 -sdl' > /etc/portage/package.use/libmpeg2 echo 'media-video/vlc chromecast upnp' > /etc/portage/package.use/vlc 「このコマンドはどのパッケージだろう?」を検索する equery belongs -e ファイルパス を使う ラズパイ上で hub コマンド(github 用のコマンド)をインストール !!! All ebuilds that could satisfy "dev-vcs/hub" have been masked. !!! One of the following masked packages is required to complete your request: - dev-vcs/hub-2. Read more...