复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
The container platform tailored for Kubernetes multi-cloud, datacenter, and edge management
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 |
![]() | ![]() |
🎮 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.
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.

🎉 KubeSphere v4.1.2 was released! It brings enhancements and better user experience, see the Release Notes For 4.1.2 for the updates.
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.
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 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.
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.
Participation in the KubeSphere community is governed by the Code of Conduct.
The security process for reporting vulnerabilities is described in SECURITY.md.
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.
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 historyOpenSearch 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.
| Component | Description | Default |
|---|---|---|
| opensearch-master | Master node for cluster coordination | 1 replica |
| opensearch-data | Data nodes for storing indices | 3 replicas |
| opensearch-dashboards | Web UI for visualizing data | disabled |
| opensearch-curator | Scheduled task to clean old indices | enabled |
# 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 disabledkubectl get clusters -o jsonpath='{.items[*].metadata.name}'
⚠️ CRITICAL: Do Not guess.
⚠️ CRITICAL: DO NOT proceed until target clusters are determined.
Ask user (if not specified):
Available clusters: host, dev
Which clusters do you want to deploy OpenSearch to?
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
⚠️ CRITICAL: InstallPlan metadata.name MUST be opensearch. DO NOT use any other name.
Use the latest version obtained from "Get Latest Version" step.
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
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
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
| Parameter | Type | Default | Description |
|---|---|---|---|
opensearch-master.replicas | int | 1 | Number of master nodes |
opensearch-master.opensearchJavaOpts | string | "-Xmx512M -Xms512M" | JVM options |
opensearch-master.resources | object | - | Resource limits/requests |
opensearch-data.replicas | int | 3 | Number of data nodes |
opensearch-data.opensearchJavaOpts | string | "-Xmx1536M -Xms1536M" | JVM options |
opensearch-data.resources | object | - | Resource limits/requests |
opensearch-data.service.type | string | NodePort | Service type |
opensearch-data.service.nodePort | int | 30920 | NodePort for external access |
opensearch-dashboards.enabled | bool | false | Enable OpenSearch Dashboards |
opensearch-curator.enabled | bool | true | Enable index cleanup job |
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"
⚠️ 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. Usespec.connection.kubeconfigfor imported clusters.
⚠️ 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
⚠️ 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
⚠️ 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"
⚠️ This section defines what information this skill provides to other skills
When OpenSearch is successfully deployed, other skills can retrieve:
| Field | Example Value | Description |
|---|---|---|
endpoint | https://127.0.0.1:30920 | Full URL for Vector sink |
nodePort | 30920 | NodePort number |
nodeIP | 127.0.0.1 | Node internal IP |
auth.user | admin | Default username |
auth.password | admin | Default password |
How other skills should get this info:
Find which cluster OpenSearch was deployed to:
kubectl get installplan opensearch -o jsonpath='{.spec.clusterScheduling.placement.clusters}'
Get cluster kubeconfig:
kubectl get cluster <cluster-name> -o jsonpath='{.spec.connection.kubeconfig}' | base64 -d > /tmp/<cluster-name>-kubeconfig
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}"
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 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
⚠️ REQUIRED: Complete Access Target Cluster checklist FIRST
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
⚠️ 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"
| Issue | Solution |
|---|---|
| Pods not starting | Check node resources and storage availability |
| Out of memory | Increase JVM heap size |
| Cannot connect | Check NodePort firewall rules |
| Index storage full | Increase PVC size or enable Curator |
评论 (0)
暂无评论,成为第一个评论者吧!