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

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

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

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

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

查看所有标签

猜你喜欢:

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

The Apache Modules Book

The Apache Modules Book

Nick Kew / Prentice Hall PTR / 2007-02-05 / USD 54.99

"Do you learn best by example and experimentation? This book is ideal. Have your favorite editor and compiler ready-you'll encounter example code you'll want to try right away. You've picked the right......一起来看看 《The Apache Modules Book》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具