Giter VIP home page Giter VIP logo

dev-guide's Introduction

banner

The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management

A+ good first issue follow on Twitter


What is KubeSphere

English | 中文

KubeSphere is a distributed operating system for cloud-native application management, using Kubernetes as its kernel. It provides a plug-and-play architecture, allowing third-party applications to be seamlessly integrated into its ecosystem. KubeSphere is also a multi-tenant container platform with full-stack automated IT operation and streamlined DevOps workflows. It provides developer-friendly wizard web UI, helping enterprises to build out a more robust and feature-rich platform, which includes most common functionalities needed for enterprise Kubernetes strategy, see Feature List for details.

The following screenshots give a close insight into KubeSphere. Please check What is KubeSphere for further information.

Workbench Project Resources
CI/CD Pipeline App Store

Demo environment

🎮 KubeSphere Lite provides you with free, stable, and out-of-the-box managed cluster service. After registration and login, you can easily create a K8s cluster with KubeSphere installed in only 5 seconds and experience feature-rich KubeSphere.

🖥 You can view the Demo Video to get started with KubeSphere.

Features

🕸 Provisioning Kubernetes Cluster Support deploy Kubernetes on any infrastructure, support online and air-gapped installation. Learn more.
🔗 Kubernetes Multi-cluster Management Provide a centralized control plane to manage multiple Kubernetes clusters, and support the ability to propagate an app to multiple K8s clusters across different cloud providers.
🤖 Kubernetes DevOps Provide GitOps-based CD solutions and use Argo CD to provide the underlying support, collecting CD status information in real time. With the mainstream CI engine Jenkins integrated, DevOps has never been easier. Learn more.
🔎 Cloud Native Observability Multi-dimensional monitoring, events and auditing logs are supported; multi-tenant log query and collection, alerting and notification are built-in. Learn more.
🧩 Service Mesh (Istio-based) Provide fine-grained traffic management, observability and tracing for distributed microservice applications, provides visualization for traffic topology. Learn more.
💻 App Store Provide an App Store for Helm-based applications, and offer application lifecycle management on Kubernetes platform. Learn more.
💡 Edge Computing Platform KubeSphere integrates KubeEdge to enable users to deploy applications on the edge devices and view logs and monitoring metrics of them on the console. Learn more.
📊 Metering and Billing Track resource consumption at different levels on a unified dashboard, which helps you make better-informed decisions on planning and reduce the cost. Learn more.
🗃 Support Multiple Storage and Networking Solutions
  • Support GlusterFS, CephRBD, NFS, LocalPV solutions, and provide CSI plugins to consume storage from multiple cloud providers.
  • Provide Load Balancer Implementation OpenELB for Kubernetes in bare-metal, edge, and virtualization.
  • Provides network policy and Pod IP pools management, support Calico, Flannel, Kube-OVN
  • ..
    🏘 Multi-tenancy Provide unified authentication with fine-grained roles and three-tier authorization system, and support AD/LDAP authentication.
    🧠 GPU Workloads Scheduling and Monitoring Create GPU workloads on the GUI, schedule GPU resources, and manage GPU resource quotas by tenant.

    Architecture

    KubeSphere uses a loosely-coupled architecture that separates the frontend from the backend. External systems can access the components of the backend through the REST APIs.

    Architecture


    Latest release

    🎉 KubeSphere v3.4.0 was released! It brings enhancements and better user experience, see the Release Notes For 3.4.0 for the updates.

    Component supported versions table

    Component Version K8s supported version
    Alerting N/A 1.21,1.22,1.23,1.24,1.25,1.26
    Auditing v0.2.0 1.21,1.22,1.23,1.24,1.25,1.26
    Monitoring N/A 1.21,1.22,1.23,1.24,1.25,1.26
    DevOps v3.4.0 1.21,1.22,1.23,1.24,1.25,1.26
    EdgeRuntime v1.13.0 1.21,1.22,1.23
    Events N/A 1.21,1.22,1.23,1.24,1.25,1.26
    Logging opensearch:v2.6.0
    fluentbit-operator: v0.14.0
    fluent-bit-tag: v1.9.4
    1.21,1.22,1.23,1.24,1.25,1.26
    Metrics Server v0.4.2 1.21,1.22,1.23,1.24,1.25,1.26
    Network N/A 1.21,1.22,1.23,1.24,1.25,1.26
    Notification v2.3.0 1.21,1.22,1.23,1.24,1.25,1.26
    AppStore N/A 1.21,1.22,1.23,1.24,1.25,1.26
    Storage pvc-autoresizer: v0.3.0
    storageclass-accessor: v0.2.2
    1.21,1.22,1.23,1.24,1.25,1.26
    ServiceMesh Istio: v1.14.6 1.21,1.22,1.23,1.24
    Gateway Ingress NGINX Controller: v1.3.1 1.21,1.22,1.23,1.24

    Installation

    KubeSphere can run anywhere from on-premise datacenter to any cloud to edge. In addition, it can be deployed on any version-compatible Kubernetes cluster. The installer will start a minimal installation by default, you can enable other pluggable components before or after installation.

    Quick start

    Installing on K8s/K3s

    Ensure that your cluster has installed Kubernetes v1.21.x, v1.22.x, v1.23.x, * v1.24.x, * v1.25.x, or * v1.26.x. For Kubernetes versions with an asterisk, some features may be unavailable due to incompatibility.

    Run the following commands to install KubeSphere on an existing Kubernetes cluster:

    kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/kubesphere-installer.yaml
    
    kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.4.0/cluster-configuration.yaml

    All-in-one

    👨‍💻 No Kubernetes? You can use KubeKey to install both KubeSphere and Kubernetes/K3s in single-node mode on your Linux machine. Let's take K3s as an example:

    # Download KubeKey
    curl -sfL https://get-kk.kubesphere.io | VERSION=v3.0.10 sh -
    # Make kk executable
    chmod +x kk
    # Create a cluster
    ./kk create cluster --with-kubernetes v1.24.14 --container-manager containerd --with-kubesphere v3.4.0

    You can run the following command to view the installation logs. After KubeSphere is successfully installed, you can access the KubeSphere web console at http://IP:30880 and log in using the default administrator account ( admin/P@88w0rd).

    kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l 'app in (ks-install, ks-installer)' -o jsonpath='{.items[0].metadata.name}') -f

    KubeSphere for hosted Kubernetes services

    KubeSphere is hosted on the following cloud providers, and you can try KubeSphere by one-click installation on their hosted Kubernetes services.

    You can also install KubeSphere on other hosted Kubernetes services within minutes, see the step-by-step guides to get started.

    👨‍💻 No internet access? Refer to

    the Air-gapped Installation on Kubernetes

    or Air-gapped Installation on Linux

    for instructions on how to use private registry to install KubeSphere.

    Guidance, discussion, contribution, and support

    We ❤️ your contribution. The community walks you through how to get started contributing KubeSphere. The development guide explains how to set up development environment.

    🤗 Please submit any KubeSphere bugs, issues, and feature requests to KubeSphere GitHub Issue.

    💟 The KubeSphere team also provides efficient official ticket support to respond in hours. For more information, click KubeSphere Online Support.

    Who are using KubeSphere

    The user case studies page includes the user list of the project. You can leave a comment to let us know your use case.

    Landscapes



        

    KubeSphere is a member of CNCF and a Kubernetes Conformance Certified platform , which enriches the CNCF CLOUD NATIVE Landscape.

    dev-guide's People

    Contributors

    51wangping avatar arhell avatar benjaminhuo avatar bettygogo2021 avatar chenz24 avatar donniean avatar fuchunlan avatar harrisonliu5 avatar hongzhouzi avatar iawia002 avatar ks-ci-bot avatar linuxsuren avatar patrickluoyu avatar rayzhou2017 avatar smartcat999 avatar wansir avatar wtw1994 avatar yazhouio avatar zheng1 avatar zhou1203 avatar zhuxiujuan28 avatar

    Stargazers

     avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

    Watchers

     avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

    dev-guide's Issues

    扩展组件开发指南

    如何快速开发一个 KSE 插件

    当您希望能基于 KSE 快速开发一个插件时,首先需要确定的是给用户提供什么样的功能。
    下面的一些示例可以有助于您理解 KSE 可以实现的功能和扩展组件机制。

    示例插件:

    1. Redis Helm 应用
      在应用商店中提供 Redis 应用,每个租户都可以在自己的项目中使用这个 Redis 应用,它实际上是使用 Helm Chart 来创建资源。如果您已有开发好的 Helm Chart,希望通过 KSE 进行分发,可以参考这个示例
    2. Redis Operator 应用
      在应用商店中提供 Redis 应用,每个租户都可以在自己的项目中使用这个 Redis 应用,它实际上是使用 Operator 机制来创建资源。如果您已有开发好的 Operator,希望通过 KSE 进行分发,可以参考这个示例
    3. 监控、日志
      在自定义的注入点提供监控和日志功能。如果您希望深度修改 KSE 中已有的功能,并且给用户提供无缝的体验,可以参考这个示例
    4. nginx ingress controller
      在应用路由中提供 nginx ingress controller 类型,每个租户都可以在创建应用路由时选择这个 ingress 类型。如果您已有开发好的 ingress controller,希望在 KSE 界面中新增这种类型,可以参考这个示例
    5. OpenEBS 存储
      在存储中提供 OpenEBS 相关的存储类型,每个租户都可以在创建持久卷声明时选择这个存储类型。如果您有已经开发好的 CSI 插件,希望在 KSE 界面中新增这种类型,可以参考这个示例
    6. Weave Scope 网络拓扑
      在工作台中提供网络拓扑功能,集群管理员可以在工作台中进入 Weave Scope 查看网络拓扑。如果您的云原生应用有独立的用户界面,希望在 KSE 界面中新增一个入口,可以参考这个示例
    7. DMP 应用
      在应用商店提供 MySQL、PostgreSQL、MongoDB 等应用,每个租户都可以在自己的项目中使用这些应用,它们的底层是 Helm Chart 或者 Opeator 实现。在工作台中提供数据库后台管理功能,集群管理员可以在工作台中进入 DMP 后台管理数据库应用。如果您希望为用户提供应用服务,并提供相应的管理后台和界面自定义,可以参考这个示例

    按用户使用的入口来区分插件:

    • 动态入口
      • ApplicationClass
        • Helm(link to 快速开发指南)
        • Operator(link to 快速开发指南)
      • StorageClass
      • WorkbenchEndpoint
      • IngressClass
      • GatewayClass(将于 v4.1 提供)
      • RuntimeClass(将于 v4.1 提供)
    • 自定义入口
      • JSBundle 自定义
    1. 动态入口在 KSE 中皆为动态获取,如果没有安装对应的插件,将提示用户进行安装。
    2. 自定义入口在插件安装完成后才会在对应页面中进行注入。

    Recommend Projects

    • React photo React

      A declarative, efficient, and flexible JavaScript library for building user interfaces.

    • Vue.js photo Vue.js

      🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

    • Typescript photo Typescript

      TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

    • TensorFlow photo TensorFlow

      An Open Source Machine Learning Framework for Everyone

    • Django photo Django

      The Web framework for perfectionists with deadlines.

    • D3 photo D3

      Bring data to life with SVG, Canvas and HTML. 📊📈🎉

    Recommend Topics

    • javascript

      JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

    • web

      Some thing interesting about web. New door for the world.

    • server

      A server is a program made to process requests and deliver data to clients.

    • Machine learning

      Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

    • Game

      Some thing interesting about game, make everyone happy.

    Recommend Org

    • Facebook photo Facebook

      We are working to build community through open source technology. NB: members must have two-factor auth.

    • Microsoft photo Microsoft

      Open source projects and samples from Microsoft.

    • Google photo Google

      Google ❤️ Open Source for everyone.

    • D3 photo D3

      Data-Driven Documents codes.