将K8s集群扩展到边缘计算、AI设备,实现X86和arm节点的混合管理,将内外网节点统一管理,支持多K8s集群的统一管理是未来发展的方向。Kubermatic Kubernetes Platform(https://www.kubermatic.com)是用于管理全球分布式的K8s集群的开源项目。KubeEdge、OpenYurt等也是实现类似功能的平台。
- 更多参考:
概览
Kubermatic Kubernetes Platform 是一个开源项目可以将数以千计的全球部署的k8s集群集中管理,实现multicloud。
所有的用户文档在 Kubermatic Kubernetes Platform docs website。
版本
Kubermatic Kubernetes Platform有两个版本:
- Kubermatic Kubernetes Platform Community Edition (CE) 以 Apache License许可发布, Version 2.0.
- Kubermatic Kubernetes Platform Enterprise Edition (EE) 包括一些高级特征,主要面向超过50个集群的大型组织。访问 Enterprise Edition可以通过订阅得到官方的技术支持。
许可
查看 LICENSE 文件,位于项目的目录中。
安装
强烈建议使用官方的Kubermatic Kubernetes Platform发布版本。查看 our documentation 的安装部分。
The code and sample YAML files in the master branch of the kubermatic repository are under active development and are not guaranteed to be stable. Use them at your own risk!
更多信息
The documentation 提供了开始指南,包括 building from source, architecture, extending kubermatic, and more。
注意选择对应的版本,以确保文档与所使用的版本相匹配。
遇到问题
遇到问题去 file an issue 或者到Kubermatic Slack的 #kubermatic channel 交流。
贡献
感谢加入作出贡献,反馈和讨论列表在 the mailing list。
准备
- 通过 Code of Conduct 熟悉代码结构。
- 查看 CONTRIBUTING.md 了解开发者的要求。
- 阅读如何通过 ZenHub 进行项目和工程计划。
源码目录
├── addons # Default Kubernetes addons
├── CHANGELOG.md # The changelog
├── cmd # Various Kubermatic binaries for the API, controller-managers etc.
├── codegen # Helper programs to generate Go code and Helm charts
├── charts # The Helm charts we use to deploy, gets exported to https://github.com/kubermatic/kubermatic-installer
├── containers # Various utility container images
├── docs # Some basic docs
├── hack # scripts for development and CI
├── openshift_addons # Default Openshift addons
├── OWNERS
├── OWNERS_ALIASES
├── pkg # most of the actual codebase
├── Procfile
└── README.md
开发环境
mkdir -p $(go env GOPATH)/src/k8c.io cd $(go env GOPATH)/src/k8c.io git clone git@github.com:kubermatic/kubermatic cd kubermatic
或者:
go get k8c.io/kubermatic
在 hacks
目录有很多脚本用于帮助本地运行和进行测试。
可以通过 https://dev.kubermatic.io
的UI创建集群。然后使用 kubectl
添加 worker-name=<<hostname-of-your-laptop>>
标签到集群。这将使你通过本地的控制器管理集群。
本地运行
kubermatic-api:
./hack/run-api.sh
seed-controller-manager:
./hack/run-seed-controller-manager.sh
master-controller-manager:
./hack/run-master-controller-manager.sh
运行 linters
在push之前,确保运行:make lint
运行 tests
make test
更新 code generation
Kuberneres code-generator tool 不能在 GOPATH之外工作 see。如果cloned 自己的 repository到$(go env GOPATH)/src/k8c.io
运行命令:
hack/update-codegen.sh
或者 (requires Docker):
make update-codegen-in-docker