OpenShift 4.3.8離線鏡像制作

關(guān)于版本的選擇

openshift 4的安裝需要用到很多文件枉长,如下:

ocp_bios: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.8/rhcos-4.3.8-x86_64-metal.x86_64.raw.gz"
ocp_initramfs: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.8/rhcos-4.3.8-x86_64-installer-initramfs.x86_64.img"
ocp_install_kernel: "https://mirror.openshift.com/pub/openshift-v4/dependencies/rhcos/4.3/4.3.8/rhcos-4.3.8-x86_64-installer-kernel-x86_64"
ocp_client: "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/4.3.8/openshift-client-linux-4.3.8.tar.gz"
ocp_installer: "https://mirror.openshift.com/pub/openshift-v4/clients/ocp/4.3.8/openshift-install-linux-4.3.8.tar.gz"

開始制作離線包

我使用在美國的VPS下載離線鏡像马胧,體驗(yàn)了一下飛一般的速度殿衰,不到一分鐘就同步好鏡像了幔妨,不過從VPS拉取打包的鏡像文件時(shí)還是遇到網(wǎng)絡(luò)慢的問題阅仔,我搭建了一個(gè)http服務(wù)薪伏,用迅雷去下載鏡像文件烂琴,速度好很多也穩(wěn)定爹殊。

  • 下載oc命令客戶端
wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/4.3.8/openshift-client-linux-4.3.8.tar.gz
  • 解壓,并且將oc命令復(fù)制到
tar -zxvf openshift-client-linux-4.3.8.tar.gz
cp oc /usr/local/bin
  • 安裝工具
yum -y install podman httpd-tools
  • 創(chuàng)建準(zhǔn)備給本地私有鏡像倉庫的相關(guān)目錄
mkdir -p /opt/registry/{auth,certs,data}
  • 創(chuàng)建證書奸绷,然后會(huì)提示你輸入相關(guān)信息梗夸,

注意:Common Name (eg, your name or your server's hostname) 字段要填寫鏡像倉庫的域名,不能使用IP号醉。其他的可以空著反症,這一步我錯(cuò)了幾次辛块,如下:

cd /opt/registry/certs
openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt
Generating a 4096 bit RSA private key
....................................++
................................................................................................................................................................................................................................................................................................................++
writing new private key to 'domain.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:cn
State or Province Name (full name) []:shanghai
Locality Name (eg, city) [Default City]: 
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:registry.vps.apo.ocp4.com
Email Address []:
  • 創(chuàng)建密碼文件
htpasswd -bBc /opt/registry/auth/htpasswd admin admin
  • 使用一個(gè)鏡像來部署私有鏡像倉庫:
podman run --name mirror-registry -p 5000:5000 \ 
     -v /opt/registry/data:/var/lib/registry:z \
     -v /opt/registry/auth:/auth:z \
     -e "REGISTRY_AUTH=htpasswd" \
     -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
     -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
     -v /opt/registry/certs:/certs:z \
     -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
     -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
     -d docker.io/library/registry:2

注意需要放行特定的防火墻端口,我這里直接關(guān)閉防火墻铅碍,所以不開放了润绵,也可以按照官方文檔開通防火墻:

firewall-cmd --add-port=5000/tcp --zone=internal --permanent 
firewall-cmd --add-port=5000/tcp --zone=public   --permanent 
firewall-cmd --reload
  • 更新Linux系統(tǒng)證書
cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/
update-ca-trust
  • 測試鏡像倉庫是否能正常訪問:

需要在/etc/hosts文件中添加域名解析,否則無法解析 registry.vps.apo.ocp4.com地址胞谈。

curl -u admin:admin -k https://registry.vps.apo.ocp4.com:5000/v2/_catalog
{"repositories":[]}
  • 將鏡像倉庫的用戶名密碼鏡像base64加密
echo -n ’admin:admin' | base64 -w0
YWRtaW46YWRtaW4=
  • 去下載pull-secret.text文件尘盼,然后安裝jq,為了能夠?qū)⒚荑€文件進(jìn)行json格式化烦绳,好看些卿捎。
yum install jq
  • json格式化生成新的文件
cat ./pull-secret.text | jq .  >  pull-secret2.text
  • 文件內(nèi)容如下:
{
  "auths": {
    "cloud.openshift.com": {
      "auth": "b3BlbnNo...",
      "email": "you@example.com"
    },
    "quay.io": {
      "auth": "b3BlbnNo...",
      "email": "you@example.com"
    },
    "registry.connect.redhat.com": {
      "auth": "NTE3Njg5Nj...",
      "email": "you@example.com"
    },
    "registry.redhat.io": {
      "auth": "NTE3Njg5Nj...",
      "email": "you@example.com"
    }
  }
}
  • 然后添加一下私有鏡像倉庫的內(nèi)容,用于將quay的鏡像同步到私有鏡像倉庫過程中需要做認(rèn)證爵嗅,這就是個(gè)認(rèn)證密碼文件娇澎,類似如下笨蚁。
  "auths": {
...
    "<local_registry_host_name>:<local_registry_host_port>": { 
      "auth": "<credentials>", 
      "email": "you@example.com"
  },
...
  • 導(dǎo)入一些拉取鏡像需要的環(huán)境變量參數(shù)睹晒,就是一些鏡像倉庫的地址,版本之類的信息
export OCP_RELEASE=4.3.8-x86_64
export LOCAL_REGISTRY='registry.vps.apo.ocp4.com:5000'
export LOCAL_REPOSITORY='ocp4/openshift4'
export PRODUCT_REPO='openshift-release-dev'
export LOCAL_SECRET_JSON='/opt/registry/certs/pull-secret2.text'
export RELEASE_NAME="ocp-release" 
  • 使用oc命令去同步
oc adm -a ${LOCAL_SECRET_JSON} release mirror \
     --from=quay.io/${PRODUCT_REPO}/${RELEASE_NAME}:${OCP_RELEASE} \
     --to=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY} \
     --to-release-image=${LOCAL_REGISTRY}/${LOCAL_REPOSITORY}:${OCP_RELEASE}
  • 同步的輸出日志如下
info: Mirroring 103 images to registry.vps.apo.ocp4.com:5000/ocp4/openshift4 ...
registry.vps.apo.ocp4.com:5000/
  ocp4/openshift4
    blobs:
Success
Update image:  registry.vps.apo.ocp4.com:5000/ocp4/openshift4:4.3.8-x86_64
Mirror prefix: registry.vps.apo.ocp4.com:5000/ocp4/openshift4

To use the new mirrored repository to install, add the following section to the install-config.yaml:

imageContentSources:
- mirrors:
  - registry.vps.apo.ocp4.com:5000/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-release
- mirrors:
  - registry.vps.apo.ocp4.com:5000/ocp4/openshift4
  source: quay.io/openshift-release-dev/ocp-v4.0-art-dev


To use the new mirrored repository for upgrades, use the following to create an ImageContentSourcePolicy:

apiVersion: operator.openshift.io/v1alpha1
kind: ImageContentSourcePolicy
metadata:
  name: example
spec:
  repositoryDigestMirrors:
  - mirrors:
    - registry.vps.apo.ocp4.com:5000/ocp4/openshift4
    source: quay.io/openshift-release-dev/ocp-release
  - mirrors:
    - registry.vps.apo.ocp4.com:5000/ocp4/openshift4
    source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
  • 打包鏡像倉庫文件

在openshift3的時(shí)候是直接拉取鏡像括细,然后打包鏡像伪很,在4沒有提供這樣命令,所以我就將鏡像倉庫文件直接全部打包奋单,然后拉回國內(nèi)锉试,再放到一個(gè)虛擬機(jī)上,啟動(dòng)鏡像倉庫览濒。

cd /opt/registry/data/
tar -czvf ocp4.3.8-images.tar.gz docker/
ll
drwxr-xr-x 3 root root       4096 Apr 21 07:10 docker
-rw-r--r-- 1 root root 5585707233 Apr 21 07:24 ocp4.3.8-images.tar.gz

有意思的地方

在同步鏡像倉庫的時(shí)候輸出的日志呆盖,可以看見鏡像的名稱都是為openshift4,而tag為openshift版本加上具體的組件名稱贷笛,并且還有對應(yīng)的hash值

sha256:d57b9ab77f64cb3cc667d957d53248f004dfa3ba5c8e3270ad06465815fca9e1 registry.vps.apo.ocp4.com:5000/ocp4/openshift4:4.3.8-openshift-state-metrics
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末应又,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子乏苦,更是在濱河造成了極大的恐慌株扛,老刑警劉巖汇荐,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件掀淘,死亡現(xiàn)場離奇詭異革娄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鸣哀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挠羔,“玉大人,你說我怎么就攤上這事埋嵌。” “怎么了范舀?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵锭环,是天一觀的道長泊藕。 經(jīng)常有香客問我娃圆,道長讼呢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮散劫,結(jié)果婚禮上获搏,老公的妹妹穿的比我還像新娘。我一直安慰自己纬乍,他們只是感情好仿贬,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布茧泪。 她就那樣靜靜地躺著队伟,像睡著了一般幽勒。 火紅的嫁衣襯著肌膚如雪啥容。 梳的紋絲不亂的頭發(fā)上干毅,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天硝逢,我揣著相機(jī)與錄音渠鸽,去河邊找鬼徽缚。 笑死似芝,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的在跳。 我是一名探鬼主播聚凹,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起杖剪,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤拆融,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布趟脂,位于F島的核電站佛玄,受9級特大地震影響梦抢,放射性物質(zhì)發(fā)生泄漏蕊梧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸涎才。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工孽惰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狂鞋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓浑塞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容