SkillAtlasSkill 详情

opensearch

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

审核状态:已审核Quality 72Security 70

复制安装命令

用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。

复制前请先查看来源、License 和安全提示。

项目 README

来源文件:README.md

抓取于 2026年8月1日

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.

WorkbenchProject Resources
CI/CD PipelineApp 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

🧩 Extensible Architecture Designed for flexibility, supporting plugin-based extensions and seamless integrations. Easily customize and expand functionalities to meet evolving needs. Learn more.
🕸 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.
🗃 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 Isolated workspaces with role-based access control ensure secure resource sharing across multiple tenants. Supports fine-grained permissions and quota management. Learn more.
    🧠 GPU Workloads Scheduling and Monitoring Create GPU workloads on the GUI, schedule GPU resources, and manage GPU resource quotas by tenant.

    Architecture

    KubeSphere 4.x adopts a microkernel + extension components architecture (codename LuBan). The core part (KubeSphere Core) only includes the essential basic functions required for system operation, with independent functional modules split and provided in the form of extension components. Users can dynamically manage the extension components during system operation. With the extension capabilities, KubeSphere can support more application scenarios and meet the needs of different users.

    Architecture


    Latest release

    🎉 KubeSphere v4.1.2 was released! It brings enhancements and better user experience, see the Release Notes For 4.1.2 for the updates.

    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. KubeSphere consumes very few resources, and you can optionally install additional extensions after installation.

    Quick start

    Installing on K8s

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

    helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.3.tgz --debug --wait
    

    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.

    Guidance, discussion, contribution, and support

    You can reach the KubeSphere community and developers via the following channels:

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

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

    Contribution

    Code of conduct

    Participation in the KubeSphere community is governed by the Code of Conduct.

    Security

    The security process for reporting vulnerabilities is described in SECURITY.md.

    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.




        

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

    数据与 AI研究与检索

    中风险

    • 来源需自行核对维护者身份。
    • 包含脚本或命令调用,安装前请复核。
    • 可能需要外部 token、网络权限或第三方服务。
    • 未检测到高风险命令。
    • 扫描发现:3 条。

    Codex — Git Clone 安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 克隆仓库:git clone https://github.com/kubesphere/kubesphere.git
    3. 将 "skills/opensearch" 文件夹复制到 Codex 的 skills 目录中。
    4. 重启 Codex 让新的 skill 生效。

    Codex — 手动复制安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 从源仓库下载 SKILL.md 及相关文件。
    3. 在 Codex 的 skills 目录中创建新文件夹。
    4. 将所有 skill 文件复制到新文件夹中。
    5. 重启 Codex 让新的 skill 生效。

    Claude Code — Git Clone 安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 克隆仓库:git clone https://github.com/kubesphere/kubesphere.git
    3. 将 "skills/opensearch" 文件夹复制到 Claude Code 的 skills 目录中。
    4. 重启 Claude Code 让新的 skill 生效。

    Claude Code — 手动复制安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 从源仓库下载 SKILL.md 及相关文件。
    3. 在 Claude Code 的 skills 目录中创建新文件夹。
    4. 将所有 skill 文件复制到新文件夹中。
    5. 重启 Claude Code 让新的 skill 生效。

    Cursor — Git Clone 安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 克隆仓库:git clone https://github.com/kubesphere/kubesphere.git
    3. 将 "skills/opensearch" 文件夹复制到 Cursor 的 skills 目录中。
    4. 重启 Cursor 让新的 skill 生效。

    Cursor — 手动复制安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 从源仓库下载 SKILL.md 及相关文件。
    3. 在 Cursor 的 skills 目录中创建新文件夹。
    4. 将所有 skill 文件复制到新文件夹中。
    5. 重启 Cursor 让新的 skill 生效。

    GitHub Copilot — Git Clone 安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 克隆仓库:git clone https://github.com/kubesphere/kubesphere.git
    3. 将 "skills/opensearch" 文件夹复制到 GitHub Copilot 的 skills 目录中。
    4. 重启 GitHub Copilot 让新的 skill 生效。

    GitHub Copilot — 手动复制安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 从源仓库下载 SKILL.md 及相关文件。
    3. 在 GitHub Copilot 的 skills 目录中创建新文件夹。
    4. 将所有 skill 文件复制到新文件夹中。
    5. 重启 GitHub Copilot 让新的 skill 生效。

    Windsurf — Git Clone 安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 克隆仓库:git clone https://github.com/kubesphere/kubesphere.git
    3. 将 "skills/opensearch" 文件夹复制到 Windsurf 的 skills 目录中。
    4. 重启 Windsurf 让新的 skill 生效。

    Windsurf — 手动复制安装

    1. 安装前请先查看来源仓库和风险报告。
    2. 从源仓库下载 SKILL.md 及相关文件。
    3. 在 Windsurf 的 skills 目录中创建新文件夹。
    4. 将所有 skill 文件复制到新文件夹中。
    5. 重启 Windsurf 让新的 skill 生效。
    查看 SKILL.md 原文
    name: opensearch
    description: Use when installing or configuring the OpenSearch extension for KubeSphere, which provides distributed search and analytics engine for storing logs, events, auditing, and notification history

    OpenSearch Extension

    Overview

    OpenSearch is a distributed search and analytics engine built into the KubeSphere WizTelemetry Observability Platform. It is used to store, search, and analyze observability data including logs, auditing events, K8s events, and notification history.

    When to Use

    • Installing OpenSearch cluster for KubeSphere observability extensions
    • Configuring OpenSearch storage for logging, events, auditing, and notifications
    • Managing OpenSearch Dashboard and Curator components

    Components

    ComponentDescriptionDefault
    opensearch-masterMaster node for cluster coordination1 replica
    opensearch-dataData nodes for storing indices3 replicas
    opensearch-dashboardsWeb UI for visualizing datadisabled
    opensearch-curatorScheduled task to clean old indicesenabled

    Prerequisites

    Check Installation Status

    # Check if OpenSearch is installed
    kubectl get installplan opensearch -o jsonpath='{.spec.enabled}'
    
    # Get installed version
    kubectl get extension opensearch -o jsonpath='{.status.installedVersion}'
    
    # Get target clusters
    kubectl get installplan opensearch -o jsonpath='{.spec.clusterScheduling.placement.clusters}'
    

    Returns:

    • "true" - installed and enabled
    • "false" - installed but disabled
    • Empty/Error - not installed

    Get Available Clusters

    kubectl get clusters -o jsonpath='{.items[*].metadata.name}'
    

    Confirm Target Clusters (MUST DO)

    ⚠️ CRITICAL: Do Not guess.

    ⚠️ CRITICAL: DO NOT proceed until target clusters are determined.

    • If user explicitly specified target clusters in the request → Use those clusters directly
    • If user did NOT specify target clusters → You MUST ask user to confirm which clusters to deploy to

    Ask user (if not specified):

    Available clusters: host, dev
    Which clusters do you want to deploy OpenSearch to?
    

    Get Latest Version

    MUST do this to get the latest version:

    kubectl get extensionversions -l kubesphere.io/extension-ref=opensearch -o jsonpath='{range .items[*]}{.spec.version}{"\n"}{end}' | sort -V | tail -1
    

    Installation

    ⚠️ CRITICAL: InstallPlan metadata.name MUST be opensearch. DO NOT use any other name.

    Use the latest version obtained from "Get Latest Version" step.

    Minimal Installation

    apiVersion: kubesphere.io/v1alpha1
    kind: InstallPlan
    metadata:
      name: opensearch
    spec:
      extension:
        name: opensearch
        version: <VERSION>  # From Get Latest Version step
      enabled: true
      upgradeStrategy: Manual
      clusterScheduling:
        placement:
          clusters:
            - host
    

    With OpenSearch Dashboard

    apiVersion: kubesphere.io/v1alpha1
    kind: InstallPlan
    metadata:
      name: opensearch
    spec:
      extension:
        name: opensearch
        version: <VERSION>  # From Get Latest Version step
      enabled: true
      upgradeStrategy: Manual
      config: |
        opensearch-dashboards:
          enabled: true
      clusterScheduling:
        placement:
          clusters:
            - host
    

    Disable Curator

    apiVersion: kubesphere.io/v1alpha1
    kind: InstallPlan
    metadata:
      name: opensearch
    spec:
      extension:
        name: opensearch
        version: <VERSION>  # From Get Latest Version step
      enabled: true
      upgradeStrategy: Manual
      config: |
        opensearch-curator:
          enabled: false
      clusterScheduling:
        placement:
          clusters:
            - host
    

    Configuration

    Parameters

    ParameterTypeDefaultDescription
    opensearch-master.replicasint1Number of master nodes
    opensearch-master.opensearchJavaOptsstring"-Xmx512M -Xms512M"JVM options
    opensearch-master.resourcesobject-Resource limits/requests
    opensearch-data.replicasint3Number of data nodes
    opensearch-data.opensearchJavaOptsstring"-Xmx1536M -Xms1536M"JVM options
    opensearch-data.resourcesobject-Resource limits/requests
    opensearch-data.service.typestringNodePortService type
    opensearch-data.service.nodePortint30920NodePort for external access
    opensearch-dashboards.enabledboolfalseEnable OpenSearch Dashboards
    opensearch-curator.enabledbooltrueEnable index cleanup job

    Resource Configuration

    opensearch-master:
      replicas: 1
      opensearchJavaOpts: "-Xmx512M -Xms512M"
      resources:
        requests:
          cpu: "100m"
          memory: "512Mi"
        limits:
          cpu: "500m"
          memory: "1Gi"
    
    opensearch-data:
      replicas: 3
      opensearchJavaOpts: "-Xmx2048M -Xms2048M"
      resources:
        requests:
          cpu: "200m"
          memory: "2Gi"
        limits:
          cpu: "2000m"
          memory: "4Gi"
      persistence:
        size: 50Gi
        storageClass: "local-volume"
    

    Operations

    Access Target Cluster

    ⚠️ CRITICAL: You MUST access the target cluster BEFORE checking status or running any kubectl commands below.

    ❌ DO NOT run kubectl commands without using the target cluster kubeconfig ✅ MUST run: kubectl --kubeconfig=/tmp/<cluster>-kubeconfig ...

    Checklist (must complete before any operation):

    • 1. Find target clusters:

      kubectl get installplan opensearch -o jsonpath='{.spec.clusterScheduling.placement.clusters}'
      
    • 2. Get cluster kubeconfig:

      kubectl get cluster <cluster-name> -o jsonpath='{.spec.connection.kubeconfig}' | base64 -d > /tmp/<cluster-name>-kubeconfig
      
    • 3. Use this kubeconfig for ALL subsequent commands

    Note: Replace <cluster-name> with the actual cluster name. Use spec.connection.kubeconfig for imported clusters.

    Check Status

    ⚠️ REQUIRED: Complete Access Target Cluster checklist FIRST

    # Extension status
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get extension opensearch
    
    # InstallPlan status
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get installplan opensearch
    

    Get Pods

    ⚠️ REQUIRED: Complete Access Target Cluster checklist FIRST

    # All pods
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get pods -n kubesphere-logging-system -l app.kubernetes.io/instance=opensearch-agent
    
    # By component
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get pods -n kubesphere-logging-system -l app.kubernetes.io/name=opensearch-master
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get pods -n kubesphere-logging-system -l app.kubernetes.io/name=opensearch-data
    
    # Status
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get pods -n kubesphere-logging-system -l app.kubernetes.io/instance=opensearch-agent -o wide
    

    External Endpoint

    ⚠️ REQUIRED: Complete Access Target Cluster checklist FIRST

    OpenSearch uses NodePort (default: 30920) to expose service externally.

    # Get NodePort service
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get svc -n kubesphere-logging-system opensearch-cluster-data
    
    # Get node IP
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}'
    
    # Access OpenSearch externally
    # URL: https://<node-ip>:30920
    curl -k -u admin:admin "https://<node-ip>:30920/_cluster/health"
    

    Output Contract (For Other Skills)

    ⚠️ This section defines what information this skill provides to other skills

    When OpenSearch is successfully deployed, other skills can retrieve:

    FieldExample ValueDescription
    endpointhttps://127.0.0.1:30920Full URL for Vector sink
    nodePort30920NodePort number
    nodeIP127.0.0.1Node internal IP
    auth.useradminDefault username
    auth.passwordadminDefault password

    How other skills should get this info:

    1. Find which cluster OpenSearch was deployed to:

      kubectl get installplan opensearch -o jsonpath='{.spec.clusterScheduling.placement.clusters}'
      
    2. Get cluster kubeconfig:

      kubectl get cluster <cluster-name> -o jsonpath='{.spec.connection.kubeconfig}' | base64 -d > /tmp/<cluster-name>-kubeconfig
      
    3. Get OpenSearch endpoint:

      # NodePort
      NODE_PORT=$(kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get svc -n kubesphere-logging-system opensearch-cluster-data -o jsonpath='{.spec.ports[?(@.port==9200)].nodePort}')
      
      # Node IP
      NODE_IP=$(kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get nodes -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}')
      
      # Full endpoint
      echo "https://${NODE_IP}:${NODE_PORT}"
      

    Update Configuration

    apiVersion: kubesphere.io/v1alpha1
    kind: InstallPlan
    metadata:
      name: opensearch
    spec:
      extension:
        name: opensearch
        version: <VERSION>  # From Get Latest Version step
      enabled: true
      upgradeStrategy: Manual
      config: |
        opensearch-data:
          replicas: 5
          opensearchJavaOpts: "-Xmx4096M -Xms4096M"
        opensearch-dashboards:
          enabled: true
      clusterScheduling:
        placement:
          clusters:
            - host
    

    Uninstall

    Uninstall from all clusters:

    kubectl delete installplan opensearch
    

    Uninstall from specific cluster:

    To remove OpenSearch from a specific cluster, update the InstallPlan by removing that cluster from clusterScheduling.placement.clusters:

    apiVersion: kubesphere.io/v1alpha1
    kind: InstallPlan
    metadata:
      name: opensearch
    spec:
      extension:
        name: opensearch
        version: <VERSION>
      enabled: true
      upgradeStrategy: Manual
      config: |
        opensearch-data:
          replicas: 3
      clusterScheduling:
        placement:
          clusters:
            - <REMAINING_CLUSTERS>  # Remove the cluster you want to uninstall from
    

    Troubleshooting

    ⚠️ REQUIRED: Complete Access Target Cluster checklist FIRST

    Pod Issues

    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig get pods -n kubesphere-logging-system -l app.kubernetes.io/instance=opensearch-agent
    
    # Pod events
    kubectl --kubeconfig=/tmp/<cluster>-kubeconfig describe pods -n kubesphere-logging-system -l app.kubernetes.io/instance=opensearch-agent
    

    OpenSearch Health

    ⚠️ REQUIRED: Complete Access Target Cluster checklist FIRST

    # Cluster health
    curl -k -u admin:admin "https://<node-ip>:30920/_cluster/health"
    
    # List indices
    curl -k -u admin:admin "https://<node-ip>:30920/_cat/indices"
    

    Common Issues

    IssueSolution
    Pods not startingCheck node resources and storage availability
    Out of memoryIncrease JVM heap size
    Cannot connectCheck NodePort firewall rules
    Index storage fullIncrease PVC size or enable Curator

    Notes

    1. Resource Requirements: OpenSearch requires significant CPU and memory
    2. Storage: Data nodes use persistent storage
    3. NodePort: Default port is 30920
    4. Multi-cluster: Can be deployed to specific clusters

    发现问题?提交给管理员复核

    评分:

    评论 (0)

    暂无评论,成为第一个评论者吧!