/tke

Native Kubernetes container management platform supporting multi-tenant and multi-cluster

Primary LanguageGoOtherNOASSERTION

TKEStack - Tencent Kubernetes Engine Stack

TKEStack Logo build-web Go Report Card Release

Chinese document:https://tkestack.github.io/docs/

TKEStack is an open source project that provides a container management platform built for organizations that deploy containers in production. TKEStack makes it easy to run Kubernetes everywhere, meet IT requirements, and empower DevOps teams.

Features

  • Unified Cluster Management
    • Web console and command-line client for centrally manages multiple Kubernetes clusters.
    • Integration with your existing authentication mechanisms, including LDAP, OIDC, front proxy, and public OAuth providers such as GitHub.
    • Unified authorization management, not only at the cluster management level, but even at the Kubernetes resource level.
    • Multi-tenancy support, including team and user isolation of containers, builds, and network communication.
  • Application Workload Management
    • Provides an intuitive UI interface to support visualization and YAML import and other resource creation and editing methods, enabling users to run containers without learning all Kubernetes concepts up-front.
    • An abstract project-level resource container that supports multiple namespace management and deployment applications across multiple clusters.
  • Operation And Maintenance Management
    • Integrated system monitoring and application monitoring.
    • Persistent Kubernetes events and audit logs.
    • Limit, track, and manage the developers and teams on the platform.
  • Plugin Support And Management
    • Authentication identity provider plugin.
    • Authorization provider plugin.
    • Event persistence storage plugin.
    • System and application log persistence storage plugin.
    • Galaxy(Network)、TApp(Workload)、GPUManage(GPU)、CronHPA(HPA)、LBCF(LoadBalance)

Architecture

Architecture Of TKE

Installation

Minimum Requirements

  • Hardware
    • 8 vCPU
    • 16 GB of Memory
    • 100 GB of Disk Space
  • Operating Systems
    • ≥ Ubuntu 16.04/18.04 LTS (64-bit)
    • ≥ CentOS Linux 7.6 (64-bit)
    • ≥ Tencent Linux 2.2

QuickStart

  1. Check Requirements: Please confirm the installation requirements.

  2. Configure Installer: Please execute the following command in the terminal of your installer node.

    # Choose installation package according to your installation node CPU architecture [amd64, arm64]
    arch=amd64 version=v1.8.0 && wget https://tke-release-1251707795.cos.ap-guangzhou.myqcloud.com/tke-installer-linux-$arch-$version.run{,.sha256} && sha256sum --check --status tke-installer-linux-$arch-$version.run.sha256 && chmod +x tke-installer-linux-$arch-$version.run && ./tke-installer-linux-$arch-$version.run
  3. Configure Console & Global Cluster: Open your browser to http://【INSTALLER-NODE-IP】:8080/index.html, the Web GUI will guide you to initialize and install the TKEStack's Global Cluster and Console. You can refer to installation-procedures for more information.

  4. Enjoy TKEStack: Open your browser to http://console.tke.com.

TKEStack use tke-installer tool to deploy. Please refer to tke-installer for more information.

If you encounter problems during installation, you can refer to FAQ installation.

Upgrade

If you want to upgrade your TKEStack, please check Upgrade TKEStack with tke-installer.

Using

TKEStack Documentation

Developing

If you are interested in contributing to the TKEStack, please check the CONTRIBUTING.md first.

Make sure that you have Git-LFS installed before developing TKEStack.

If you have an eligible development environment, you can simply do it:

mkdir -p ~/tkestack
cd ~/tkestack
git clone https://github.com/tkestack/tke
cd tke
make

If you want to refer to this repo for code integration, the go get will be failed as below, please add replace section to your go.mod to fix it

go: tkestack.io/tke upgrade => v1.5.1
go get: tkestack.io/tke@v1.5.1 requires
        github.com/chartmuseum/storage@v0.8.0 requires
        github.com/NetEase-Object-Storage/nos-golang-sdk@v0.0.0-00010101000000-000000000000: invalid version: unknown revision 000000000000
replace (
	github.com/chartmuseum/storage => github.com/choujimmy/storage v0.0.0-20200507092433-6aea2df34764
)

If you refer to this repo and get run failed messages as below, it's caused by the etcd issue #11931, just replace the grpc version to v1.26.0 in the go.mod to fix it

# go.etcd.io/etcd/clientv3/balancer/resolver/endpoint
../../../../../../go/pkg/mod/go.etcd.io/etcd@v0.5.0-alpha.5.0.20200401174654-e694b7bb0875/clientv3/balancer/resolver/endpoint/endpoint.go:114:78: undefined: resolver.BuildOption
../../../../../../go/pkg/mod/go.etcd.io/etcd@v0.5.0-alpha.5.0.20200401174654-e694b7bb0875/clientv3/balancer/resolver/endpoint/endpoint.go:182:31: undefined: resolver.ResolveNowOption
# go.etcd.io/etcd/clientv3/balancer/picker
../../../../../../go/pkg/mod/go.etcd.io/etcd@v0.5.0-alpha.5.0.20200401174654-e694b7bb0875/clientv3/balancer/picker/err.go:37:44: undefined: balancer.PickOptions
../../../../../../go/pkg/mod/go.etcd.io/etcd@v0.5.0-alpha.5.0.20200401174654-e694b7bb0875/clientv3/balancer/picker/roundrobin_balanced.go:55:54: undefined: balancer.PickOptions
replace (
	google.golang.org/grpc => google.golang.org/grpc v1.26.0
)

For the full story, head over to the developer's documentation.

Community

Licensing

TKEStack is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.