-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failed to mount configmap/secret volume because of "no such file or directory" #1736
Comments
/assign |
Logs that may be bug-related
|
What happened: A part of EdgeCore's log:
Images running on the Edge Node:
What you expected to happen:
How to reproduce it (as minimally and precisely as possible):
Anything else we need to know?
Environment:
|
@zzxgzgz I run kubeproxy on purpose, do you not want to run it, but still appear? |
@GsssC That's right. I did not deploy kube-proxy. Maybe the Mizar did. But according to the Mizar team, there's no proxy in the Mizar program. |
@zzxgzgz is there any kubeproxy pod deployed to edgenode, as shown in ’kubectl get pod -nkube-system -owide’ |
@GsssC Looks like there are one for cloud node and one for edge node:
|
@zzxgzgz yes,because kubeproxy is running as a deamonset. you can get it by ‘kubectl get all -o wide -nkube-system’,that is why kubeproxy is deployed on edgenode automatically. But it’s not related with this issue. |
@GsssC Thank you for explaining, that makes more sense now. Does it mean that it is normal for kube-proxy running on the edge node? Is this the reason why the other containers cannot mount successfully? Just a FYI, when I tried to deploy a test pod on the edge node, it was successful, but the Mizar related pods are still failing. |
@zzxgzgz No, for edge scene kubeproxy should not running on the edgenode, you could modify the yaml of kubeproxy daemonset to avoid it. But for mizar, sounds like a cni plugin. Does it need to connect to api-server via service clusterip, just like calico? If so it may need kubeproxy run well
No, I am working on why fail to mount.
There are many reasons why pod can not run well on edgenodes. I suggest that you could view the logs in mizar container. |
@GsssC Thank you for your reply. Yes, one of the functionalities of Mizar is to work as a CNI, and it requires kube-proxy. I suspect that's the reason why it doesn't run well with KubeEdge. By the way, are you on KubeEdge's Slack channel? I'd like to ask you more questions about KubeEdge and it is more convenient to communicate on Slack. Thank you. |
@zzxgzgz I am on KubeEdge Slack channel and named GsssC as well. But not often to use it. |
Hey guys! I have been tracking this bug for the last few days.For now, I can draw some conclusions:
|
Thank you for your effort! One question for the temporary solution: Thank you again. |
Hey guys! I found a way to 100% reproduce the bug.
we can see the secret and configmap directory delete by edgecore when it restarts. For secret, edgecore recreate it after seconds.But for configmap, it can not be recreated by edgecore automatically. May the bug will be shown in kubelet as well, and i will do more test later. |
@zzxgzgz just delete configmap ready file about specific pod. Delete whole |
@GsssC I tried your solution by deleteing the whole plugin folder. And now the kube-proxy container is giving me a different error:
This is what the container folder looks like currently: Do you know what could be the reason of this, or how to fix it? Thank you. |
@zzxgzgz Have you ever reset kubernetes cluster? It seems like your kubeproxy’s kubeconfig is not suitable for current k8s cluster(api-server) |
@GsssC I created a new cluster (and then run cloudcore & edgecore) before trying your solution. Does that count? I also looked into the log of cloudcore, it has a weird bug as well:
I looked into the code, and this error was triggered because the resource is "node/edge-node/membership/detail", and in this function: Do you think it might be related to this error? |
@zzxgzgz No,I think it’s not related to your problem. I suggest that you should check sync-crds to confirm the new cluster’s kubeproxy configmap has been sent to edge, or edgecore will use last kubeproxy configmap in edge.db: kubectl get crds |
@zzxgzgz If so, you need to delete configmap in /var/lib/kubeedge/edgecore.db to trigger edgecore query for new configmap |
@GsssC I am able to get the crds:
However, I'm not sure about how to check the config map has been sent to edge. Also, should I just delete the edgecore.db and crd records? Should I also restart edgecore? How do I delete crd records? Is it by doing :
? Thank you. |
@zzxgzgz try |
Yes, I got something:
Shall we continue this conversation on Slack? My username on Slack is Rio Zhu and I sent you a few messages before. |
@zzxgzgz try If no information about kubeproxy configmap, means it is never sent to edge. |
@zzxgzgz Sorry I am not used to use slack. And I think our conversation in github could help more people for bug fix. |
You're right, I don't find any name related to the configMap:
Should each pod shown in this yaml file (mizar-operator/daemon in this case) include a configMap in their yaml files? |
What happened:
Failed to mount configmap/secret volume because of "no such file or directory". Although we can be sure that related resources are included in the sqlite.
What you expected to happen:
mount successffuly
How to reproduce it (as minimally and precisely as possible):
Sorry for I can not provide the way of reproduction.
Anything else we need to know?:
Environment:
cloudcore/edgecore --version
): v1.3.0The text was updated successfully, but these errors were encountered: