-
Notifications
You must be signed in to change notification settings - Fork 50
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #246 from wuyingjun-lucky/main
Modify Readme markdown
- Loading branch information
Showing
3 changed files
with
32 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -23,38 +23,17 @@ The Kosmos ClusterLink module currently includes the following key components: | |
- `Multi-Cluster-Coredns`:Implements multi-cluster service discovery. | ||
- `Elector`:Elects the gateway node. | ||
|
||
### Quick Start | ||
|
||
#### Start Locally | ||
|
||
The following command allows you to quickly run an experimental environment locally. This command will use kind (so Docker needs to be installed firstly) to create two Kubernetes clusters and deploy ClusterLink. | ||
```Shell | ||
./hack/local-up-clusterlink.sh | ||
``` | ||
|
||
Verify if the service is running smoothly. | ||
```Shell | ||
kubectl --context=kind-cluster-host-local get pods -nclusterlink-system | ||
kubectl --context=kind-cluster-member1-local get pods -nclusterlink-system | ||
``` | ||
|
||
Verify if the cross-cluster network is connected. | ||
```Shell | ||
kubectl --context=kind-cluster-host-local exec -it <any-host-pod> -- ping <any-member1-pod-ip> | ||
``` | ||
|
||
|
||
## ClusterTree | ||
|
||
The Kosmos clustertree module realizes the tree-like scaling of Kubernetes and achieves cross-cluster orchestration of applications. | ||
<div><img src="docs/images/knode-arch.png" style="width:900px;" /></div> | ||
<div><img src="docs/images/clustertree-arch.png" style="width:900px;" /></div> | ||
|
||
Currently, it primarily supports the following ability: | ||
1. **Full Compatibility with k8s API**: Users can interact with the host cluster's `kube-apiserver` using tools like `kubectl`, `client-go`, and others just like they normally would. However, the `Pods` are actually distributed across the entire multi-cloud, multi-cluster environment. | ||
2. **Support for Stateful and k8s-native Applications**: In addition to stateless applications, Kosmos also facilitates the orchestration of stateful applications and k8s-native applications (interacting with `kube-apiserver`). Kosmos will automatically detect the storage and permission resources that `Pods`depend on, such as pv/pvc, sa, etc., and perform automatic bothway synchronization. | ||
3. **Diverse Pod Topology Constraints**: Users can easily control the distribution of Pods within the global clusters, such as by region, availability zone, cluster, or node. This helps achieve high availability and improve resource utilization. | ||
|
||
## Scheduler (Under Construction) | ||
## Scheduler | ||
|
||
The Kosmos scheduling module is an extension developed on top of the Kubernetes scheduling framework, aiming to meet the container management needs in mixed-node and sub-cluster environments. It provides the following core features to enhance the flexibility and efficiency of container management: | ||
|
||
|
@@ -65,8 +44,21 @@ The Kosmos scheduling module is an extension developed on top of the Kubernetes | |
3. **Fine-grained Fragmented Resource Handling**: The Kosmos scheduling module intelligently detects fragmented resources within sub-clusters, effectively avoiding situations where pod deployment encounters insufficient resources in the sub-cluster. This helps ensure a more balanced allocation of resources across different nodes, enhancing system stability and performance. | ||
Whether building a hybrid cloud environment or requiring flexible deployment of workloads across different clusters, the Kosmos scheduling module serves as a reliable solution, assisting users in managing containerized applications more efficiently. | ||
|
||
## Contact | ||
## Quick Start | ||
The following command allows you to quickly run an experimental environment with three clusters. | ||
Install the control plane in the host cluster. | ||
```Shell | ||
kosmosctl install --cni calico --default-nic eth0 (We build a network tunnel based the network interface value passed by the arg default-nic) | ||
``` | ||
|
||
Join the two member clusters. | ||
```Shell | ||
kosmosctl join cluster --name cluster1 --kubeconfig ~/kubeconfig/cluster1-kubeconfig --cni calico --default-nic eth0 --enable-all | ||
kosmosctl join cluster --name cluster2 --kubeconfig ~/kubeconfig/cluster2-kubeconfig --cni calico --default-nic eth0 --enable-all | ||
``` | ||
And then we can Use the Kosmos clusters like single cluster. | ||
|
||
## Contact | ||
If you have questions, feel free to reach out to us in the following ways: | ||
- [Email](mailto:[email protected]) | ||
- [WeChat](./docs/images/kosmos-WechatIMG.jpg) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes