问题描述
在部署了 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 的配置即可。