内容简介:下午正在摸魚的時候,突然收到報告,在 OpenShift 上 Build Image 成功,但 Push 時 Docker Registry 出現 500 錯誤。這個 OpenShift 實例因爲淺羽偷懶的關係,用的是 Hosted Docker Registry,並且從設定好一來一直都沒有動過其他設定。開始懷疑是 Docker Registry 的 Pod 異常退出了,但是看到 Web Console 裏兩個 Pod 都是藍的,並且 Docker Registry 也在工作,所以排除。隨後懷疑 Build
下午正在摸魚的時候,突然收到報告,在 OpenShift 上 Build Image 成功,但 Push 時 Docker Registry 出現 500 錯誤。
Pushing image docker-registry.default.svc:5000/sakuragawa/asaba:latest ... Pushed 5/10 layers, 50% complete Pushed 6/10 layers, 60% complete Pushed 7/10 layers, 70% complete Registry server Address: Registry server User Name: serviceaccount Registry server Email: serviceaccount@example.org Registry server Password: <<non-empty>> error: build error: Failed to push image: received unexpected HTTP status: 500 Internal Server Error
這個 OpenShift 實例因爲淺羽偷懶的關係,用的是 Hosted Docker Registry,並且從設定好一來一直都沒有動過其他設定。開始懷疑是 Docker Registry 的 Pod 異常退出了,但是看到 Web Console 裏兩個 Pod 都是藍的,並且 Docker Registry 也在工作,所以排除。隨後懷疑 Build 的設定出問題,但是這部分也是沒有更新過的,並且檢查了之間的 Build 記錄也是類似的,於是索性去檢查 Docker Registry Pod 的記錄。
.... time="2019-01-24T09:44:04.766206734Z" level=error msg="response completed with error" err.code=UNKNOWN err.detail="filesystem: mkdir /registry/docker/registry/v2/repositories/test: permission denied" err.message="unknown error" go.version=go1.4.2 http.request.host="172.30.77.44:5000" .... http.response.status=500 .... ....
看到 filesystem: mkdir .... permission denied
,直覺是檔案系統的權限出問題,但是容器自己管理的 GlusterFS 怎麼會出問題呢?仔細一看,Pod 自己更新之後,引入了一個 upstream 提交,導致容器運行時身份從 root:1000000000
改變成 1001:0
,導致無權限、無法寫入資料夾。
知道了原因,解決起來就簡單了。由於 OpenShift 的 CLI 客戶端不支援切換用戶身份,確認 Docker Registry Pod 所在的 Host 之後直接登入進去,然後以 root 身份進入容器修改資料夾權限。
$ sudo docker exec -it -u root k8s_registry_docker-registry-1-h7vln_default_734aa8f3-1fb7-11e9-bb46-a02bb81f82fc_0 bash # chown -R root /registry/ # chgrp -R root /registry/
檢查一下所有的 Pod 以保證沒有在運行的舊版本映像,連 Pod 都不用重啓就可以繼續 Push Image 了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
小米生态链战地笔记
小米生态链谷仓学院 / 中信出版集团 / 2017-5 / 56.00
2013年下半年,小米开始做一件事,就是打造一个生态链布局IoT(物联网);2016年年底,小米生态链上已经拥有了77家企业,生态链企业整体销售额突破100亿元。这3年,是小米生态链快速奔跑的3年,也是小米在商场中不断厮杀着成长的3年。 3年,77家生态链企业,16家年销售额破亿,4家独角兽公司,边实战,边积累经验。 小米生态链是一个基于企业生态的智能硬件孵化器。过去的3年中,在毫无先......一起来看看 《小米生态链战地笔记》 这本书的介绍吧!