https://github.com/go-faster/cilium-mesh-testing
Reproducer for cilium/cilium#20729
https://github.com/go-faster/cilium-mesh-testing
cilium cilium-cluster-mesh
Last synced: 6 months ago
JSON representation
Reproducer for cilium/cilium#20729
- Host: GitHub
- URL: https://github.com/go-faster/cilium-mesh-testing
- Owner: go-faster
- License: apache-2.0
- Created: 2022-08-02T12:41:18.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-03-13T21:20:41.000Z (over 1 year ago)
- Last Synced: 2025-02-01T07:44:27.839Z (8 months ago)
- Topics: cilium, cilium-cluster-mesh
- Language: Go
- Homepage: https://github.com/cilium/cilium/issues/20729
- Size: 64.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cilium clustermesh testing
This repo is a fork of [bmcustodio/kind-cilium-mesh](https://github.com/bmcustodio/kind-cilium-mesh).
## Introduction
This project bootstraps a [cluster mesh](https://docs.cilium.io/en/stable/gettingstarted/clustermesh/) between [kind](https://github.com/kubernetes-sigs/kind) clusters using [Cilium](https://cilium.io) which can be used for demo or testing purposes.
Each cluster in mesh has http echo server deployment that responds with pod and cluster name:
```json
{"cluster": "Cluster3", "pod": "deathstar-6578784ddd-m7hk5"}
```And clients that send requests to deployment service, collecting information about requests distribution across clusters and pods based on the server response.
## Required tools
* go
* docker
* docker-compose
* kubectl
* kind
* cilium## Bootstrapping clustermesh
Don't forget to check system limits:
```
fs.file-max=5000000
fs.inotify.max_user_watches = 524288
fs.inotify.max_user_instances = 512
```To bootstrap the cluster mesh, run
```shell
make up
```Or manually (useful for troubleshooting):
```shell
make create_cluster_1
make create_cluster_2
make create_cluster_3
make enable_mesh_cluster_1
make enable_mesh_cluster_2
make enable_mesh_cluster_3
make connect_clusters_3
make build_deathstar_image
make build_tiefighter_image
make deploy_cluster_1
make deploy_cluster_2
make deploy_cluster_3
```Note that clusters are running in kubeproxy-free mode.
## Monitoring
Create prometheus and grafana containers:
```shell
make setup_monitoring
```
Grafana will be available at ```http://localhost:3000```