問題描述
在部署了 dragonfly 的機器上 docker pull 鏡像發現如下報錯
docker pull uhub.service.ucloud.cn/openbayes/test-job-sidecar:latest
Error response from daemon: error parsing HTTP 404 response body: invalid character 'p' after top-level value: "404 page not found\n"
問題原因
這個節點跑了 traefik ,導致 80 和 443 被 traefik 監聽。從而出現如上報錯。
處理
讓 dragonfly 避開traefik 所在節點,比如給 dragonfly 加節點硬反親和性。
具體處理如下
給 node 加標簽
kubectl label node bjm1 node-role.kubernetes.io/ingress=
將 traefik 固定到有 node-role.kubernetes.io/ingress
標簽的節點
nodeSelector: # 固定到 ingress 節點(該節點才可以訪問外網)node-role.kubernetes.io/ingress: ""
dragonfly 加反親和性
注意:不同版本的 dragonfly chart dfget 的名字不同,有的版本是 client 。
dfdaemon:affinity:nodeAffinity:requiredDuringSchedulingIgnoredDuringExecution:nodeSelectorTerms:- matchExpressions:- key: node-role.kubernetes.io/ingressoperator: DoesNotExist
執行 helm upgrade 分別更新 traefik 和 dragonfly 的配置即可。