Skip to content
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

How does kine with mysql handle conflicting writes from two API servers concurrently #138

Open
friggitello6 opened this issue Oct 2, 2022 · 3 comments

Comments

@friggitello6
Copy link

Using mysql as external storage, how does kine handle conflicting writes from two different API servers concurrently?

@brandond
Copy link
Member

brandond commented Oct 3, 2022

It handles it quite well!

#106 (comment)

@friggitello6
Copy link
Author

It handles it quite well!

#106 (comment)

great, so we rely on DB MVCC. This means if I write a controller and try to update a resource, the controller is responsible to handle the "resource already modified error" and potentially reload and retry, right? If that's the case, do we need to do the same for controller running on K8s where the write always goes through the etcd leader?

On the similar topic, is there any container app that can run on k8s, but not K3s? In other words, can someone on purposely write a container app that doesn't work on k3s, but works on k8s?

@brandond
Copy link
Member

brandond commented Oct 6, 2022

Kine implements all the required bits for Kubernetes to function properly, including guarantees around consistency of sequential writes. Dealing with retries is part of writing any Kubernetes controller.

K3s is a Kubernetes distro. It is built from the same upstream code as all the other distros and passes all the standard conformance tests. It is not anything other than Kubernetes and does not behave differently, regardless of what datastore you use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants