Armadilloフォーラム

podの作成について

h-yuusuke

2022年4月18日 10時17分

お世話になっております。

掲題の件につきまして、下記「podman pod create」コマンドでpodを作成しようとしたところ、エラーとなり作成ができない状態となっております。

armadillo:~# podman pod create -p 80:80 -p 8081:8081 -p 31000:31000 -n wwwpod
initializing source docker://k8s.gcr.io/pause:3.5: pinging container registry k8s.gcr.io: Get "https://k8s.gcr.io/v2/": x509: certificate signed by unknown authority
Error: repository name must have at least one component

エラーを解消するためにはどのようにしたらよいでしょうか?

・BaseOSのバージョンは「3.15」です。

Welcome to Alpine Linux 3.15
Kernel 5.10.101-1-at on an aarch64 (/dev/ttymxc1)
 
armadillo:~# cat /proc/version
Linux version 5.10.101-1-at (builder@a3a29b8c603b) (aarch64-alpine-linux-musl-gcc (Alpine 10.3.1_git20211027) 10.3.1 20211027, GNU ld (GNU Binutils) 2.37) #2-Alpine SMP PREEMPT Mon Feb 21 22:14:25 UTC 2022

・社内から外部ネットワークにアクセスするためプロキシを設定しています。

コメント

at_dominique.m…

2022年4月18日 10時50分

h-yuusukeさん、

お世話になっています。
アットマークテクノのマルティネです。

> initializing source docker://k8s.gcr.io/pause:3.5: pinging container registry k8s.gcr.io: Get "https://k8s.gcr.io/v2/": x509: certificate signed by unknown authority

>
> エラーを解消するためにはどのようにしたらよいでしょうか?
>
> ・社内から外部ネットワークにアクセスするためプロキシを設定しています。

このエラーをみると、ネットワークのプロキシがhttpsの接続の場合に自分の証明書を使って暗号化をやり直してるようにみえます。

podman pod create では、k8s.gcr.io/pause:3.5 (--infra-imageのデフォールト)のコンテナをpullして起動していますので、その際に接続できないとエラーしています。
解決方法は二つ考えれます:
- Armadillo上に会社のプロキシの証明書を入れます。
openssl s_client -showcertなどで証明書を取得して、/usr/share/ca-certificates/proxy.crt 等に保存してから update-ca-certificate を実行すれば /etc/ssl/certs/ca-certificates.crt にその証明書が追加されて使えるようになります。(persist_fileで両方を保存するだけでOKです、アップデートですでに保存の対応があります)

- Armadilloでネットワークを使わないように、このコンテナイメージをatdeで保存してtarとして送信します
atdeにpodmanをインストールして、podman pull k8s.gcr.io/pause:3.5 && podman save k8s.gcr.io/pause:3.5 > pod.tar でアーカイブできます。
そのアーカイブをswuでswdesc_embed_containerとして送信できますし、USBメモリにいれてpodman load -i pod.tar で読み込めます(podman loadは、podman_switch_storage --diskしなかった場合にtmpfsで保存されますので再起動したら消えます)

方法がいくつかあったちょっと分かりにくいと思いますが、どれかの方法を選んで詳しい説明が必要でしたらまた聞いてください。

よろしくお願いします。

h-yuusuke

2022年4月18日 11時31分

マルティネ様
ご返信ありがとうございます。

2つ目の方法(k8s.gcr.io/pause:3.5のコンテナイメージを保存してArmadilloに送信)を実施し、「podman pod create」コマンド実行でエラーが発生しない様になりました。

「podman pod create」コマンド実行後、podman imagesコマンド等で下記の様になっていますが、これでpodが正しく作成されたと考えてよいでしょうか?

# podman images
REPOSITORY                    TAG         IMAGE ID      CREATED        SIZE
k8s.gcr.io/pause              3.5         f7ff3c404263  13 months ago  488 kB
 
# podman pod ps
POD ID        NAME        STATUS      CREATED        INFRA ID      # OF CONTAINERS
970e105d3a88  wwwpod   Created     5 seconds ago  8b433529e8c7  1
 
# podman ps -a
CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS           PORTS                                                                 NAMES
8b433529e8c7  k8s.gcr.io/pause:3.5                                  2 minutes ago  Created          0.0.0.0:80->80/tcp, 0.0.0.0:8081->8081/tcp, 0.0.0.0:31000->31000/tcp  970e105d3a88-infra

at_dominique.m…

2022年4月18日 11時38分

> 「podman pod create」コマンド実行後、podman imagesコマンド等で下記の様になっていますが、これでpodが正しく作成されたと考えてよいでしょうか?

はい、そこまでできたら後はpod内にコンテナを実行するだけです。
(podman run --pod wwwpod のオプションで)

/etc/atmark/containers/*.confを使えば、
wwwpod.conf に type=podとportsの設定をして、コンテナにpod=wwwpodの設定をすれば実行できると思います。

よろしくお願いします。