<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kubeclipper – Documentation</title><link>https://kubeclipper.io/v1.7/en/docs/</link><description>Recent content in Documentation on Kubeclipper</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Fri, 26 May 2023 00:00:00 +0000</lastBuildDate><atom:link href="https://kubeclipper.io/v1.7/en/docs/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Cluster creation troubleshooting</title><link>https://kubeclipper.io/v1.7/en/docs/faq/kcctl-create-cluster-error/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/faq/kcctl-create-cluster-error/</guid><description>
&lt;p>This page applies to 1.7. Older v1.2.1 Calico download workarounds do not apply directly to this release.&lt;/p>
&lt;h2 id="cluster-not-ready-after-submission">Cluster not Ready after submission&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl operation list -c demo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get cluster demo -o yaml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get node
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Inspect operation details and logs next. Request acceptance, operation completion, and Kubernetes node readiness are separate checks.&lt;/p>
&lt;h2 id="offline-package-or-image-errors">Offline package or image errors&lt;/h2>
&lt;p>Use &lt;code>kcctl resource list&lt;/code> to confirm version and architecture. Inspect image paths, authentication, and connectivity using the failed step&amp;rsquo;s logs. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/carete-k8s-cluster-offline/">offline clusters&lt;/a>.&lt;/p>
&lt;h2 id="platform-or-agent-errors">Platform or Agent errors&lt;/h2>
&lt;p>Run &lt;code>kcctl status&lt;/code> and &lt;code>kcctl doctor&lt;/code> to check API access, services, and SSH connectivity. Supply an SSH private key as deployment credentials, not a public key path.&lt;/p>
&lt;p>See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/diagnostics/">platform diagnostics&lt;/a> for the investigation sequence and &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/operations/">operations and logs&lt;/a> for retries and cancellation.&lt;/p></description></item><item><title>Docs: Create clusters</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/create-clusters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/create-clusters/</guid><description>
&lt;p>Before creating a cluster, confirm the platform is healthy, nodes are registered and ready, and resource versions match node architecture. Complete &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/">Getting started&lt;/a> to validate the deployment path.&lt;/p>
&lt;h2 id="create-in-the-console">Create in the Console&lt;/h2>
&lt;p>Create a cluster from the cluster page. Set a name, control-plane and worker nodes, component versions, and Pod / Service CIDRs that fit your network. Plan control-plane availability, API access, and storage for production deployments; a single-node lab configuration is insufficient.&lt;/p>
&lt;p>Use the &lt;a href="https://kubeclipper.io/v1.7/en/docs/overview/release-1.7/">1.7 component matrix&lt;/a>. &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/make-offline-package/">Upload missing resources&lt;/a> first. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/registries/">Registry&lt;/a> for private image settings; image registries and component packages serve different purposes.&lt;/p>
&lt;h2 id="cli-and-verification">CLI and verification&lt;/h2>
&lt;p>&lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/carete-k8s-cluster-offline/">Offline cluster creation&lt;/a> includes a CLI example with explicit versions. After submitting the request, inspect the &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/operations/">Operation&lt;/a> and confirm cluster state, Ready nodes, system Pods, and Kubernetes API health. Preserve logs when troubleshooting; resetting state does not resolve failed installation steps.&lt;/p></description></item><item><title>Docs: High availability</title><link>https://kubeclipper.io/v1.7/en/docs/deployment-docs/ha-deploy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/deployment-docs/ha-deploy/</guid><description>
&lt;p>This guide deploys a highly available KubeClipper control plane. Platform availability and the availability of managed Kubernetes clusters require separate planning.&lt;/p>
&lt;h2 id="prepare-nodes-and-networking">Prepare nodes and networking&lt;/h2>
&lt;p>Prepare three Linux Server nodes and the Agent nodes you want to manage. The deployment user needs SSH access to every node with the same private key and sudo privileges. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/overview/">architecture and networking&lt;/a> for clock synchronization and ports.&lt;/p>
&lt;p>Platform etcd runs on Server nodes. Plan membership and failure tolerance around etcd quorum requirements. Keep platform Servers separate from Kubernetes workload nodes in production.&lt;/p>
&lt;h2 id="install-and-download">Install and download&lt;/h2>
&lt;p>Follow &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/">Getting started&lt;/a> to install v1.7.0 kcctl and download the complete &lt;code>kc-amd64.tar.gz&lt;/code> or &lt;code>kc-arm64.tar.gz&lt;/code> package for your targets. GitHub Release client archives are not deployment packages for &lt;code>--pkg&lt;/code>.&lt;/p>
&lt;h2 id="deploy-servers-and-agents">Deploy Servers and Agents&lt;/h2>
&lt;p>Replace the IP addresses, private key, and package path. &lt;code>--server&lt;/code> accepts comma-separated addresses; &lt;code>--agent&lt;/code> can include a region.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87">read&lt;/span> -r -s -p &lt;span style="color:#4e9a06">&amp;#39;Set the admin password: &amp;#39;&lt;/span> KC_ADMIN_PASSWORD
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87">printf&lt;/span> &lt;span style="color:#4e9a06">&amp;#39;\n&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl deploy &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --server 192.168.10.11,192.168.10.12,192.168.10.13 &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --agent default:192.168.10.21,192.168.10.22 &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --user root --pk-file &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$HOME&lt;/span>&lt;span style="color:#4e9a06">/.ssh/id_rsa&amp;#34;&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --pkg &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$PWD&lt;/span>&lt;span style="color:#4e9a06">/kc-amd64.tar.gz&amp;#34;&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --initial-password &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$KC_ADMIN_PASSWORD&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87">unset&lt;/span> KC_ADMIN_PASSWORD
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Keep TLS enabled. On hosts with multiple interfaces, select reachable addresses using &lt;code>--ip-detect&lt;/code> and &lt;code>--node-ip-detect&lt;/code>; consult &lt;code>kcctl deploy -h&lt;/code>. Platform etcd ports default to 12379, 12380, and 12381.&lt;/p>
&lt;h2 id="verify-the-platform">Verify the platform&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl login --host https://192.168.10.11:8080 --username admin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl status
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl doctor
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get node
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Check services on all three Servers, platform etcd membership, and Agent health. Repeat API connectivity checks against the other Servers. Configure a load balancer and certificates separately if you need a common hostname or VIP; deploying three Servers does not provision an entry-point VIP.&lt;/p>
&lt;p>Browsers use each Server&amp;rsquo;s default HTTP port 80 console entry point; the CLI uses the HTTPS port 8080 API. Configure HTTPS at the production console entry point and restrict management ports to the intended networks.&lt;/p>
&lt;h2 id="add-and-remove-agents">Add and remove Agents&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl join --agent default:192.168.10.23
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get node
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>After confirming the node has no clusters or workloads to retain, remove it:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl drain --agent 192.168.10.23
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Investigate a normal drain failure before choosing further actions. Do not use force options by default. See the &lt;a href="https://kubeclipper.io/v1.7/en/docs/deployment-docs/upgrade/">upgrade checklist&lt;/a> before changing versions.&lt;/p></description></item><item><title>Docs: 1.7 release notes</title><link>https://kubeclipper.io/v1.7/en/docs/overview/release-1.7/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/overview/release-1.7/</guid><description>
&lt;p>This documentation targets &lt;strong>KubeClipper v1.7.0&lt;/strong>, released on September 8, 2026. See the official &lt;a href="https://github.com/kubeclipper/kubeclipper/releases/tag/v1.7.0">v1.7.0 release&lt;/a>.&lt;/p>
&lt;h2 id="main-changes">Main changes&lt;/h2>
&lt;ul>
&lt;li>API-driven Operation v2 manages operations, tasks, and execution state. Agents communicate with Servers over mTLS.&lt;/li>
&lt;li>&lt;code>kcctl operation&lt;/code> provides lists, details, logs, retries, and cancellation.&lt;/li>
&lt;li>&lt;code>kcctl status&lt;/code> and &lt;code>kcctl doctor&lt;/code> report platform health and diagnostic evidence.&lt;/li>
&lt;li>Registry resources select Kubernetes image repositories and configure containerd image pulls.&lt;/li>
&lt;li>Deployment prechecks identify the node, role, and underlying error. Server installation waits for platform etcd health.&lt;/li>
&lt;/ul>
&lt;h2 id="component-versions">Component versions&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Kubernetes&lt;/th>
&lt;th>containerd&lt;/th>
&lt;th>Calico&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>v1.37.0&lt;/td>
&lt;td>2.2.4&lt;/td>
&lt;td>v3.31.5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>v1.36.4&lt;/td>
&lt;td>2.2.4&lt;/td>
&lt;td>v3.31.5&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>v1.35.8&lt;/td>
&lt;td>2.2.4&lt;/td>
&lt;td>v3.31.5&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>Kubernetes v1.37.0 is the default. Available selections depend on platform resources; offline installations also need packages for the target CPU architecture. Source: &lt;a href="https://github.com/kubeclipper/kubeclipper/blob/v1.7.0/README.md">v1.7.0 support matrix&lt;/a>.&lt;/p>
&lt;h2 id="release-scope">Release scope&lt;/h2>
&lt;p>This documentation describes v1.7.0. Review release notes, security advisories, and binary versions before production use. See the &lt;a href="https://kubeclipper.io/v1.7/en/docs/deployment-docs/upgrade/">upgrade checklist&lt;/a>.&lt;/p>
&lt;p>The version menu preserves documentation for 1.6 through 1.1. The &lt;a href="https://kubeclipper.io/v1.6/en/docs/">1.6 documentation&lt;/a> follows the v1.6.0 release tag.&lt;/p></description></item><item><title>Docs: All-in-One deployment</title><link>https://kubeclipper.io/v1.7/en/docs/getting-started/aio-env/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/getting-started/aio-env/</guid><description>
&lt;p>All-in-One runs the Server and Agent on the same Linux host for evaluation and testing.&lt;/p>
&lt;p>Follow &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/">Getting started&lt;/a> to prepare the host, install v1.7.0 kcctl, download the complete package, deploy the platform, and create a test cluster.&lt;/p>
&lt;p>For production, plan separate Server and workload nodes and see &lt;a href="https://kubeclipper.io/v1.7/en/docs/deployment-docs/ha-deploy/">high availability&lt;/a>.&lt;/p></description></item><item><title>Docs: Features</title><link>https://kubeclipper.io/v1.7/en/docs/overview/feature/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/overview/feature/</guid><description>
&lt;h2 id="cluster-lifecycle">Cluster lifecycle&lt;/h2>
&lt;p>Create, delete, upgrade, back up, and restore Kubernetes clusters. Manage cluster nodes and import existing clusters. Online and offline installation support amd64 and arm64 resources; use the &lt;a href="https://kubeclipper.io/v1.7/en/docs/overview/release-1.7/">1.7 component matrix&lt;/a> when selecting versions.&lt;/p>
&lt;h2 id="operations-and-troubleshooting">Operations and troubleshooting&lt;/h2>
&lt;p>Operation v2 records asynchronous cluster changes. Inspect execution state and logs, then retry or cancel when appropriate. &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/operations/">Operation commands&lt;/a> and &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/diagnostics/">platform diagnostics&lt;/a> help locate failures.&lt;/p>
&lt;h2 id="image-and-resource-management">Image and resource management&lt;/h2>
&lt;p>&lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/registries/">Registry resources&lt;/a> configure image sources and containerd pull settings. &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/make-offline-package/">Offline packages&lt;/a> provide component resources separately.&lt;/p>
&lt;h2 id="platform-and-access">Platform and access&lt;/h2>
&lt;p>Deploy a single-node lab or a &lt;a href="https://kubeclipper.io/v1.7/en/docs/deployment-docs/ha-deploy/">high-availability platform&lt;/a>. Agents use mTLS to access the Server API. RBAC provides user permissions; see &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/access-control/">access control&lt;/a>.&lt;/p></description></item><item><title>Docs: Upgrade checklist</title><link>https://kubeclipper.io/v1.7/en/docs/deployment-docs/upgrade/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/deployment-docs/upgrade/</guid><description>
&lt;p>Platform upgrades and managed Kubernetes upgrades are separate procedures. This page covers platform checks; it does not promise a direct upgrade from every older release to 1.7.&lt;/p>
&lt;h2 id="before-upgrading">Before upgrading&lt;/h2>
&lt;ol>
&lt;li>Record Server, Agent, kcctl, and Console versions and node topology. Confirm package architecture.&lt;/li>
&lt;li>Review release notes, security advisories, and configuration changes. 1.7 introduces Operation v2; inspect old operation records and task state in a test environment.&lt;/li>
&lt;li>Choose a window with no running installation, upgrade, or backup operations. Resolve unfinished work first.&lt;/li>
&lt;li>Back up platform etcd, Server and Agent configuration, certificates, and persistent authentication keys. Verify recovery. Back up managed-cluster data separately.&lt;/li>
&lt;li>Rehearse the target upgrade path in a recoverable test environment and record interruption and recovery steps.&lt;/li>
&lt;/ol>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl status
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl doctor
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation list
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl upgrade -h
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="upgrade">Upgrade&lt;/h2>
&lt;p>&lt;code>kcctl upgrade&lt;/code> supports platform and component upgrades. Use a package with the structure described in command help that you have validated in a test environment. Client archives are not platform upgrade packages.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">UPGRADE_PACKAGE&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>/path/to/validated-upgrade-package.tar.gz
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl upgrade all --pkg &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$UPGRADE_PACKAGE&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use online upgrades or individual component replacement only when the release or your validated deployment procedure supports them. Replacing one binary does not establish that the whole platform upgrade succeeded.&lt;/p>
&lt;h2 id="after-upgrading">After upgrading&lt;/h2>
&lt;p>Repeat &lt;code>kcctl status&lt;/code> and &lt;code>kcctl doctor&lt;/code> and verify versions running on every node. Check login, node data, operation details and logs, managed-cluster access, and basic Console flows. Exercise a controlled lifecycle operation and compare the Operation result with actual cluster state.&lt;/p>
&lt;p>Preserve errors and logs on failure and follow the recovery procedure tested beforehand. Check data and configuration compatibility before restoring old binaries; do not repeatedly overwrite services in an unknown state.&lt;/p></description></item><item><title>Docs: Roadmap</title><link>https://kubeclipper.io/v1.7/en/docs/overview/roadmap/</link><pubDate>Fri, 26 May 2023 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/overview/roadmap/</guid><description>
&lt;p>This page records development directions, not capabilities guaranteed by v1.7.0. Consult the &lt;a href="https://kubeclipper.io/v1.7/en/docs/overview/release-1.7/">release notes&lt;/a> for shipped functionality and &lt;a href="https://github.com/kubeclipper/kubeclipper/issues">GitHub issues&lt;/a> for current discussions.&lt;/p>
&lt;ul>
&lt;li>OCI-based distribution of installation resources&lt;/li>
&lt;li>Kubernetes workload and monitoring views&lt;/li>
&lt;li>Application and add-on lifecycle management&lt;/li>
&lt;li>Additional managed-cluster deployment modes&lt;/li>
&lt;/ul>
&lt;p>No delivery dates are promised here. Validate experimental features separately before production use.&lt;/p></description></item><item><title>Docs: Cluster hosting</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/cluster-hosting/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/cluster-hosting/</guid><description>
&lt;h2 id="kubeadm-cluster-hosting">Kubeadm cluster hosting&lt;/h2>
&lt;p>For a host cluster created and managed by kubeadm, kubeclipper gets the cluster and node information from the kubeconfig file and imports it into the kubeclipper platform.&lt;/p>
&lt;p>Click &amp;ldquo;Cluster Management&amp;rdquo; &amp;gt; &amp;ldquo;Cluster Hosting&amp;rdquo; button to enter the cluster hosting page. Click &amp;ldquo;Add&amp;rdquo; button at the upper left corner. In the pop-up window of Add Provider, fill in the provider name (such as kubeadm-demo) and description, and then fill in the following information:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Region: The region of the cluster and node in the kubeclipper platform.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Provider type: Select kubeadm.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>SSH: Specifies the connection method of cluster nodes. Private Key or Password can be selected. Ensure that all cluster nodes can be connected through the selected method.&lt;/p>
&lt;ul>
&lt;li>Private Key: enter the node user name and private key information.&lt;/li>
&lt;li>Password: enter the node user name and password.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Cluster name: Specifies the display name on the platform and cannot be the same as any other clusters.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>KubeConfig: The KubeConfig file of the host cluster.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Click the &amp;ldquo;OK&amp;rdquo; button to import the cluster and node into the platform. Click the provider name (kubeadm-demo) to enter the Provider detail page, where you can view the cluster under the provider and perform the following operations on the provider:&lt;/p>
&lt;ul>
&lt;li>Synchronization: Kubeclipper synchronizes cluster information every four hours. You can also click &amp;ldquo;Synchronize&amp;rdquo; to manually perform the operation.&lt;/li>
&lt;li>Edit: Edit the provider&amp;rsquo;s name, description, access information, and node connection method.&lt;/li>
&lt;li>Remove: Detach platform management while preserving Kubernetes itself. Cleanup also removes imported kc-agent installations and platform-created ServiceAccount, ClusterRoleBinding, and kubectl terminal resources. Previously managed nodes follow separate preservation rules. Check node ownership and retain kubeconfig before removal.&lt;/li>
&lt;/ul>
&lt;h2 id="managed-cluster-management">Managed cluster management&lt;/h2>
&lt;p>You can choose &amp;ldquo;Cluster Management&amp;rdquo; &amp;gt; &amp;ldquo;Cluster&amp;rdquo; to go to the cluster list page and view the list of all clusters, including hosted clusters and local clusters. The following table lists the operations supported by different clusters:&lt;/p>
&lt;p>Image sources for plug-ins and external storage depend on the selected component package and configuration. Prepare images before offline installation and confirm that every node can pull them. Configure the &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/registries/">CRI registry&lt;/a> first when authentication or a private CA is required.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Function&lt;/th>
&lt;th>Clusters created by Kubeclipper&lt;/th>
&lt;th>Hosted kubeadm cluster&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>View log&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Retry after failed task&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Access Kubectl&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Edit&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Save as template&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✘&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CRI Registry&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Add/remove cluster nodes&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cluster Backup and Recovery&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Version Upgrade&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✘&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Delete cluster&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✘&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Remove cluster (provider)&lt;/td>
&lt;td>/&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Reset status&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cluster plugin management&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Update cluster certificate&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>View kubeconfig file&lt;/td>
&lt;td>✔&lt;/td>
&lt;td>✔&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>Docs: Offline clusters</title><link>https://kubeclipper.io/v1.7/en/docs/getting-started/carete-k8s-cluster-offline/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/getting-started/carete-k8s-cluster-offline/</guid><description>
&lt;p>Offline installation needs a platform deployment package and component resources for Kubernetes, the CRI, and the CNI. Registry resources describe image repositories; they do not replace offline packages.&lt;/p>
&lt;h2 id="check-resources">Check resources&lt;/h2>
&lt;p>After &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/">deploying the platform&lt;/a>, log in and inspect resources and nodes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl resource list
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get node
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Match package architecture to the target nodes. The 1.7 matrix uses Kubernetes v1.37.0 / v1.36.4 / v1.35.8, containerd 2.2.4, and Calico v3.31.5. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/make-offline-package/">offline component packages&lt;/a> when more resources are needed.&lt;/p>
&lt;h2 id="create-the-cluster">Create the cluster&lt;/h2>
&lt;p>&lt;code>kcctl create cluster&lt;/code> defaults to offline installation. This example uses one test node:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl create cluster --name offline-demo --master 192.168.10.21 --untaint-master &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --k8s-version v1.37.0 --cri containerd --cri-version 2.2.4 &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --cni calico --cni-version v3.31.5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation list -c offline-demo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get cluster offline-demo -o yaml
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>In the Console wizard, select prepared component versions, target nodes, and offline installation. Populate any image repository and configure its &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/registries/">Registry resource&lt;/a> first. Select storage plugins according to actual requirements; a particular NFS plugin is not a mandatory cluster-creation step.&lt;/p>
&lt;h2 id="confirm-installation">Confirm installation&lt;/h2>
&lt;p>Use Operations and node logs to locate failures. After obtaining kubeconfig, check Ready nodes, system Pods, and API readiness. Resolve missing resources, architecture mismatches, and unreachable image paths before retrying. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/operations/">operations and logs&lt;/a>.&lt;/p></description></item><item><title>Docs: Cluster management</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/cluster-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/cluster-management/</guid><description>
&lt;p>KubeClipper 1.7 executes cluster lifecycle work through Operation v2. Inspect the cluster object, then confirm outcomes using operation details and actual nodes.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl get cluster
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get cluster demo -o yaml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation list -c demo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="logs-retries-and-cancellation">Logs, retries, and cancellation&lt;/h2>
&lt;p>See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/operations/">operations and logs&lt;/a> for commands. Resolve the cause of a failure before retrying. Resetting cluster state does not repair nodes or undo completed work.&lt;/p>
&lt;h2 id="access-a-cluster">Access a cluster&lt;/h2>
&lt;p>Obtain kubeconfig from the Console cluster details page, set &lt;code>KUBECONFIG&lt;/code>, and run:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl get nodes -o wide
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl get pods -A
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kubectl get --raw&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#39;/readyz?verbose&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Healthy platform status does not establish the health of every managed cluster. After upgrades, scaling, backup, or recovery, inspect the relevant nodes, system Pods, and application data.&lt;/p>
&lt;h2 id="scaling-and-registries">Scaling and registries&lt;/h2>
&lt;p>Use &lt;code>kcctl join&lt;/code> to register new machines with the platform. Confirm that nodes are Ready and in the cluster&amp;rsquo;s region before adding them from the cluster details page. Evacuate workloads and check remaining capacity before removing cluster nodes. Platform &lt;code>kcctl drain&lt;/code> removes an Agent; it is a separate operation from shrinking a cluster. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/node-management/">node management&lt;/a>.&lt;/p>
&lt;p>Configure Kubernetes image repositories and containerd pull registries separately. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/registries/">registries&lt;/a> and verify actual image pulls after changes.&lt;/p>
&lt;h2 id="backup-and-restore">Backup and restore&lt;/h2>
&lt;ol>
&lt;li>Configure a backup space and associate it with the cluster through the edit action. For directory backup spaces, create and mount the agreed path on the relevant nodes and confirm write access.&lt;/li>
&lt;li>Start a backup, or configure a scheduled backup with its execution time and retention count. Confirm successful backup status and readable files.&lt;/li>
&lt;li>Select a backup belonging to the cluster for restoration. Follow its Operation, then check the API, nodes, system Pods, and application state.&lt;/li>
&lt;/ol>
&lt;p>Cluster backups center on Kubernetes etcd snapshots. They do not include application files in persistent volumes; back up those separately. Restoration changes cluster state. Rehearse in an isolated environment: the existence of a backup record alone does not establish recoverability.&lt;/p>
&lt;h2 id="upgrade-kubernetes">Upgrade Kubernetes&lt;/h2>
&lt;p>Kubernetes upgrades are separate from KubeClipper platform upgrades. Back up the cluster, validate restoration, and check target component resources, images, and workload compatibility before selecting a target in the cluster upgrade action. This action is unavailable for hosted kubeadm clusters.&lt;/p>
&lt;p>Inspect the CLI parameters with:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl cluster upgrade --help
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use &lt;code>--cluster-name&lt;/code> and &lt;code>--version&lt;/code> to select the cluster and target. Offline mode is the default; &lt;code>--online&lt;/code> selects online mode and &lt;code>--image-registry&lt;/code> selects a configured Registry resource. The target must exist in platform resources. The support matrix does not guarantee successful upgrades between every listed version. Follow the resulting Operation and repeat the cluster health checks above.&lt;/p>
&lt;h2 id="delete-a-cluster">Delete a cluster&lt;/h2>
&lt;p>Back up workloads and data before deletion, then follow the Operation:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl delete cluster demo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation list -c demo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get cluster
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Confirm deletion has finished before reusing nodes. Preserve errors and node state for &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/diagnostics/">diagnostics&lt;/a>; forced deletion does not establish that cleanup completed.&lt;/p></description></item><item><title>Docs: Offline component packages</title><link>https://kubeclipper.io/v1.7/en/docs/getting-started/make-offline-package/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/getting-started/make-offline-package/</guid><description>
&lt;p>The full 1.7.0 deployment package installs the platform. Additional Kubernetes, CRI, and CNI packages provide cluster resources. Deploy the platform using &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/">Getting started&lt;/a> first.&lt;/p>
&lt;h2 id="choose-versions-and-architecture">Choose versions and architecture&lt;/h2>
&lt;p>Use the &lt;a href="https://kubeclipper.io/v1.7/en/docs/overview/release-1.7/">1.7 matrix&lt;/a>. This Bash example prepares Kubernetes v1.37.0 for amd64. Prepare arm64 packages for arm64 nodes.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87">set&lt;/span> -e
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">ARCH&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>amd64
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">VERSION&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>v1.37.0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">PKG_DIR&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#204a87;font-weight:bold">$(&lt;/span>mktemp -d&lt;span style="color:#204a87;font-weight:bold">)&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">COMPONENT_DIR&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;k8s/&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">VERSION&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">/&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">ARCH&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>mkdir -p &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">PKG_DIR&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">/&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">COMPONENT_DIR&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">for&lt;/span> FILE in manifest.json configs.tar.gz images.tar.gz&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#204a87;font-weight:bold">do&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> curl -fL -o &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">PKG_DIR&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">/&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">COMPONENT_DIR&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">/&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">FILE&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;https://kubeclipper.oss-ap-southeast-1.aliyuncs.com/packages/&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">COMPONENT_DIR&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">/&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">FILE&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">done&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar -czf &lt;span style="color:#4e9a06">&amp;#34;k8s-&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">VERSION&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">-&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">ARCH&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">.tar.gz&amp;#34;&lt;/span> -C &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$PKG_DIR&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span> k8s
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>tar -tzf &lt;span style="color:#4e9a06">&amp;#34;k8s-&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">VERSION&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">-&lt;/span>&lt;span style="color:#4e9a06">${&lt;/span>&lt;span style="color:#000">ARCH&lt;/span>&lt;span style="color:#4e9a06">}&lt;/span>&lt;span style="color:#4e9a06">.tar.gz&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Preserve the &lt;code>k8s/version/architecture/&lt;/code> hierarchy. Keep certificate and HTTP verification enabled. The download directory remains at &lt;code>$PKG_DIR&lt;/code> for inspection and subsequent cleanup.&lt;/p>
&lt;p>Other components use the same hierarchy. Archive the component directory with the following files:&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Directory&lt;/th>
&lt;th>Version&lt;/th>
&lt;th>Required files&lt;/th>
&lt;th>Upload type&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>k8s&lt;/td>
&lt;td>v1.37.0&lt;/td>
&lt;td>manifest.json, configs.tar.gz, images.tar.gz&lt;/td>
&lt;td>k8s&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>containerd&lt;/td>
&lt;td>2.2.4&lt;/td>
&lt;td>manifest.json, configs.tar.gz&lt;/td>
&lt;td>cri&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>calico&lt;/td>
&lt;td>v3.31.5&lt;/td>
&lt;td>manifest.json, images.tar.gz, charts.tgz&lt;/td>
&lt;td>cni&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>For example, Calico uses &lt;code>packages/calico/v3.31.5/amd64/manifest.json&lt;/code>. Packaging existing resources does not imply support for arbitrary custom versions.&lt;/p>
&lt;h2 id="upload-in-the-offline-environment">Upload in the offline environment&lt;/h2>
&lt;p>Transfer the archive to a deployment machine that can reach the platform and has the deployment configuration and Server SSH credentials.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl resource push --pkg k8s-v1.37.0-amd64.tar.gz --type k8s
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl resource list
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use &lt;code>--type cri&lt;/code> for containerd and &lt;code>--type cni&lt;/code> for Calico. Confirm the versions and architecture in the resource list before &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/carete-k8s-cluster-offline/">creating an offline cluster&lt;/a>. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/registries/">Registry configuration&lt;/a> for image registry settings.&lt;/p></description></item><item><title>Docs: Node management</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/node-management/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/node-management/</guid><description>
&lt;h2 id="region-management">Region management&lt;/h2>
&lt;p>KubeClipper supports multi-region management. That is, all nodes and clusters managed by the platform are divided into physical or logical regions. On the Region Management page, you can view all regions in the platform. Click a region name to enter the region detail page, and you can view the clusters and nodes in the region.&lt;/p>
&lt;p>&lt;img src="https://kubeclipper.io/v1.7/images/docs-tutorials/region-en.png" alt="">&lt;/p>
&lt;h2 id="node-management">Node management&lt;/h2>
&lt;p>The platform supports multi-region management, that is, the owning region of all nodes managed by the platform. On the Region Management page, you can view all regions managed by the platform. Click a region name to go to the region details page, where you can view the list of all clusters and nodes in the region.&lt;/p>
&lt;p>On the &amp;ldquo;Node Info&amp;rdquo; page, you can view the list of all nodes managed in the platform, node specifications, status and other information. Click the node name to enter the node detail page, you can view detailed node basic information and system information.&lt;/p>
&lt;p>The node status in KubeClipper represents the management status of the node by kc-agent. Under normal circumstances, the node status is displayed as &amp;ldquo;Ready&amp;rdquo;. The default monitoring grace period is 4 minutes, checked every 10 seconds. After the grace period, the status changes to &amp;ldquo;Unknown&amp;rdquo;; scheduling or communication delays can affect when the change becomes visible. Investigate the Agent, network, and Server connectivity before scheduling new cluster installation or expansion on an unknown node.&lt;/p>
&lt;h3 id="add-node">&lt;strong>Add node&lt;/strong>&lt;/h3>
&lt;p>When deploying KubeClipper, you can add the initial server nodes which are used to deploy KubeClipper's own services, and agent nodes which are used to deploy kubernetes clusters. In a KubeClipper environment for experimentation or development, you can add a server node as an agent node at the same time. However, if it is used for a production environment, it is recommended not to reuse the server node as an agent node.&lt;/p>
&lt;p>You can also use the kcctl join command to add agent nodes to KubeClipper, and mark a region for each agent node. The region can be a physical or logical location. You can use nodes in the same region to create a kubernetes cluster, but cannot use nodes across regions to create a cluster. Nodes in unmarked regions belong to the default region.&lt;/p>
&lt;p>Command line example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-Plaintext" data-lang="Plaintext">&lt;span style="display:flex;">&lt;span>kcctl join --agent beijing:1.2.3.4 --agent shanghai:2.3.4.5
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="remove-node">&lt;strong>Remove node&lt;/strong>&lt;/h3>
&lt;p>When you no longer need some nodes, you can use the kcctl drain command to remove nodes from the platform.&lt;/p>
&lt;p>Command line example:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-Plaintext" data-lang="Plaintext">&lt;span style="display:flex;">&lt;span>kcctl drain --agent 192.168.10.19
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="connect-terminal">&lt;strong>Connect Terminal&lt;/strong>&lt;/h3>
&lt;p>On the node list page, you can click the &amp;ldquo;Connect Terminal&amp;rdquo; button on the right side of the target node, enter the node port and username password information in the pop-up window, access the node SSH console and execute command tasks.&lt;/p>
&lt;h3 id="enabledisable-a-node">Enable/disable a node&lt;/h3>
&lt;p>You can click the Disable button on the right side of the node to temporarily disable the node. The node in the disabled state cannot be created or added to the cluster.&lt;/p></description></item><item><title>Docs: Access control</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/access-control/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/access-control/</guid><description>
&lt;h2 id="create-user">&lt;strong>Create user&lt;/strong>&lt;/h2>
&lt;p>After installing KubeClipper, you need to create a user of a desired role. Initially, there is only one user, admin, by default, with the platform administrator role.&lt;/p>
&lt;p>Click &amp;ldquo;Access Control&amp;rdquo; &amp;gt; &amp;ldquo;Users&amp;rdquo; to enter the user management page, click the &amp;ldquo;Create User&amp;rdquo; button in the upper left corner, fill in the user name, password, alias name and other information in the pop-up window, specify the user role, and click the &amp;ldquo;OK&amp;rdquo; button. The four initial roles in the system are as follows:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>platform-admin: Platform administrator, with the authority to set platform, cluster management, user management, audit, etc.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>cluster-manager: Cluster administrator, with all cluster management permissions.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>iam-manager: User administrator, with all user management permissions.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>platform-view: Platform read-only user, with all platform viewing permissions.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>After the user is created, you can view the user details and login logs on the user detail page and perform the following operations:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Edit: Edit user alias, role, mobile phone number, email information.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Edit Password: Edit the user login password.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Delete: Delete the user.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="create-a-custom-role">&lt;strong>Create a custom role&lt;/strong>&lt;/h2>
&lt;p>In addition to system initial roles, you can also create customized roles to meet business needs.&lt;/p>
&lt;p>Click &amp;ldquo;Access Control&amp;rdquo; &amp;gt; &amp;ldquo;Roles&amp;rdquo; to enter the role management page. You can click the &amp;ldquo;Create Role&amp;rdquo; button in the upper left corner to create a custom role.&lt;/p>
&lt;p>On the Create Role page, you need to fill in the role name and description, and check the permissions required. Some permissions depend on other permissions. When these permissions are selected, the dependent permissions will be automatically selected.&lt;/p>
&lt;p>After creating a customized role, you can view the basic role information, role permission list, authorized user list on the role detail page, and perform the following operations:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Edit: Edit the custom role description.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Edit permissions: Edit permissions of the customized role.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Delete: To delete a customized role, make sure that no user is using the role to be deleted.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="access-to-external-users">&lt;strong>Access to external users&lt;/strong>&lt;/h2>
&lt;p>External users can log in to KubeClipper via the OIDC protocol .&lt;/p>
&lt;p>First, the platform administrator needs to log in to the platform server node and insert the following information under &amp;ldquo;authentication&amp;rdquo; in the kubeclipper-server.yaml file:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-yaml" data-lang="yaml">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">oauthOptions&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">identityProviders&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#204a87;font-weight:bold">name&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">keycloak&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">OIDC&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">mappingMethod&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">auto&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">provider&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">clientID&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">kc&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">clientSecret&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">REPLACE_WITH_CLIENT_SECRET&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">issuer&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">https://idp.example.com/realms/kubeclipper&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">scopes&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#000">openid&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>- &lt;span style="color:#000">email&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#204a87;font-weight:bold">redirectURL&lt;/span>&lt;span style="color:#000;font-weight:bold">:&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline"> &lt;/span>&lt;span style="color:#000">https://console.example.com/oauth2/redirect/keycloak&lt;/span>&lt;span style="color:#f8f8f8;text-decoration:underline">
&lt;/span>&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Merge this fragment under &lt;code>authentication&lt;/code> in the existing configuration. Replace the example domains and &lt;code>REPLACE_WITH_CLIENT_SECRET&lt;/code>. Register exactly the same &lt;code>redirectURL&lt;/code> with the IdP; its final path component must match the provider &lt;code>name&lt;/code>. Update each Server and restart &lt;code>kc-server&lt;/code> one node at a time.&lt;/p>
&lt;p>Under &amp;ldquo;provider&amp;rdquo;, you need to fill in the clientID , clientSecret , and issuer information of your OAuth2 service, taking keycloak as an example, as shown in the figure below.&lt;/p>
&lt;p>&lt;img src="https://kubeclipper.io/v1.7/images/docs-tutorials/keycloak-clients.png" alt="">&lt;/p>
&lt;p>&lt;img src="https://kubeclipper.io/v1.7/images/docs-tutorials/keycloak-secret.png" alt="">&lt;/p>
&lt;p>RedirectURL example: &lt;a href="https://console.example.com/oauth2/redirect/keycloak">https://console.example.com/oauth2/redirect/keycloak&lt;/a>&lt;/p>
&lt;p>OAuth2 users can log in to the KubeClipper platform by following these steps:&lt;/p>
&lt;ol>
&lt;li>
&lt;p>Click the &amp;ldquo;OAuth2 Login&amp;rdquo; button on the login page, enter the OAuth2 login page, fill in the username and password to enter the KubeClipper platform. When logging in for the first time, you will not be able to access the platform because you have not been granted any permission.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The platform administrator or other user with user management rights log in to KubeClipper, find the target OAuth2 user on the user management page, and set the user role by editing the user information.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>The OAuth2 user repeats the first step, logs in to KubeClipper, and accesses the platform normally.&lt;/p>
&lt;/li>
&lt;/ol></description></item><item><title>Docs: Operations and logs</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/operations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/operations/</guid><description>
&lt;p>KubeClipper 1.7 represents installation, upgrades, backup, and deletion as Operations, with Tasks assigned by step and node. A successful submission means the request was accepted; query its result afterward.&lt;/p>
&lt;h2 id="find-an-operation">Find an operation&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl operation list
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation list -c demo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Copy an actual operation ID from the list, then inspect details and logs:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">OPERATION_ID&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#39;&amp;lt;actual operation ID&amp;gt;&amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation describe &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation logs &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation logs &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span> --follow
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use logs to identify the failed step and node. In an interactive terminal, open the cluster&amp;rsquo;s TUI log viewer:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl operation logs --cluster demo
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use the operation-ID commands for plain-text logs in scripts and non-interactive terminals.&lt;/p>
&lt;h2 id="handle-a-failure">Handle a failure&lt;/h2>
&lt;p>Preserve operation details, failed-node logs, and cluster state. Resolve the missing package, image download, node connectivity, or service problem before retrying:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl operation retry &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation describe &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation logs &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span> --follow
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Check actual cluster and node state after the retry. Its command return value alone does not establish recovery. If parameters are wrong, review the task configuration rather than retrying repeatedly.&lt;/p>
&lt;h2 id="cancel-work">Cancel work&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl operation cancel &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl operation describe &lt;span style="color:#4e9a06">&amp;#34;&lt;/span>&lt;span style="color:#000">$OPERATION_ID&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Cancellation does not roll back installation or data changes that have already happened. Confirm tasks have stopped and inspect existing changes on the nodes before cleanup.&lt;/p>
&lt;h2 id="confirm-the-result">Confirm the result&lt;/h2>
&lt;p>Check the Operation result, &lt;code>kcctl get cluster demo -o yaml&lt;/code>, Kubernetes nodes, and system Pods together. After cluster deletion, check the platform list and node residue. See &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/diagnostics/">platform diagnostics&lt;/a> for platform-level issues.&lt;/p></description></item><item><title>Docs: Platform diagnostics</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/diagnostics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/diagnostics/</guid><description>
&lt;p>Locate the failing layer first: the platform, Agent, resource downloads, or the Kubernetes cluster.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>Symptom&lt;/th>
&lt;th>Start with&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Console does not open or API connection fails&lt;/td>
&lt;td>&lt;a href="#platform-health">Platform health&lt;/a>; check the console and API addresses and ports&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Agent or node is not ready&lt;/td>
&lt;td>&lt;a href="#node-services">Node services&lt;/a>; inspect service logs and connectivity&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Deployment precheck or resource download fails&lt;/td>
&lt;td>&lt;a href="#deployment-failures">Deployment failures&lt;/a>; follow the reported node and check&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Cluster creation task fails&lt;/td>
&lt;td>&lt;a href="#cluster-task-failures">Cluster task failures&lt;/a>; locate the Operation and failing step&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="platform-health">Platform health&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl version
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl status
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl status -o json
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl doctor
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>&lt;code>status&lt;/code> summarizes kc-server, kc-etcd, and kc-agent health. &lt;code>doctor&lt;/code> checks local access, services, platform etcd, and Agents, with evidence for failed checks. Unhealthy results return a nonzero exit code for scripting. Neither command repairs the environment.&lt;/p>
&lt;p>If the API cannot be reached, check that &lt;code>kcctl login&lt;/code> points to the HTTPS API endpoint, normally port 8080. Inspect local login and deployment configuration and SSH connectivity from the deployment host.&lt;/p>
&lt;h2 id="node-services">Node services&lt;/h2>
&lt;p>Run on the relevant Linux node:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>sudo systemctl status kc-server kc-etcd kc-agent --no-pager
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo journalctl -u kc-server -n &lt;span style="color:#0000cf;font-weight:bold">100&lt;/span> --no-pager
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>sudo journalctl -u kc-agent -n &lt;span style="color:#0000cf;font-weight:bold">100&lt;/span> --no-pager
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>An Agent-only node is not expected to run a Server or platform etcd. Interpret service results according to node roles. Check disk space, clock synchronization, management addresses, and firewall rules.&lt;/p>
&lt;h2 id="deployment-failures">Deployment failures&lt;/h2>
&lt;p>Precheck errors identify the check and node. If services already exist, establish whether they belong to an active platform before changing anything. For download failures, verify the URL, certificate, file size, and archive contents. Do not hide certificate failures by disabling verification.&lt;/p>
&lt;h2 id="cluster-task-failures">Cluster task failures&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl operation list -c demo
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get cluster demo -o yaml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get node
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl resource list
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Use &lt;a href="https://kubeclipper.io/v1.7/en/docs/tutorials/operations/">operations and logs&lt;/a> to locate the failing step and node. Check package versions and architectures for offline installation. For image pull failures, check the registry address, credentials, and connectivity. Include versions, topology, sanitized errors, and operation IDs in an issue; remove passwords, tokens, private keys, and kubeconfig credentials.&lt;/p></description></item><item><title>Docs: Image registries</title><link>https://kubeclipper.io/v1.7/en/docs/tutorials/registries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/en/docs/tutorials/registries/</guid><description>
&lt;p>A Registry resource describes a Kubernetes image source or adds image-pull configuration to containerd. It is separate from platform offline resource packages. Creating a Registry does not copy images into it.&lt;/p>
&lt;h2 id="create-a-registry">Create a Registry&lt;/h2>
&lt;p>The following example describes an HTTP registry on a management network. Configure HTTPS, CA trust, and authentication for your actual registry; consult command help for all flags.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl create registry --name internal --host registry.example.com:5000 --scheme http
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl get registry
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>kcctl create registry -h
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Authentication uses &lt;code>--auth-username&lt;/code> and &lt;code>--auth-password&lt;/code>; protect credentials from shell history and terminal logs. For HTTPS, review &lt;code>--ca&lt;/code> and &lt;code>--skip-tls-verify&lt;/code> instead of reusing the HTTP example unchanged.&lt;/p>
&lt;h2 id="select-a-registry-for-a-cluster">Select a registry for a cluster&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kcctl create cluster --name demo --master 192.168.10.21 &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --k8s-version v1.37.0 --cri containerd --cri-version 2.2.4 &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --cni calico --cni-version v3.31.5 &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --image-registry internal --cri-registry internal
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;ul>
&lt;li>&lt;code>--image-registry&lt;/code> selects a Registry resource for Kubernetes images.&lt;/li>
&lt;li>&lt;code>--cri-registry&lt;/code> adds Registry configuration to containerd; select multiple resources as needed.&lt;/li>
&lt;li>Without an explicit image registry, components use their own defaults and applicable Agent image-mirror settings. Kubernetes and Calico do not necessarily use the same default repository.&lt;/li>
&lt;/ul>
&lt;p>Populate the registry with the required images first. Check actual image paths, authentication, certificates, and connectivity from cluster nodes. Offline installation also needs the &lt;a href="https://kubeclipper.io/v1.7/en/docs/getting-started/carete-k8s-cluster-offline/">resource packages&lt;/a>.&lt;/p></description></item></channel></rss>