0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Raspberry Pi 5(AlmaLinux9)にMicroShiftをインストール

Last updated at Posted at 2024-08-29

経緯

  • エッジでコンテナオーケストレーションをする際、RedHat社のOSSであるMicroShiftが手軽そうだった + OpenShift Localを使ったことがあった(UnityのロボットシミュレーションをOpenShiftで管理)ので、使ってみたかった
  • 息子(4)が、学校のチャイムが鳴るおもちゃをほしがったのでRaspberry Piで組んでみようと思った

環境

  • boot用SDカードを用意したPC: Windows 11
  • Raspberry Pi5
    • 2~3倍性能が上がった等、Raspberry Pi4のグレードアップ版
    • 5V/5Aの電源が必要
      (テキトーにUSBをつないだらOSが立ち上がらず落ちた)
  • AlmaLinux release 9.4 (Seafoam Ocelot)
    • Red Hat Enterprise Linux (RHEL)と完全に互換性のあるオープンソースのOS
    • AlmaLinux OS Foundationによって管理されており、コミュニティ主導で開発が進められている
    • Fedora IoT、CentOSも検討したが、調査時点でRaspberry Pi5に対応したイメージを見つけられなかったので今回はAlmaLinuxを採用
  • MicroShift Version: 4.8.0-0.microshift-2022-04-20-141053

手順

1. AlmaLinuxイメージ・AlmaLinuxへの接続準備 (WSL2)

  1. AlmaLinuxのイメージをダウンロード
    $ curl -O https://repo.almalinux.org/almalinux/9/raspberrypi/images/AlmaLinux-9-RaspberryPi-GNOME-latest.aarch64.raw.xz
    
  2. イメージを検証するため、AlmaLinux OS PGP public keyをダウンロード
    $ curl -O -s https://repo.almalinux.org/almalinux/RPM-GPG-KEY-AlmaLinux-9
    
  3. key fingerprintを確認
    $ gpg --with-subkey-fingerprints RPM-GPG-KEY-AlmaLinux-9
    gpg: WARNING: no command supplied.  Trying to guess what you mean ...
    pub   rsa4096 2022-01-18 [SC]
          BF18AC2876178908D6E71267D36CB86CB86B3716
    uid           AlmaLinux OS 9 <packager@almalinux.org>
    sub   rsa4096 2022-01-18 [E]
    
    • finger printがBF18AC2876178908D6E71267D36CB86CB86B3716であることを確認
  4. keyをインポート
    $ gpg --import RPM-GPG-KEY-AlmaLinux-9
    gpg: key D36CB86CB86B3716: public key "AlmaLinux OS 9 <packager@almalinux.org>" imported
    gpg: Total number processed: 1
    gpg:               imported: 1
    
  5. checksumファイルとsignatureをダウンロード
    $ curl -O -s https://repo.almalinux.org/rpi/9/images/CHECKSUM
    $ curl -O -s https://repo.almalinux.org/rpi/9/images/CHECKSUM.asc
    
  6. checksumファイルのsignatureを検証
    $ gpg --verify CHECKSUM.asc CHECKSUM
    gpg: Signature made Fri Aug  2 22:53:39 2024 JST
    gpg:                using RSA key D36CB86CB86B3716
    gpg: Good signature from "AlmaLinux OS 9 <packager@almalinux.org>" [unknown]
    gpg: WARNING: This key is not certified with a trusted signature!
    gpg:          There is no indication that the signature belongs to the owner.
    Primary key fingerprint: BF18 AC28 7617 8908 D6E7  1267 D36C B86C B86B 3716
    
    • Good signature from "AlmaLinux OS 9 <packager@almalinux.org>" が出力されることを確認
  7. ダウンロードしたイメージのchecksumを検証
    $ sha256sum -c CHECKSUM 2>&1 | grep OK
    AlmaLinux-9-RaspberryPi-GNOME-latest.aarch64.raw.xz: OK
    
  8. AlmaLinuxへssh接続するための公開鍵・秘密鍵を作成
    $ ~/.ssh
    $ ssh-keygen
    
    • id_rsa, id_rsa.pubが生成される

2. SDカードの用意 (Windows11)

  1. Raspberry Pi Imagerをダウンロード&インストール

    • ここからインストーラをダウンロード
    • インストーラの指示にしたがってインストール
  2. Raspberry Pi ImagerでAlmaLinux-9-RaspberryPi-GNOME-latest.aarch64.raw.xzをSDカードに書き込む

    • 下記のように設定し、次へをクリック
      • Raspberry Piデバイス:Raspberry Pi 5
      • OS:AlmaLinux-9-RaspberryPi-GNOME-latest.aarch64.raw.xz
        • Use custom > AlmaLinux-9-RaspberryPi-GNOME-latest.aarch64.raw.xzを選択
      • ストレージ:SDXC CARD
  3. Would you like to apply OS customization settings?で「いいえ」

  4. 書き込み

  5. 書き込みが終わったら、SDカードをRaspberryPi5に挿入

3. AlmaLinux立ち上げ(RaspberryPi5のAlmaLinux)

  1. User: almalinux, Password: almalinuxでログイン
  2. ネットワークをつなぐ
    • 有線LAN、WiFiの設定:AlmaLinuxのGUIで簡単に設定できるので詳細は省略
  3. $ ip aコマンドでIPアドレスを確認
  4. 公開鍵(1.8.で作成したid_rsa.pub)を~/.ssh/に、authorized_keysというファイル名で保存

5. Raspberry Pi5のAlmaLinuxへログイン(WSL2)

  1. Raspberry Pi5のAlmaLinuxにSSH接続
    $ ssh almalinux@<3.3.で確認したIPアドレス>
    
  2. AlmaLinuxへログインできたことを確認
    [almalinux@almalinux ~]$
    

6. MicroShiftインストール(AlmaLinux)

全コマンドを十分理解していないので、過不足あるかもしれません

  1. SELinuxを無効化

    $ sudo nano /etc/selinux/config
    
    • SELINUX=disabledに更新
  2. cgroupv2のメモリコントローラを有効化

    $ sudo sed -i -e "1 s/$/ cgroup_enable=memory/" /boot/cmdline.txt
    
  3. 再起動

    $ sudo reboot
    
  4. 必要なリポジトリの追加

    $ sudo dnf install -y epel-release
    $ sudo dnf config-manager --set-enabled crb
    
    • EPEL(Extra Packages for Enterprise Linux)
    • CRB
  5. Gitとtarのインストール

    $ sudo dnf update -y
    $ sudo dnf install -y git tar
    
    • tarをインストールしておくとVSCodeのRemote-SSHから接続できる
  6. CRI-Oのインストール

    $ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable.repo https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/CentOS_8/devel:kubic:libcontainers:stable.repo
    $ sudo curl -L -o /etc/yum.repos.d/devel:kubic:libcontainers:stable:cri-o:1.24.repo https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable:cri-o:1.24/CentOS_8/devel:kubic:libcontainers:stable:cri-o:1.24.repo
    $ sudo dnf install -y cri-o
    $ sudo systemctl start crio
    $ sudo systemctl enable --now crio
    
    • $ sudo systemctl start crioが不要っぽいが、飛ばすとエラーになった(原因究明せず)
  7. MicroShiftインストール

    $ sudo dnf copr enable -y @redhat-et/microshift
    $ sudo dnf install -y microshift
    $ microshift version
        MicroShift Version: 4.8.0-0.microshift-2022-04-20-141053
        Base OKD Version: 4.8.0-0.okd-2021-10-10-030117
    $ sudo systemctl enable --now microshift
    
  8. ocコマンドインストール

    $ curl -O https://mirror.openshift.com/pub/openshift-v4/aarch64/clients/ocp/stable/openshift-client-linux.tar.gz
    $ tar xvzf openshift-client-linux.tar.gz
    $ sudo mv oc /usr/local/bin/
    $ oc version
        Client Version: 4.16.8
        Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
    
  9. ocコマンドのconfig設定

    $ mkdir -p ~/.kube
    $ sudo cat /var/lib/microshift/resources/kubeadmin/kubeconfig > ~/.kube/config
    $ sudo chown $USER:$USER ~/.kube/config
    $ chmod 600 ~/.kube/config
    

7. プロジェクトの作成

  • ocコマンドを用いてprojectを作成
    $ oc new-project sample-app
    Now using project "sample-app" on server "https://127.0.0.1:6443".
    
    You can add applications to this project with the 'new-app' command. For example, try:
    
        oc new-app rails-postgresql-example
    
    to build a new example application in Ruby. Or use kubectl to deploy a simple Kubernetes application:
    
        kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.43 -- /agnhost serve-hostname
    
  • クリーンアップ
    $ oc delete project sample-app
    project.project.openshift.io "sample-app" deleted
    

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?