2020/11/30
今回できたこと
Jetson Nano関連:
K3s環境を削除し、K8s環境を構築した。
デフォルトランタイムをnvidiaに変更する。
Docker on FreeBSDについて、提供された情報をまとめた。
今後の作業
K8s aarch64クラスタを実現する。
とりあえず、よくある例題をする。
現実的な構成をどうするのか?
お約束
文章化作業
作業報告関連
トップのページで、全てのページのサムネイルが「この文章は、日本仮想化技術株式会社の社会人インターシップ制度を利用して作業した結果をまとめたものです。」となってしまうので、内容の順番を「今回できたこと」などの後に「お約束」として、この言葉を入れるように順番変更した。 古い作業報告で、「今回できたこと」などの項目がなかったため、これを追加する。
定例作業
参考文献
Jetson NanoにK8s環境を構築する
以前(2020/11/06)、Jetson NanoにK3s環境を構築したが、aarch64クラスタはK8s環境で構築する方針としたため、K3s環境を削除し、K8s環境に変更する。 code:shell
$ /usr/local/bin/k3s-uninstall.sh
(snip)
次に、K8s環境をJetson Nanoに構築する。
code:shell
OK
$ sudo apt-get update
(snip)
$ sudo apt-get install kubelet kubeadm kubectl
(snip)
K3sでテストで動いていた環境が残っていたため、以下のようにK8sをリセットする。
code:shell
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED
STATUS PORTS NAMES
26b2f9d1ff2c 9be4f056f04b "entry" 27 minutes ago Up 27 minutes k8s_lb-port-443_svclb-traefik-cvm2z_kube-system_f6d0170a-5a5d-42bc-be9f-ba94f714e86a_18
2d48add1cef4 9be4f056f04b "entry" 27 minutes ago Up 27 minutes k8s_lb-port-80_svclb-traefik-cvm2z_kube-system_f6d0170a-5a5d-42bc-be9f-ba94f714e86a_18
(snip)
$ sudo kubeadm reset
reset WARNING: Changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted. reset Are you sure you want to proceed? y/N: y W1130 09:59:30.583921 22701 removeetcdmember.go:79] reset No kubeadm config, using etcd pod spec to get data directory reset No etcd config found. Assuming external etcd reset Please, manually reset etcd to prevent further issues reset Stopping the kubelet service reset Unmounting mounted directories in "/var/lib/kubelet" W1130 09:59:30.597355 22701 cleanupnode.go:99] reset Failed to evaluate the "/var/lib/kubelet" directory. Skipping its unmount and cleanup: lstat /var/lib/kubelet: no such file or directory The reset process does not clean CNI configuration. To do so, you must remove /etc/cni/net.d
The reset process does not reset or clean up iptables rules or IPVS tables.
If you wish to reset iptables, you must do so manually by using the "iptables" command.
If your cluster was setup to utilize IPVS, run ipvsadm --clear (or similar)
to reset your system's IPVS tables.
The reset process does not clean your kubeconfig files and you must remove them manually.
Please, check the contents of the $HOME/.kube/config file.
以下のように、不要なDockerプロセスは削除された。
code:shell
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Jetson Nanoでデフォルトランタイムとしてnvidiaを使う
以下の設定で、Dockerのデフォルトランタイムをnvidiaに変更することができた。
以前の設定で間違っていたのは、"default-runtime": "nvidia"の記述位置が"runtimes":の中になっていたことである。
code:/etc/docker/daemon.json
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
以下のように再起動し、デフォルトランタイムがnvidiaに変わったことを確認した。
code:shell
$ sudo systemctl restart docker
$ docker info |grep Runtime
Runtimes: nvidia runc
Default Runtime: nvidia
Docker on FreeBSDの情報収集
参加者二人から、には、DockerをFreeBSDで動かすための具体的な情報があり、この手順でDockerが動くはずということであった。 手元で試したところ、Goのバイナリを作成するところで、バイナリが生成されなかった。
code:shell
$ ./hack/make.sh binary
これに対して、以下のファイルの修正でビルドができると連絡があり、パッチの提供を受けた。
docker/VERSION
docker/system/mknod.go
doker/archive/archive.go
しかし、動作状況は以下のようである。
docker vesionは正しい表示をしているようだ。
code:shell
% ./bundles/latest/binary/docker version
Client version: 19.03.13
Client API version: 1.19
Go version (client): go1.15.5
Git commit (client): b1c37d233-dirty
OS/Arch (client): freebsd/amd64
Server version: 19.03.13
Server API version: 1.19
Go version (server): go1.15.5
Git commit (server): b1c37d233-dirty
OS/Arch (server): freebsd/amd64
dockerデーモンが動いていないように見える?
一度、手元でもビルドしてみて、動作を確認してみる予定である。