ytooyamaのブログ

サーバ構築とか、仕事で発見したこととか、趣味のこととかを書いています。

ASUS tinker board SにArmbianをインストール

f:id:ytooyama:20191215205914p:plain
Armbian

Armbianを使ってみようと思ったきっかけ

前回、ASUS tinker board SにはtinkerOSをインストールしましたが、他のOSを入れてみようと思いました。 きっかけはtinkerOSの安定版では、最新のブラウザーが使えなかったためです。

現行のtinkerOSはDebian stretchベースになっていて、GCCはバージョン6が利用できます。stretchでメンテナンスされているGCC6にARM由来の問題があって、このGCCでビルドしたChromiumが起動できないようです。じゃあ、Firefoxを使えばいいじゃないかと思いますが、どうやらFirefoxも同じバージョンのGCCでビルドするとうまく起動できないようです。そもそも古いバージョンのOSに固執する理由もありませんから、他のOSを触ってみようと思いました。

インストールできるOSは次のtinker board フォーラムのスレッドにまとめられていました。

tinkerboarding.co.uk

普段使い慣れているDebianベースであるArmbianが良さそうです。

ダウンロードとイメージ書き込み

こちらからイメージをダウンロードします。

www.armbian.com

「Armbian Bionic」と「Armbian Buster」の、2つのイメージがダウンロードできるようです。今回はKernelが新しい「Armbian Buster」の方を選びました。

ダウンロードしたイメージは7z圧縮されているので、展開します。わたしは普段macOSを使っているので、 brew install p7zip で7z形式のアーカイブの圧縮展開に必要なツールをインストールして、これで展開しました。

tinker board SをMacと接続して、eMMCのストレージをマウントします。SD Card Fomatterでフォーマットして、belenaEtcherで展開したイメージを書き込みます。

Armbianの起動

tinker board Sをキーボードと電源をつないで起動します。イメージ書き込みが問題なければArmbianは起動します。ユーザーとして「root」、パスワードとして「1234」を入力するとパスワードの再設定に切り替わるので、今のパスワードとして「1234」を入力し、新しいパスワードを入力します。これでOKです。

Armbianにデスクトップ環境をインストールする

次を実行してLXDEでも入れましょう。

sudo apt update && sudo apt install tasksel
sudo tasksel

f:id:ytooyama:20191215205344p:plain
tasksel

ArmbianのネットワークマネージャーをWicdからNetwork Managerに切り替える

ArmbianのデフォルトのネットワークマネージャーはWicdが使われているようです。 なんか不安定だし、「Wicdはドライバーによっては不安定になるかも?」みたいな情報もあるので、NetworkManagerに切り替えることにしました。 念のため、この作業をするときは有線接続もしておきます。

sudo apt remove wicd
sudo apt install network-manager-gnome
sudo reboot

設定ツールをインストールする

raspi-config みたいなツールはArmbianにも用意されているようです。次のように実行してインストールしました。 sudo armbian-config で実行できます。

sudo apt update && sudo apt install armbian-config

Armbianでk3sを動かしてみる

Armbianでk3sを動かしてみようと思いました。cgroupの設定をおこなうため、sudo armbian-config を実行します。最初の画面で「System」を選択したあと、次の画面で「Boot env」を選択します。

f:id:ytooyama:20191215210619p:plain

このあとの画面で「cgroup_memory=1」「cgroup_enable=memory」を入力して「Save」ボタンを押します。ツールを終了して、Armbianを再起動します。

f:id:ytooyama:20191215210930p:plain

再起動後、公式サイトの手順に従って、コマンドを実行するだけです。

k3s.io

どうやらTraefikを使ったType LoadBalancerも使えそうですね。

root@tinkerboard:~# kubectl get no
NAME          STATUS   ROLES    AGE   VERSION
tinkerboard   Ready    master   12m   v1.16.3-k3s.2

root@tinkerboard:~# kubectl get svc --all-namespaces
NAMESPACE     NAME             TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)                                     AGE
default       kubernetes       ClusterIP      10.43.0.1       <none>          443/TCP                                     116m
kube-system   kube-dns         ClusterIP      10.43.0.10      <none>          53/UDP,53/TCP,9153/TCP                      116m
kube-system   metrics-server   ClusterIP      10.43.169.13    <none>          443/TCP                                     116m
kube-system   traefik          LoadBalancer   10.43.133.144   192.168.1.140   80:31157/TCP,443:30731/TCP,8080:32684/TCP   115m

このブログサイトはJavaScriptを使っていますが、読み込んでいるJavaScriptは全てはてなが提供しているものであり、筆者が設置しているものではありません。