やはり何かがおかしい今日この頃。
鹿野です。
・・・・・・。
おかしい。
仕事は今月ず〜っとお休みのはずなんだけど、なぜか仕事してる???
というわけでクリスマスイブ!!
クリスマスツリー、ではなく、うちの観葉植物・・・でもなく、、
ふつーに冬のリコリスの影に隠れたぎーこくんなのでした。
今日は openSUSE Advent Calendar 2022 の 23日目の記事となります。(日付おかしいけどそこは気にしない!
前々回 の記事に引き続いて、 Tumbleweed に Kubernetes をインストールしてみよう!
・・・のはずだったのですが、 諸事情 により、路線変更して Podman に触ってみよう!!
という記事にしていきたいと思います。
※もちろん諸事情の理由から行きます!!!!!!
結局 Kubernetes はどうなった???
はい。いろいろ試しました。
が、にっちもさっちもいかなくなったので、とりあえず棚上げです!!!
openSUSE Tumbleweed には patterns-kubernetes-kubeadm
というパッケージが存在します。
基本的にはこれをインストールすれば、確かに kubeadm、kubelet といった必要なものがインストールされるわけです。
というわけで kubeadm init
を実行してみます!!
> sudo kubeadm init --cri-socket=/var/run/containerd/containerd.sock --apiserver-advertise-address=192.168.0.99 --pod-network-cidr=10.128.0.0/16 W1224 07:51:08.536731 3035 initconfiguration.go:120] Usage of CRI endpoints without URL scheme is deprecated and can cause kubelet errors in the future. Automatically prepending scheme "unix" to the "criSocket" with value "/var/run/containerd/containerd.sock". Please update your configuration! [init] Using Kubernetes version: v1.23.4 [preflight] Running pre-flight checks [WARNING Firewalld]: firewalld is active, please ensure ports [6443 10250] are open or your cluster may not function correctly [WARNING SystemVerification]: missing optional cgroups: blkio [WARNING Service-Kubelet]: kubelet service is not enabled, please run 'systemctl enable kubelet.service' [preflight] Pulling images required for setting up a Kubernetes cluster [preflight] This might take a minute or two, depending on the speed of your internet connection [preflight] You can also perform this action in beforehand using 'kubeadm config images pull' error execution phase preflight: [preflight] Some fatal errors occurred: [ERROR ImagePull]: failed to pull image registry.opensuse.org/kubic/kube-apiserver:v1.23.4: output: E1224 07:51:14.025513 3094 remote_image.go:238] "PullImage from image service failed" err="rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-apiserver:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-apiserver:v1.23.4\": registry.opensuse.org/kubic/kube-apiserver:v1.23.4: not found" image="registry.opensuse.org/kubic/kube-apiserver:v1.23.4" time="2022-12-24T07:51:14+09:00" level=fatal msg="pulling image: rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-apiserver:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-apiserver:v1.23.4\": registry.opensuse.org/kubic/kube-apiserver:v1.23.4: not found" , error: exit status 1 [ERROR ImagePull]: failed to pull image registry.opensuse.org/kubic/kube-controller-manager:v1.23.4: output: E1224 07:51:18.584372 3132 remote_image.go:238] "PullImage from image service failed" err="rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-controller-manager:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-controller-manager:v1.23.4\": registry.opensuse.org/kubic/kube-controller-manager:v1.23.4: not found" image="registry.opensuse.org/kubic/kube-controller-manager:v1.23.4" time="2022-12-24T07:51:18+09:00" level=fatal msg="pulling image: rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-controller-manager:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-controller-manager:v1.23.4\": registry.opensuse.org/kubic/kube-controller-manager:v1.23.4: not found" , error: exit status 1 [ERROR ImagePull]: failed to pull image registry.opensuse.org/kubic/kube-scheduler:v1.23.4: output: E1224 07:51:23.106705 3171 remote_image.go:238] "PullImage from image service failed" err="rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-scheduler:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-scheduler:v1.23.4\": registry.opensuse.org/kubic/kube-scheduler:v1.23.4: not found" image="registry.opensuse.org/kubic/kube-scheduler:v1.23.4" time="2022-12-24T07:51:23+09:00" level=fatal msg="pulling image: rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-scheduler:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-scheduler:v1.23.4\": registry.opensuse.org/kubic/kube-scheduler:v1.23.4: not found" , error: exit status 1 [ERROR ImagePull]: failed to pull image registry.opensuse.org/kubic/kube-proxy:v1.23.4: output: E1224 07:51:27.758898 3209 remote_image.go:238] "PullImage from image service failed" err="rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-proxy:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-proxy:v1.23.4\": registry.opensuse.org/kubic/kube-proxy:v1.23.4: not found" image="registry.opensuse.org/kubic/kube-proxy:v1.23.4" time="2022-12-24T07:51:27+09:00" level=fatal msg="pulling image: rpc error: code = NotFound desc = failed to pull and unpack image \"registry.opensuse.org/kubic/kube-proxy:v1.23.4\": failed to resolve reference \"registry.opensuse.org/kubic/kube-proxy:v1.23.4\": registry.opensuse.org/kubic/kube-proxy:v1.23.4: not found" , error: exit status 1 [preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...` To see the stack trace of this error execute with --v=5 or higher
じゃ〜ん!!
見ての通り、Leap 15.4 で試したときと、ほぼ同じエラーが出てしまいました(汗
どうしてこうなった!?!???
前回ちゃんと追わなかったのでもうすこしちゃんと調べてみた
そもそもこのコンテナレジストリにイメージがないと言われるんですよね。
いや、あるじゃん!! ちゃんとコンテナレジストリあったやん!!
だとすると、 kubic/kube-scheduler
ってイメージがないのかな?
いやいや、ふつーにあるじゃん!!!
だとすると・・・自ずと答えは出てくるわけで、案の定と言いますか・・・
コンテナレジストリに v1.23.4 のバージョンのイメージが存在しない!
となるわけですorz (Leap のときもバージョンこそ違うものの同じ理由ぽかった
なんでやねん!??
もうちょいちゃんと調べてみた
実は kubeadm init
を叩いた際の別の場所にややおかしな箇所を見つけていました。
どこかというとこの部分。
[init] Using Kubernetes version: v1.23.4
まぁこれが原因で、 v1.23.4 のイメージを落とそうとしたのでしょうけど、これにはそもそもの話がありまして。。。
そもそも kubeadm は v1.24.3 をインストールしようとしたんだけどそれはどこへ行った!??
上の画像を見てもらってもわかるかと思いますね。 patterns-kubernetes-kubeadm
に紐付いているのは v1.24.3 だったのです。
ところが実際に動いているものはどういうわけか v1.23.4 っぽい?
しかも何度入れ直しても v.1.23.4 が動いてしまいます。。。
で、コンテナレジストリには v.1.24.3 のイメージだったらちゃんと存在するのにな〜って。
う〜〜〜ん・・・・・。。。
というわけですみませんがここら辺で調査終了とさせていただきます。まるっと。
本題。Podman について
ところで先程の openSUSE Registry のページにこんな表記がありました。
podman pull registry.opensuse.org/kubic/kube-scheduler:v1.23.9
ようはコンテナイメージを podman
というコマンドを使って pull してきてね!みたいな話のようですね
というわけで簡単に Podman について調べてみたので、早速試してみようかと。
以下のページがわかりやすく説明されていて、とても参考になりました。
Podman とは Docker や Containerd のようなコンテナランタイムなのかな〜と思ったのですが、 Kubernetes で Pod は動かせないらしい。
というか、 Kubernetes のコンテナランタイムには現状なりえないってことなんでしょうね。
・・・なんだかなぁ〜・・・(いや言いたいことは山ほどあるけどここでは割愛!!
基本的には Docker とコマンドが一緒のようですね。というわけで早速試してみたいと思います。
まずは zypper を使ってインストール。
sudo zypper install podman
インストールできたら続いて Docker っぽく Hello world を動かしてみましょう〜
podman run docker.io/hello-world:latest
こんな風に表示されれば OK ですね!
ERRO[0000] User-selected graph driver "btrfs" overwritten by graph driver "overlay" from database - delete libpod local files to resolve. May prevent use of images created by other tools ERRO[0000] User-selected graph driver "btrfs" overwritten by graph driver "overlay" from database - delete libpod local files to resolve. May prevent use of images created by other tools Trying to pull docker.io/library/hello-world:latest... Getting image source signatures Copying blob 2db29710123e done Copying config feb5d9fea6 done Writing manifest to image destination Storing signatures Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
docker.io のイメージを使用したので、 Docker と同じように表示されるはずです。
(はて?一番上のエラーは何だろっと。←未確認
ついでに pull したイメージも確認してみましょう
podman images
で確認します。
> podman images ERRO[0000] User-selected graph driver "btrfs" overwritten by graph driver "overlay" from database - delete libpod local files to resolve. May prevent use of images created by other tools REPOSITORY TAG IMAGE ID CREATED SIZE registry.opensuse.org/kubic/kube-controller-manager v1.24.3 4e8306ed345f 27 hours ago 145 MB registry.opensuse.org/kubic/kube-controller-manager v1.23.9 943caf147096 27 hours ago 172 MB docker.io/library/hello-world latest feb5d9fea6a5 15 months ago 19.9 kB
ふつーに Docker っぽく使えますね!
最後に
はぁ〜・・・。
本日のお話はこれにて終了とします。
openSUSE Tumbleweed で Kubernetes を動かそうとしても、とりあえず今は動きませんでしたっと。
が、なんとなくですが、、そのうち修正されるような気がしますね。はい。
最後に宣伝!
「Geeko Magazine Special Edition 2022 冬」に 一年ぶり に寄稿させていただきました。
いつものように、私の記事は一番最後の小説です(笑)
こんなやつ??? 注:挿絵イラストのカラー版です
まだ本編小説は未公開となっていますが、そのうちリンクする小説をどこかで公開する予定です。
その際は追って報告いたします!