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
・社内から外部ネットワークにアクセスするためプロキシを設定しています。
コメント
h-yuusuke
マルティネ様
ご返信ありがとうございます。
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…
at_dominique.m…
2022年4月18日 10時50分
h-yuusukeさん、
お世話になっています。
アットマークテクノのマルティネです。
>
> エラーを解消するためにはどのようにしたらよいでしょうか?
>
> ・社内から外部ネットワークにアクセスするためプロキシを設定しています。
このエラーをみると、ネットワークのプロキシが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で保存されますので再起動したら消えます)
方法がいくつかあったちょっと分かりにくいと思いますが、どれかの方法を選んで詳しい説明が必要でしたらまた聞いてください。
よろしくお願いします。