

Github GitHub - kcp-dev/kcp: kcp is a prototype of a Kubernetes API server that...
source link: https://github.com/kcp-dev/kcp
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

kcp
is a minimal Kubernetes API server
How minimal exactly? kcp
doesn't know about Pod
s or Node
s, let alone Deployment
s, Service
s, LoadBalancer
s, etc.
By default, kcp
only knows about:
Namespaces
ServiceAccounts
and role-based access control types likeRole
andRoleBinding
Secrets
andConfigMaps
, to store configuration dataCustomResourceDefinitions
, to define new types- a handful of other low-level resources like
Lease
s,Event
s, etc.
Like vanilla Kubernetes, kcp
persists these resources in etcd for durable storage.
Any other resources, including Kubernetes-standard resources like Pod
s, Node
s and the rest, can be added as CRDs and reconciled using the standard controllers.
Why would I want that?
Kubernetes is mainly known as a container orchestration platform today, but we believe it can be even more.
With the power of CustomResourceDefinition
s, Kubernetes provides a flexible platform for declarative APIs of all types, and the reconciliation pattern common to Kubernetes controllers is a powerful tool in building robust, expressive systems.
At the same time, a diverse and creative community of tools and services has sprung up around Kubernetes APIs.
Imagine a declarative Kubernetes-style API for anything, supported by an ecosystem of Kubernetes-aware tooling, separate from Kubernetes-the-container-orchestrator.
That's kcp
.
Is kcp
a "fork" of Kubernetes? 
No.
kcp
as a prototype currently depends on some unmerged changes to Kubernetes, but we intend to pursue these changes through the usual KEP process, until (hopefully!) Kubernetes can be configured to run as kcp
runs today.
Our intention is that our experiments improve Kubernetes for everyone, by improving CRDs and scaling resource watching, and enabling more, better controllers for everyone, whether you're using Kubernetes as a container orchestrator or not.
Our kcp
specific patches are in the feature-logical-clusters feature branch in the kcp-dev/kubernetes repo. See DEVELOPMENT.md for how the patches are structured and how they must be formatted during our experimentation phase. See GOALS.md for more info on how we intend to use kcp
as a test-bed for exploring ideas that improve the entire ecosystem.
What's in this repo?
First off, this is a prototype, not a project. We're exploring these ideas here to try them out, experiment, and bounce them off each other. Our basic demo leverages the following components to show off these ideas:
kcp
, which serves a Kubernetes-style API with a minimum of built-in types.cluster-controller
, which along with theCluster
CRD allowskcp
to connect to other full-featured Kubernetes clusters, and includes these components:syncer
, which runs on Kubernetes clusters registered with thecluster-controller
, and watcheskcp
for resources assigned to the clusterdeployment-splitter
, which demonstrates a controller that can split aDeployment
object into multiple "virtual Deployment" objects across multiple clusters.crd-puller
which demonstrates mirroring CRDs from a cluster back tokcp
So what's this for?
Multi-Cluster Kubernetes?
kcp
could be useful for multi-cluster scenarios, by running kcp
as a control plane outside of any of your workload clusters.
Multi-Tenant Kubernetes?
kcp
could be useful for multi-tenancy scenarios, by allowing multiple tenant clusters inside a cluster to be managed by a single kcp
control plane.
Local Kubernetes Development?
kcp
could be useful for local development scenarios, where you don't necessarily care about all of Kubernetes' many built-in resources and their reconciling controllers.
Embedded/low-resource scenarios?
kcp
could be useful for environments where resources are scarce, by limiting the number of controllers that need to run. Kubernetes' asynchronous reconciliation pattern can also be very powerful in disconnected or intermittently connected environments, regardless of how workloads actually run.
Is that all?
No! See our GOALS.md doc for more on what we are trying to accomplish with this prototype and our docs/ directory.
What does kcp
stand for?
kcp
as a project stands for equality and justice for all people.
However, kcp
is not an acronym.
How do I get started?
- Clone the repository.
- Install Go (1.16+).
- Download the latest kubectl binary for your OS.
- Build and start
kcp
in the background:go run ./cmd/kcp start
. - Tell
kubectl
where to find the kubeconfig:export KUBECONFIG=.kcp/data/admin.kubeconfig
(this assumes your working directory is the root directory of the repository). - Confirm you can connect to
kcp
:kubectl api-resources
.
For more scenarios, see DEVELOPMENT.md.
This sounds cool and I want to help!
Thanks! And great!
This work is still in early development, which means it's not ready for production, but also that your feedback can have a big impact.
You can reach us here, in this repository via issues and discussion, or:
- Join the mailing lists
- Subscribe to the community calendar for community meetings and events
- The kcp-dev mailing list is subscribed to this calendar
- Browse the shared Google Drive to share design docs, demo videos, meeting recordings
References
Recommend
-
36
社区零食大礼包限量发售: (豆干...
-
17
版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 1. 前言 KCP协议包含了2中模式,消息模式和流模式。今天笔者来讲讲这2中模式的区别。 2. 流模式和消息模式 回顾一...
-
12
Setting up a local dev mail server August 5, 2018 on Drew DeVault's blog As part of my work on lists.sr.ht, it was necessary for...
-
6
KCP 1.4源码分析 2020-11-05 网络编程 ...
-
3
KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。纯算法实现,并不负责底层协议(如UDP)的收发,需要使用者自己定义下层数据包的发送方式,并以 callback的方式提供给 KCP。连时钟都需要...
-
16
Suave Dev Server Script dotnet tool restore dotnet fsi suave.fsx once suave.fsx is running you can start fable by entering start:fable this will run fable in watch mode on the backgound...
-
18
KCP同 UDT/ENET的性能比较 如果不丢包那么 KCP(https://github.com/skywind3000/kcp)和 TCP性能差不多,KCP不会有任何优势,但是网络会卡,造成卡的原因就是丢包和抖动,有同学在内网这...
-
3
KCP传输协议,快速可靠的UDP,和TCP比有什么优势? 2022-01-01 网络编程 ...
-
6
版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc xtaci/kcp-go的作者,在KCP标准协议的基础上做了扩展,增加了加密和FEC(Forward error correction,前向纠错)那么前向纠错到底是干什么用的
-
9
寡人正在Coding ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK