OpenShift 4.3 - 获得ImageStream中使用的应用镜像离线包

6 篇文章 0 订阅
4 篇文章 0 订阅

OpenShift 4.x HOL教程汇总


在线下载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

方法1

配置环境

  1. 安装Python环境
yum install -y python
python3 get-pip.py
  1. 安装bypy软件
pip install requests
pip install setuptools
pip install bypy
source ~/.bashrc

上传文件

  1. 登录Baidu网盘。期间按提示用浏览器访问“https://openapi.baidu.com/oauth/。。。”的页面,然后在页面中授权应用访问,最后再将下图中的授权码复制到Terminal的命令行提示中,
$ bypy info
 
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Baidu PCS currently gives totally WRONG MD5 hash for remote files, and I AM NOT GOING TO ADAPT TO IT!
So it if doesn't work, install version '1.6.10' using the following command:
pip install bypy==1.6.10
Version 1.6.10 has a workaround for this.
### Seeking maintainer fo this `bypy` project, if you are interested, please create an issue at github, thanks. ###
----------------------------------------------------------------
百度云盘返回的MD5全错了,鬼知道他们什么时候会改回来!现在代码是按照MD5值是正确的前提来写的,不会改。
所以你发现比较功能等不能正确工作时,请安装 1.6.10 版本:
pip install bypy==1.6.10
1.6.10版有个临时解决方案。
### 寻求这个`bypy`项目维护者,有意的话请去github上建issue,谢谢。###
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
Please visit:
https://openapi.baidu.com/oauth/2.0/authorize?client_id=q8WE4EpCsau1oS0MplgMKNBn&response_type=code&redirect_uri=oob&scope=basic+netdisk
And authorize this app
Paste the Authorization Code here within 10 minutes.
Press [Enter] when you are done

在这里插入图片描述
2. 上传之前可对比较大的文件切割。下面命令会将“YOUR_FILE”切分,然后加上001、002…的编号。

split -b 20M -d -a 3 <YOUR_FILE>

只需要cat命令就可将文件合并。

cat <YOUR_FILE>.* > <YOUR_FILE>
  1. 上传文件。以下为将当前目录的所有文件传到Baidu网盘的“/apps/bypy”目录。(注意:目前上传文件只能放在“/apps/bypy”目录下)。
bypy upload ./ /apps/bypy

方法2(目前已经失效了)

下载安装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客户端命令
bypy说明

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值