Fess on Kubernetes

Helm対応はできていないのだが、eckctlを作り、elastic cloud on k8sを試せる環境を作っていたので、それをベースにして、kubernetes-fessを作ってみた。簡単にいうと、FessをKubernetesにデプロイして簡単に試せる環境を作るツールみたいな感じです。

デフォルトでは、kindでk8s環境を作るので、ローカルでも簡単に試せると思います。eksctlコマンドを入れておけば、AWSのEKS上にも構築することができます。クラスタの構築内容とかはmanifestsディレクトリに置いてあるファイルを編集すれば調整できます。taintsで配置するPodのノードを指定して、resourceのrequestで1ノード1Podにしているので、AWSでインスタンスタイプを変えるときとかは合わせて変更する必要があります。

今回、EKSで試す環境が欲しかったかというと、elasticsearchのDockerイメージはマルチアーキテクチャに対応していて、ARM環境でも動きます。そこで、FessもARM対応したいなーと思い、検証環境が必要になったので、その環境を作った感じです。ということで、次のリリースから、FessのDockerイメージはARM対応していきます。

docker buildxでarmがない

Ubuntu 20.04でDockerのマルチアーキテクチャのビルドをしようとしているが、docker buildx lsしても以下のような感じでarmが表示されない…。

$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/386

QEMUを入れてみたり、環境変数を設定したところで変わらない。ググってもいまいち良いものがヒットしないのだが、github.com/docker/buildxを読むと、以下を実行すれば良いっぽい。

$ docker run --privileged --rm tonistiigi/binfmt --install all

QEMUも入れておく必要があると思うが、無事にarmが表示されるようになった。

$ docker buildx ls
NAME/NODE DRIVER/ENDPOINT STATUS PLATFORMS
default * docker
default default running linux/amd64, linux/386, linux/arm64, linux/riscv64, linux/ppc64le, linux/s390x, linux/arm/v7, linux/arm/v6

Chromeで印刷ができなくなる

おそらく、ChromeからCloudPrintの機能がなくなったからが原因だと思っているのだが、Chromeで印刷をしようとすると、「プレビューを読み込んでいます」と表示され、印刷ができない状態になりました…。プレビューの表示待ちになり、キャンセルボタンを押す以外に戻る手段もない状態になります。領収書を発行しようとして、この状態になると再発行になってしまうので最悪な感じです…。私の環境では、Chromeで複数のプロファイルに分けて使っているのですが、特定のプロファイルだけがこの影響を受けており、プライベートモードにしてもだめだし、拡張機能を無効にしてもだめだし、ググっても大した情報もない。ということで、Chromeの設定から設定のリセットを実施したら印刷プレビューが表示されるようになったので、この状態になったら、設定のリセットして対応しか方法がないかもしれないです。