解決權限引起的 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 了。

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

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

查看所有标签

猜你喜欢:

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

小米生态链战地笔记

小米生态链战地笔记

小米生态链谷仓学院 / 中信出版集团 / 2017-5 / 56.00

2013年下半年,小米开始做一件事,就是打造一个生态链布局IoT(物联网);2016年年底,小米生态链上已经拥有了77家企业,生态链企业整体销售额突破100亿元。这3年,是小米生态链快速奔跑的3年,也是小米在商场中不断厮杀着成长的3年。 3年,77家生态链企业,16家年销售额破亿,4家独角兽公司,边实战,边积累经验。 小米生态链是一个基于企业生态的智能硬件孵化器。过去的3年中,在毫无先......一起来看看 《小米生态链战地笔记》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

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

在线 XML 格式化压缩工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具