はじめに
Google Cloud Platform 内にあるContainer Registryにある非公開のコンテナイメージをローカルパソコンに高速でダウンロードする方法をメモしておきます。
Google Cloud Shellにある「cloudshell download」でダウンロードする手順を試しましたが500MBで30分以上かかってイライラしたので、別の方法がないか模索している内に見つけた手順です。
コンテナイメージをネット上で公開せずに、別の開発者の方に渡す際に利用できる方法かと思います。
※ダウンロードしたファイルの整合性などは未確認ですので自己責任でお願いします。
GCPコンソールでpullコマンドをコピー
GCPコンソールで対象コンテナイメージの右端にある縦3点ドットのクリックするとサブメニューが開くので「pullコマンドを表示」をクリックし、pullコマンドをコピーしてくる。
docker pull gcr.io/project-name001/cont-img-manage-pilot:latest
Cloud Shellでpullコマンドを実行
GCPコンソール画面の右上にあるCloud ShellアイコンをクリックしCloud Shellを起動する。
先ほどコピーしたPullコマンドを実行。
docker pull gcr.io/project-name001/cont-img-manage-pilot:latest
取得したコンテナイメージを確認。
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/project-name001/cont-img-manage-pilot latest ee67c3b1f999 5 months ago 1.27GB
コンテナイメージの保存
取得したコンテナイメージは、Cloud Shell用の一時的な仮想VMのどこかに保存されているので、これをtar形式で保存?書き出し?を行う。
自分のルートディレクトリに保存、1.27GBもあるので数秒かかる。
MyAccountName@cloudshell:~$ docker save gcr.io/project-name001/cont-img-manage-pilot:latest -o cont-img-manage-pilot.tar
一時的なHTTPサーバーで公開してダウンロード
このファイルを一時的なHTTPサーバーで公開してダウンロードさせる。
公開ディレクトリに対象ファイルを移動させる
MyAccountName@cloudshell:/tmp/tmp.GPPKd6UX8R$ cp -Rp /home/MyAccountName/cont-img-manage-pilot.tar ./
一時的なHTTPサーバーを起動させる
MyAccountName@cloudshell:/tmp/tmp.GPPKd6UX8R$ python -m SimpleHTTPServer 8080
問題無く起動すると下記の様な表示がでてくる。
********************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunset
To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command will automatically proceed in seconds or on any key.
********************************************************************************
Serving HTTP on 0.0.0.0 port 8080 ...
Cloud Shellは現状のまま置いておいて、自分アイコンの左2個隣りの「ウェブプレビュー」アイコンからクリック
「ポート8080でプレビュー」をクリックするとウェブページが開く
この様な感じでダウンロードが可能になる。
ダウンロードが完了したらCloud Shellで「Ctrl + c」でHTTPサーバーを終了させる
1.27GBを約10分ほどでダウンロードできたので、そこそこ良い方法なのかもしれない。
※ダウンロードしたファイルの整合性などは未確認ですので自己責任でお願いします。
GCPからクラスタ強制削除のお知らせが来た
バージョン古いからクラスタごと強制削除するよと通告メールがきました。
Hello DDDD,
We’re writing to let you know that OSS Kubernetes is moving on from Dockershim[1] and removing built-in support for the Docker container runtime (“Dockershim”) starting with v1.24. For this reason, GKE will not support GKE node images based on Dockershim starting with GKE v1.24.
Most user workloads do not have dependencies on the container runtime. If you use a node image based on Dockershim, please migrate your GKE workloads to a Containerd node image[2] as soon as possible.
For your reference, below are the GKE node images for the Containerd and Docker container runtimes, respectively:
Containerd container runtime (recommended): cos_containerd, ubuntu_containerd, windows_ltsc_containerd, windows_sac_containerd
Docker container runtime (unsupported starting with v1.24): cos, ubuntu, windows_ltsc, windows_sac
What do I need to know?
GKE will remove support for Dockershim starting with GKE v1.24[3]. To mitigate the impact of this change, we want to help you transition from Docker to Containerd node images:
コメント