解決權限引起的 OpenShift Docker Registry 500 錯誤一例

栏目: 编程工具 · 发布时间: 5年前

内容简介:下午正在摸魚的時候,突然收到報告,在 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 了。

不過這說更新就更新,還動不動就亂改的做法,可真社羣啊。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

统计自然语言处理基础

统计自然语言处理基础

Chris Manning、Hinrich Schütze / 苑春法、李伟、李庆中 / 电子工业出版社 / 2005-1 / 55.00元

《统计自然语言处理基础:国外计算机科学教材系列》是一本全面系统地介绍统计自然语言处理技术的专著,被国内外许多所著名大学选为计算语言学相关课程的教材。《统计自然语言处理基础:国外计算机科学教材系列》涵盖的内容十分广泛,分为四个部分,共16章,包括了构建自然语言处理软件工具将用到的几乎所有理论和算法。全书的论述过程由浅入深,从数学基础到精确的理论算法,从简单的词法分析到复杂的语法分析,适合不同水平的读......一起来看看 《统计自然语言处理基础》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具