contentful-labs / coredns-nodecache Goto Github PK
View Code? Open in Web Editor NEWNodelocal DNS implementation as a CoreDNS plugin
License: Apache License 2.0
Nodelocal DNS implementation as a CoreDNS plugin
License: Apache License 2.0
2020/10/15 12:16:00 [ERROR] Failed to read node-cache coreFile /etc/coredns/Corefile.base - open /etc/coredns/Corefile.base: no such file or directory
2020/10/15 12:16:00 [ERROR] Failed to sync kube-dns config directory /etc/kube-dns, err: lstat /etc/kube-dns: no such file or directory
New upstream version is out, we should update.
/assign
We are building a cluster running both linux/amd64
and linux/arm64
nodes. We run the coredns-nodecache
on the nodes and need to support linux/arm64
. I'll fork the repo and try to create a PR but if you have support for this somewhere already then I'd be happy to take it.
Dockerfile
currently use Go 1.15, perhaps it could be updated to 1.16 to stay up to date.
Hi,
first of all thank you! In our team we currently looking for a solution to lower
the amount of DNS queries to the central KubeDNS (we run CoreDNS). We tried the
official node-local-dns cache but we didn't like the idea to introduce a new
single point of failure.
Than we found your solution and the first read was awesome. We copied the
example deployment and changed the KubeDNS ip (since we have a different one).
Buuut the Daemonsets didn't start. We needed to add a ServiceAccount to the
deployment:
apiVersion: v1
kind: ServiceAccount
metadata:
name: coredns-nodecache
namespace: kube-system
Than the primary Daemonset was starting. The next problem was that the
livenessProbe of the primary Pod was failing. Our question would be is the port
defined in the Daemonset (8080) the right one? Could that be that it's
port 8082? With that Port the probe was doing fine and all Pods of the pirmary
Daeomset are up and running.
The secondary still makes problems. The Kubelet says:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling <unknown> default-scheduler 0/9 nodes are available: 6 node(s) didn't have free ports for the requested pod ports, 8 node(s) didn't match node selector.
That sounds like Kubernetes is not able to schedule a Pod (which runs in hostNetwork: true)
when there is already a Pod which binds to that port. Is there any trick oder
config we are missing?
Last question. In order to use the node cache what do we need to configure?
It's not working out of the box right? Do we need the reconfigure the Kubelets?
If yes do you add both IP addresses?
# clusterDNS is a list of IP addresses for a cluster DNS server. If set,
# kubelet will configure all containers to use this for DNS resolution
# instead of the host's DNS servers.
clusterDNS:
- <NODE LOCAL CACHE>
- <KUBE DNS IP>
Is there a special treatment for the master nodes?
We running the following Setup:
Thanks in advance
Cheers
Hello! First of all, thank you for implementation of HA version of node-cache :)
But what is the main reason of usage alpine image as a base? It has some unresolve issues that affected DNS resolving and community recommends to use debian-based image to avoid these problems.
Do you have any problems with alpine-based image?
Is anyone actively managing this project for PRs? I notice a version bump PR that has been open for quite some time. This is still a valuable project due to its HA nature compared to the kubernetes vanilla implementation. We are looking to adopt further at our organization, but the lack of activity is concerning.
Hi,
Thanks for a great solution for the local node cache that supports HA.
Can you please release an official version so I won't have to use the latest image which might change over time?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.