kubefed
gRPC
kubefed | gRPC | |
---|---|---|
7 | 201 | |
2,476 | 40,775 | |
- | 0.6% | |
6.6 | 9.9 | |
about 1 year ago | 4 days ago | |
Go | C++ | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kubefed
-
Scaling Kubernetes to multiple clusters and regions
The project is similar (in spirit) to kubefed.
-
Build a Federation of Multiple Kubernetes Clusters With Kubefed V2
What Is KubeFed? KubeFed (Kubernetes Cluster Federation) allows you to use a single Kubernetes cluster to coordinate multiple Kubernetes clusters. It can deploy multiple-cluster applications in different regions and design for disaster recovery. To learn more about KubeFed: https://github.com/kubernetes-sigs/kubefed
-
Evolution of code deployment tools at Mixpanel
There's active work on a standard called kubefed [0] that is being worked on.
> I want a scale-to-zero node-pool in every region, and one kube master api for the world.
Personally, I'd generalize this to: "I want to describe the reliability requirements and configuration for my software and have an automated system solve for where, how many, when, and how to route to it"
I want to have something where I can say "I need to have high availability, lowest latency, and X GB of RAM and Y cores" and have a system automatically schedule me wherever compute is cheapest while also intelligently routing traffic to my servers based on client origins.
[0] - https://github.com/kubernetes-sigs/kubefed
-
Building a Kubernetes-based Solution in a Hybrid Environment by Using KubeMQ
Two of the more common approaches to deploying Kubernetes in hybrid environments are from cloud-to-cloud and cloud to on-prem. Whether this is from using a single control plane like Rancher, Platform9, or Gardener to create multiple clusters that are managed from a single location, or utilizing Kubernetes federation to create a cluster that spans different regions, this model has become a key feature offered by Kubernetes that has helped drive adoption.
-
Infrastructure Engineering — Deployment Strategies
This is made possible by the very nature of Kubernetes being a standard portable platform across cloud providers, ability to manage infrastructure as code, ability to setup networking between them whenever needed with the help of multi-cluster service meshes and also due to the ability to orchestrate the deployments using Kubefed and Crossplane.
-
Architecting your Cloud Native Infrastructure
And the interesting thing about networking in cloud is that it need not be just be limited to the cloud provider within your region but can span across multiple providers across multiple regions as needed and this is where projects like Kubefed, Crossplane definitely does help.
-
Infrastructure Engineering - Diving Deep
Projects like Kubefed and Crossplane are especially useful here since they help you to manage and orchestrate clusters and the requests you send across different cloud providers even if its going to be across regions.
gRPC
-
Golang: out-of-box backpressure handling with gRPC, proven by a Grafana dashboard
gRPC, built on HTTP/2, inherently supports flow control. The server can push updates, but it must also respect flow control signals from the client, ensuring that it doesn't send data faster than what the client can handle.
-
Reverse Engineering Protobuf Definitions from Compiled Binaries
Yes, grpc_cli tool uses essentially the same mechanism except implemented as a grpc service rather than as a stubby service. The basic principle of both is implementing the C++ proto library's DescriptorDatabase interface with cached recursive queries of (usually) the server's compiled in FileDescriptorProtos.
See also https://github.com/grpc/grpc/blob/master/doc/server-reflecti...
The primary difference between what grpc does and what stubby does is that grpc uses a stream to ensure that the reflection requests all go to the same server to avoid incompatible version skew and duplicate proto transmissions. With that said, in practice version skew is rarely a problem for grpc_cli style "issue a single RPC" usecases: even if requests do go to two or more different versions of a binary that might have incompatible proto graphs, it is very common for the request and response and RPC to all be in the same proto file so you only need to make one RPC in the first place unless you're using an extension mechanism like proto2 extensions or google.protobuf.Any.
-
Delving Deeper: Enriching Microservices with Golang with CloudWeGo
While gRPC and Apache Thrift have served the microservice architecture well, CloudWeGo's advanced features and performance metrics set it apart as a promising open source solution for the future.
-
gRPC Name Resolution & Load Balancing on Kubernetes: Everything you need to know (and probably a bit more)
The loadBalancingConfig is what we use in order to decide which policy to go for (round_robin in this case). This JSON representation is based on a protobuf message, then why does the name resolver returns it in the JSON format? The main reason is that loadBalancingConfig is a oneof field inside the proto message and so it can not contain values unknown to the gRPC if used in the proto format. The JSON representation does not have this requirement so we can use a custom loadBalancingConfig .
-
Dart on the Server: Exploring Server-Side Dart Technologies in 2024
The Dart implementation of gRPC which puts mobile and HTTP/2 first. It's built and maintained by the Dart team. gRPC is a high-performance RPC (remote procedure call) framework that is optimized for efficient data transfer.
- Usando Spring Boot RestClient
-
How to Build & Deploy Scalable Microservices with NodeJS, TypeScript and Docker || A Comprehesive Guide
gRPC is a high-performance, open-source RPC (Remote Procedure Call) framework initially developed by Google. It uses Protocol Buffers for serialization and supports bidirectional streaming.
-
Actual SSH over HTTPS
In general, tunneling through HTTP2 turns out to be a great choice. There is a RPC protocol built on top of HTTP2: gRPC[1].
This is because HTTP2 is great at exploiting a TCP connection to transmit and receive multiple data structures concurrently - multiplexing.
There may not be a reason to use HTTP3 however, as QUIC already provides multiplexing.
I expect that in the future most communications will be over encrypted HTTP2 and QUIC simply because middleware creators can not resist to discriminate.
[1] <https://grpc.io>
-
Why gRPC is not natively supported by Browsers
Even in the https://grpc.io blog says this
-
SGSG (Svelte + Go + SQLite + gRPC) - open source application
gRPC
What are some alternatives?
crossplane - The Cloud Native Control Plane
ZeroMQ - ZeroMQ core engine in C++, implements ZMTP/3.1
karmada - Open, Multi-Cloud, Multi-Cluster Kubernetes Orchestration
Apache Thrift - Apache Thrift
virtual-kubelet - Virtual Kubelet is an open source Kubernetes kubelet implementation.
Cap'n Proto - Cap'n Proto serialization/RPC system - core tools and C++ library
velero - Backup and migrate Kubernetes applications and their persistent volumes
zeroRPC - zerorpc for python
rook - Storage Orchestration for Kubernetes
rpclib - rpclib is a modern C++ msgpack-RPC server and client library
OpenFaaS - OpenFaaS - Serverless Functions Made Simple
nanomsg - nanomsg library