OpenShift 4.3 - 獲得ImageStream中使用的應用鏡像離線包


在線下載OpenShift使用的應用鏡像網速通常比較慢,因此可通過下載離線鏡像包的方式避免OpenShift在線實時拉鏡像;另外,對於一些運行在內網的OpenShift集羣也需要通過離線方式使用應用鏡像。本文說明如何通過Katacoda和Baidu網盤的Linux客戶端獲取離線的OpenShift應用鏡像。

建議:

  1. 由於Katacoda環境的Session最多隻有1小時的時間,所以每次建議只傳一個鏡像。
  2. 由於在白天受到網絡影響,將Katacoda文件上傳到Baidu網盤的過程網速比較慢。但是在清晨還是比較快,網速能達到幾兆/秒。

準備環境

開啓Katacoda環境

進入katacoda的openshift環境

安裝unzip

yum install -y unzip

生成離線OpenShift的應用鏡像

下載安裝oc的Linux客戶端

wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/4.3.18/openshift-client-linux-4.3.18.tar.gz
tar -xvf openshift-client-linux-4.3.18.tar.gz
\cp oc /usr/bin/

設置應用鏡像目錄

FORMAL_PATH=~/ocp-app-images
TEMP_PATH=~/temp
mkdir $FORMAL_PATH $TEMP_PATH

設置下載鏡像列表

cat << EOF > $FORMAL_PATH/app-images.txt
registry.access.redhat.com/rhscl/httpd-24-rhel7:latest
registry.access.redhat.com/rhscl/nginx-112-rhel7:latest
EOF

下載OpenShift的應用鏡像到Katacoda

cat $FORMAL_PATH/app-images.txt | while read line; do
  echo "================> Begin downloading $line <================"
  oc image mirror $line --filter-by-os=linux/amd64 --dir=$TEMP_PATH file://$(echo $line | cut -d '/' -f2)/$(echo $line | cut -d '/' -f3)
done

打包OpenShift的應用鏡像

for dir1 in $(ls $TEMP_PATH/v2); do
  mkdir -p $FORMAL_PATH/$dir1
  for dir2 in $(ls $TEMP_PATH/v2/$dir1); do
  	echo "================> Begin packaging $FORMAL_PATH/$dir1/$dir2.tar.gz <================"
    tar -zcvf $FORMAL_PATH/$dir1/$dir2.tar.gz -C $TEMP_PATH/v2/$dir1 $dir2;
  done
done

上傳離線鏡像到Baidu

下載安裝Baidu網盤的Linux客戶端

wget https://github.com/iikira/BaiduPCS-Go/releases/download/v3.6.2/BaiduPCS-Go-v3.6.2-linux-amd64.zip
unzip BaiduPCS-Go-v3.6.2-linux-amd64.zip
mv BaiduPCS-Go-v3.6.2-linux-amd64/BaiduPCS-Go /usr/bin/baidu

登錄Baidu網盤

baidu login

上傳離線鏡像到Baidu網盤

BAIDU_PATH=/ocp-app-images
baidu mkdir $BAIDU_PATH
for dir in $(ls $FORMAL_PATH); do
  baidu mkdir $BAIDU_PATH/$dir
  for file in $(ls $FORMAL_PATH/$dir); do
  	echo "================> Begin uploading $FORMAL_PATH/$dir1/$dir2.tar.gz <================"
    baidu upload $FORMAL_PATH/$dir/$file $BAIDU_PATH/$dir
  done
done

參考

Baidu網盤的Linux客戶端命令

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章