# Jitsi Meet
Scalable video conferencing on Kubernetes.
## Structure
The whole setup is based on Kubernetes YAML files and patches for these files.
It makes use of [kustomize](https://github.com/kubernetes-sigs/kustomize) to customize the raw YAMLs for each environment.
(Almost) every directory in the directory tree (depicted below) contains a `kustomize.yaml` file which defines resources (and possibly patches).
```
|-- base
| |-- jitsi
| |-- jitsi-shard
| | `-- jvb
| `-- ops
| |-- cert-manager
| |-- dashboard
| |-- ingress-nginx
| |-- loadbalancer
| |-- logging
| |-- metacontroller
| |-- monitoring
| `-- reflector
`-- overlays
|-- development
| |-- jitsi-base
| |-- ops
| |-- shard-0
| `-- shard-1
`-- production
|-- jitsi-base
|-- ops
|-- shard-0
`-- shard-1
```
## Requirements
- [kubectl/v1.17.2+](https://kubernetes.io/docs/tasks/tools/install-kubectl/)
- [kustomize/v3.5.4](https://github.com/kubernetes-sigs/kustomize/releases/tag/kustomize%2Fv3.5.4)
_WARNING_: newer versions of kustomize currently don't work due to changes regarding remote sources
## Install
To install the full setup go to either [`overlays/development`](overlays/development) or
[`overlays/production`](overlays/production) and run
```bash
$ kustomize build . | kubectl apply -f -
```
This deploys a Jitsi setup consisting of two shards. A shard is a complete replica of a Jitsi setup that is used in
parallel to other shards to load-balance and for high availability. More shards can be added following the documentation
in [`docs/architecture/architecture.md`](docs/architecture/architecture.md). The setup was tested against a managed
Kubernetes cluster (v1.17.2) running on [IONOS Cloud](https://dcd.ionos.com/).
## Architecture
The Jitsi Kubernetes namespace has the following architecture:
![Architecture Jitsi Meet](docs/architecture/build/jitsi_meet_one_shard.png)
The setup shown above contains only a single shard (for visual clarity). Subsequent shards would be attached to the web
service. A more detailed explanation of the system architecture with multiple shards can be found in [docs/architecture/architecture.md](docs/architecture/architecture.md).
## Load Testing
Load testing is based on [jitsi-meet-torture](https://github.com/jitsi/jitsi-meet-torture) which is a Java application
that connects to a Jitsi instance as a user and shows a predefined video along with an audio stream by using a Selenium
Chrome instance. To run multiple test users in multiple conferences a Selenium hub set up with docker-compose is used.
Terraform scripts that set up the test servers with an existing image can be found under [`loadtest`](loadtest).
An [init script](loadtest/init.sh) is used to provision the necessary tools to that image. This image also needs SSH
access set up with public key authentication.
After starting a number of load test servers, the load test can be started by using the [`loadtest/run_loadtest.sh`](loadtest/run_loadtest.sh)
script (locally). Results can be found in [`docs/loadtests/loadtestresults.md`](docs/loadtests/loadtestresults.md).
## Kubernetes Dashboard Access
To access the installed [Kubernetes Dashboard](https://github.com/kubernetes/dashboard) execute
```bash
$ kubectl proxy
```
and then go to `http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/`.
The login token can be received by executing
```bash
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
```
## Kibana Access
Kibana is not accessible from the Internet and must be forwarded to your local machine via `kubectl` by executing
```bash
$ kubectl port-forward -n logging svc/kibana-kb-http 5601:5601
```
After that you will be able to access Kibana via [https://localhost:5601/](https://localhost:5601/).
The default login password (user `elastic`) can be received with
```bash
$ kubectl get secret -n logging elasticsearch-es-elastic-user -o=jsonpath='{.data.elastic}' | base64 --decode; echo
```
The same procedure can be used to access Prometheus or Alertmanager.
## Relationship With Other Projects
The monitoring stack that is set up by this project is currently also used by an [affiliated project](https://github.com/schul-cloud/bbb-deployment)
for [Big Blue Button](https://bigbluebutton.org/). Therefore, some of the files here contain configurations to monitor
that setup. To exclude them delete all files starting with `bbb-` and remove the file names from the respective
`kustomization.yaml` files.
没有合适的资源?快使用搜索试试~ 我知道了~
可自动扩展的JitsiMeetforKubernetes_Shell_HCL_下载.zip
共151个文件
yaml:125个
tf:6个
png:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 15 浏览量
2023-04-22
16:15:37
上传
评论
收藏 633KB ZIP 举报
温馨提示
可自动扩展的JitsiMeetforKubernetes_Shell_HCL_下载.zip
资源推荐
资源详情
资源评论
收起资源包目录
可自动扩展的JitsiMeetforKubernetes_Shell_HCL_下载.zip (151个子文件)
.gitignore 449B
LICENSE 1KB
architecture.md 9KB
loadtestresults.md 6KB
README.md 5KB
jitsi_meet.png 220KB
jitsi_meet_one_shard.png 156KB
jitsi_sharding.png 58KB
shard.png 46KB
globe.png 14KB
jitsi-logo-square.png 9KB
architecture_one_shard.py 2KB
architecture.py 2KB
architecture_shards.py 1KB
shard.py 804B
run_loadtest.sh 4KB
secrets.sh 2KB
init.sh 1KB
cluster.tf 1KB
cluster.tf 1KB
loadtest.tf 848B
variables.tf 578B
variables.tf 140B
variables.tf 140B
requirements.txt 101B
cert-manager.yaml 388KB
bbb-dashboards-configmap.yaml 135KB
eck-crd.yaml 118KB
jitsi-dashboard-configmap.yaml 36KB
web-configmap.yaml 30KB
ingress-nginx.yaml 17KB
prosody-configmap.yaml 12KB
kubernetes-dashboard.yaml 7KB
bbb-endpoints.yaml 7KB
prosody-deployment.yaml 5KB
jvb-shutdown-configmap.yaml 4KB
reflector.yaml 4KB
jvb-statefulset.yaml 4KB
metrics-server.yaml 3KB
fluentd-daemonset-elasticsearch-rbac.yaml 3KB
web-deployment.yaml 2KB
haproxy-configmap.yaml 2KB
service-per-pod-configmap.yaml 2KB
haproxy-statefulset.yaml 2KB
jicofo-deployment.yaml 2KB
prometheus-adapter-config-map-patch.yaml 2KB
elasticsearch.yaml 2KB
grafana-deployment-patch.yaml 1KB
fluentd-daemonset-patch.yaml 1KB
service-per-pod-decoratorcontroller.yaml 1KB
certificate.yaml 1KB
certificate.yaml 1KB
elasticsearch.yaml 987B
jvb-entrypoint-configmap.yaml 975B
turn-endpoints.yaml 949B
service-per-pod-deployment.yaml 738B
jitsi-secret.yaml 727B
kustomization.yaml 721B
bbb-endpoints.yaml 646B
bbb-exporter-service-monitor.yaml 603B
bbb-service-monitor.yaml 595B
turn-service-monitor.yaml 594B
cluster-issuer.yaml 581B
jvb-statefulset-patch.yaml 541B
jvb-statefulset-patch.yaml 541B
jvb-statefulset-patch.yaml 541B
jvb-statefulset-patch.yaml 541B
turn-endpoints.yaml 537B
jvb-statefulset-patch.yaml 535B
jvb-statefulset-patch.yaml 535B
grafana-ingress-patch.yaml 530B
grafana-ingress-patch.yaml 513B
prometheus-prometheus-patch.yaml 480B
prometheus-prometheus-patch.yaml 479B
web-deployment-patch.yaml 462B
web-deployment-patch.yaml 462B
web-deployment-patch.yaml 462B
web-deployment-patch.yaml 462B
metrics-server-patch.yaml 449B
kibana.yaml 403B
haproxy-ingress-patch.yaml 394B
es-realm-secret.yaml 388B
jicofo-deployment-patch.yaml 384B
jicofo-deployment-patch.yaml 383B
jicofo-deployment-patch.yaml 383B
jicofo-deployment-patch.yaml 383B
haproxy-ingress-patch.yaml 370B
prosody-deployment-patch.yaml 353B
prosody-deployment-patch.yaml 353B
prosody-deployment-patch.yaml 353B
prosody-deployment-patch.yaml 353B
kustomization.yaml 348B
kustomization.yaml 348B
prometheus-roleBindingSpecificNamespaces.yaml 344B
jvb-hpa-patch.yaml 339B
jvb-hpa-patch.yaml 339B
bbb-service.yaml 328B
prosody-service.yaml 327B
grafana-tls-secret.yaml 320B
grafana-tls-secret.yaml 320B
共 151 条
- 1
- 2
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9154
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功