<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>KubeClipper – 使用手册</title><link>https://kubeclipper.io/v1.7/docs/tutorials/</link><description>Recent content in 使用手册 on KubeClipper</description><generator>Hugo -- gohugo.io</generator><lastBuildDate>Tue, 16 Aug 2022 00:00:00 +0000</lastBuildDate><atom:link href="https://kubeclipper.io/v1.7/docs/tutorials/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: 创建集群</title><link>https://kubeclipper.io/v1.7/docs/tutorials/create-clusters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/create-clusters/</guid><description>
&lt;p>创建集群前，确认 KubeClipper 平台可用、节点已注册并就绪、组件资源的版本和架构匹配。建议先完成&lt;a href="https://kubeclipper.io/v1.7/docs/getting-started/">快速开始&lt;/a>，验证一条完整的部署路径。&lt;/p>
&lt;h2 id="控制台创建">控制台创建&lt;/h2>
&lt;p>登录控制台，在集群页面创建集群。填写名称，选择控制节点、工作节点及组件版本，再按实际网络规划设置 Pod / Service CIDR。生产集群需提前规划控制平面高可用、API 访问地址和存储；单节点实验配置不能直接用于生产。&lt;/p>
&lt;p>1.7 的推荐组件组合参见&lt;a href="https://kubeclipper.io/v1.7/docs/overview/release-1.7/">版本说明&lt;/a>。资源不在平台中时先&lt;a href="https://kubeclipper.io/v1.7/docs/getting-started/make-offline-package/">上传组件包&lt;/a>。私有仓库相关字段参见 &lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/registries/">Registry&lt;/a>；镜像仓库和组件包是两种独立资源。&lt;/p>
&lt;h2 id="cli-创建与验证">CLI 创建与验证&lt;/h2>
&lt;p>&lt;a href="https://kubeclipper.io/v1.7/docs/getting-started/carete-k8s-cluster-offline/">离线创建集群&lt;/a>提供带明确版本的 CLI 示例。创建请求提交后，在&lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/operations/">Operation&lt;/a>中查看执行结果，并检查集群状态、节点 Ready、系统 Pod 和 Kubernetes API 健康状态。失败时先保留日志并排查，不要通过重置状态跳过失败步骤。&lt;/p></description></item><item><title>Docs: 集群托管</title><link>https://kubeclipper.io/v1.7/docs/tutorials/cluster-hosting/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/cluster-hosting/</guid><description>
&lt;h2 id="kubeadm-集群托管">Kubeadm 集群托管&lt;/h2>
&lt;p>托管由 kubeadm 创建和管理的 kubernetes 集群，kubeclipper 会通过 kubeconfig 文件，获取集群和节点信息，并导入到 kubeclipper 平台中。&lt;/p>
&lt;p>点击“集群管理”&amp;gt;“集群托管”按钮进入集群托管页面，点击左上角“添加”按钮，在添加提供商弹窗中，填写提供商名称（如 kubeadm-demo）和描述后，填写以下信息：&lt;/p>
&lt;ul>
&lt;li>区域：提供商下的集群和节点在 kubeclipper 平台中的所属区域。&lt;/li>
&lt;li>提供商类型：选择 kubeadm。&lt;/li>
&lt;li>节点连接方式：集群节点的连接方式，可以选择“私钥”或者“密码”，您需要确保可以通过所选方式 ssh 到集群节点。
&lt;ul>
&lt;li>选择“私钥”，需要输入节点用户名和私钥信息。&lt;/li>
&lt;li>选择“密码”，需要输入节点用户名和密码信息。&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>集群名称：作为在本平台的展示名称，不能与其他集群重复。&lt;/li>
&lt;li>KubeConfig：托管集群的 KubeConfig 文件。&lt;/li>
&lt;/ul>
&lt;p>填写完成后点击“确定”按钮，将集群和节点导入到平台中。点击提供商名称（kubeadm-demo），进入提供商详情页，您可以查看提供商下的集群，并对提供商执行以下操作：&lt;/p>
&lt;ul>
&lt;li>同步：系统将每隔4小时定期同步集群信息，您也可以点击“同步”按钮手动执行。&lt;/li>
&lt;li>编辑：编辑提供商的名称、描述、访问信息、节点连接方式。&lt;/li>
&lt;li>移除：解除平台对该集群的管理，保留 Kubernetes 集群本体。清理还会移除导入时安装的 kc-agent，以及平台创建的 ServiceAccount、ClusterRoleBinding 和 kubectl 终端服务；原本已纳管的节点有不同的保留逻辑。移除前核对节点归属并保存 kubeconfig。&lt;/li>
&lt;/ul>
&lt;h2 id="托管集群管理">托管集群管理&lt;/h2>
&lt;p>您可以点击“集群管理”&amp;gt;“集群”进入集群列表页面，查看包括托管集群和本地集群在内的所有集群列表，对于不同集群，支持的管理操作如下表所示：&lt;/p>
&lt;p>插件和外接存储的镜像来源以所选组件包及其配置为准。离线环境须提前准备镜像，并确认各节点能够从配置的仓库拉取；需要认证或自签名证书时，先配置 &lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/registries/">CRI 镜像仓库&lt;/a>。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;strong>功能&lt;/strong>&lt;/th>
&lt;th>&lt;strong>Kubeclipper 创建的集群&lt;/strong>&lt;/th>
&lt;th>&lt;strong>托管的 kubeadm 集群&lt;/strong>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>查看日志&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>任务失败后重试&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>访问 kubectl&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>编辑&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>保存为模版&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✘&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CRI 镜像仓库配置&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>添加/移除集群节点&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>备份和恢复管理&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>版本升级&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✘&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>删除集群&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✘&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>移除集群（提供商）&lt;/td>
&lt;td>/&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>重置状态&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>集群插件管理&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>更新集群证书&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>查看 kubeconfig&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;td>✔︎&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>Docs: 集群管理</title><link>https://kubeclipper.io/v1.7/docs/tutorials/cluster-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/cluster-management/</guid><description>
&lt;p>KubeClipper 1.7 的集群生命周期操作由 Operation v2 执行。先查看集群对象，再用操作详情和节点实际状态确认结果。&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="日志重试和取消">日志、重试和取消&lt;/h2>
&lt;p>完整命令见&lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/operations/">操作与日志&lt;/a>。失败后先处理根因再重试；重置集群状态不会修复失败的节点或撤销已执行操作。&lt;/p>
&lt;h2 id="访问集群">访问集群&lt;/h2>
&lt;p>在 Console 的集群详情页获取 kubeconfig，设置 &lt;code>KUBECONFIG&lt;/code> 后执行：&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>平台状态正常不代表所有受管集群都正常。升级、扩缩容、备份和恢复后，都要检查对应集群中的节点、系统 Pod 和业务数据。&lt;/p>
&lt;h2 id="扩缩容与镜像仓库">扩缩容与镜像仓库&lt;/h2>
&lt;p>先用 &lt;code>kcctl join&lt;/code> 将新增机器纳入平台，确认节点就绪、区域与目标集群一致，再在集群详情中添加节点。移除节点前迁移工作负载并检查容量；平台的 &lt;code>kcctl drain&lt;/code> 用于移除平台 Agent，不等同于集群缩容。节点接入步骤见&lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/node-management/">节点管理&lt;/a>。&lt;/p>
&lt;p>Kubernetes 镜像仓库与 containerd 拉取仓库分别配置，具体步骤见&lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/registries/">镜像仓库&lt;/a>。变更后检查实际镜像拉取结果。&lt;/p>
&lt;h2 id="备份与恢复">备份与恢复&lt;/h2>
&lt;ol>
&lt;li>配置备份空间，并在编辑集群时关联该备份空间。使用目录备份空间时，先在相关节点创建并挂载约定路径，确认可写。&lt;/li>
&lt;li>在集群中发起备份，或通过定时备份设置执行时间和保留数量；确认备份记录成功且文件可读取。&lt;/li>
&lt;li>恢复时选择该集群的备份记录，跟踪恢复 Operation，完成后检查 API、节点、系统 Pod 和业务状态。&lt;/li>
&lt;/ol>
&lt;p>这里的集群备份以 Kubernetes etcd 快照为核心，不包含业务持久卷中的文件；应用数据需要另行备份。恢复会改变集群状态，先在隔离环境演练，不能仅凭备份记录存在判断可恢复。&lt;/p>
&lt;h2 id="kubernetes-版本升级">Kubernetes 版本升级&lt;/h2>
&lt;p>这与 KubeClipper 平台升级是两项操作。先备份并验证恢复方案，检查目标版本的组件资源、镜像和工作负载兼容性，再从集群的升级入口选择目标版本。托管的 kubeadm 集群不提供此升级入口。&lt;/p>
&lt;p>CLI 参数可用下列命令查看：&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>升级命令使用 &lt;code>--cluster-name&lt;/code> 和 &lt;code>--version&lt;/code> 指定集群与目标版本，默认采用离线方式；&lt;code>--online&lt;/code> 改为在线方式，&lt;code>--image-registry&lt;/code> 选择已配置的 Registry 资源。目标版本必须在平台可用资源中，不能将支持矩阵当作任意版本间升级成功的保证。提交后跟踪 Operation，并执行上面的集群健康检查。&lt;/p>
&lt;h2 id="删除集群">删除集群&lt;/h2>
&lt;p>先确认工作负载和数据已备份，再发起删除并跟踪 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>确认删除结束后再复用节点。失败时保留日志和节点状态，参考&lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/diagnostics/">平台诊断&lt;/a>，不要用强制删除掩盖未完成的清理。&lt;/p></description></item><item><title>Docs: 节点管理</title><link>https://kubeclipper.io/v1.7/docs/tutorials/node-management/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/node-management/</guid><description>
&lt;h2 id="区域管理">区域管理&lt;/h2>
&lt;p>平台支持多区域管理，即为平台管理的所有节点和集群进行物理或逻辑的区域划分。您可以在“区域管理”页面查看平台内管理的所有区域，点击区域名称，进入区域详情页面，可以查看区域下的所有集群列表和节点列表。&lt;/p>
&lt;p>&lt;img src="https://kubeclipper.io/v1.7/images/docs-tutorials/region.png" alt="">&lt;/p>
&lt;h2 id="节点管理">节点管理&lt;/h2>
&lt;p>您可以在“节点信息”页面查看平台中管理的全部节点列表，和节点规格、状态等信息。点击节点名称进入节点详情页面，可以查看详细的节点基本信息和系统信息。&lt;/p>
&lt;p>KubeClipper 中的节点状态表示 kc-agent 对节点的管理状态。正常情况下，节点状态显示为“就绪”，默认节点健康监控宽限期为 4 分钟，每 10 秒检查一次；超过宽限期后，状态会更新为“未知”，实际显示时间还会受到调度和通信延迟影响。此时先排查 Agent、网络和 Server 连通性，恢复就绪后再安排新的集群部署或扩容。&lt;/p>
&lt;h3 id="添加节点">添加节点&lt;/h3>
&lt;p>在部署 KubeClipper 时，您就可以添加初始的 server 节点和 agent 节点，其中，server 节点用于部署 KubeClipper 自身服务，agent 节点可用于部署 kubernetes 集群。在用于实验或开发的 KubeClipper 环境，您可以将 server 节点同时添加为 agent 节点。但如果用于生产环境，建议不要将 server 节点复用为 agent 节点。&lt;/p>
&lt;p>您也可以使用 kcctl join 命令为 KubeClipper 添加 agent 节点。同时，您可以为每个 agent 节点标记一个区域，区域可以是物理的或逻辑的位置，您可以使用同一区域的节点创建 kubernetes 集群，但不可以使用跨区域的节点创建集群。未标记区域的节点默认属于 default 区域。&lt;/p>
&lt;p>命令行示例：&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-shell" data-lang="shell">&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="移除节点">移除节点&lt;/h3>
&lt;p>当您不再需要某些节点，可以使用 kcctl drain 命令将节点从平台中移除。&lt;/p>
&lt;p>命令行示例：&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-shell" data-lang="shell">&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="连接终端">连接终端&lt;/h3>
&lt;p>在节点列表页面，您可以点击目标节点右侧的“连接终端”按钮，在连接终端的弹窗中输入节点端口和用户名密码信息后，访问节点 SSH 控制台并执行命令。&lt;/p>
&lt;h3 id="启用禁用节点">启用/禁用节点&lt;/h3>
&lt;p>您可以点击节点右侧“禁用”按钮暂时禁用节点，禁用状态下的节点不允许创建或添加到集群。&lt;/p></description></item><item><title>Docs: 访问控制</title><link>https://kubeclipper.io/v1.7/docs/tutorials/access-control/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/access-control/</guid><description>
&lt;h2 id="用户管理">用户管理&lt;/h2>
&lt;p>安装 KubeClipper 之后，您需要创建所需角色的用户。一开始，系统默认只有一个用户 admin，具有平台管理员角色。&lt;/p>
&lt;p>点击“访问控制”&amp;gt;“用户”，进入用户管理页面，点击左上角“创建用户”按钮，在弹窗中填写用户名、密码、手机号码、邮箱等信息，并指定用户角色，点击“确认”按钮。系统内置四个角色如下：&lt;/p>
&lt;ul>
&lt;li>
&lt;p>平台管理员：拥有集群管理、用户管理、审计管理等全部平台查看和操作权限。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>集群管理员：拥有所有集群管理权限。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>用户管理员：拥有所有用户管理权限。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>平台只读用户：拥有全部平台查看权限。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>用户创建完成后，您可以在用户详情页面查看用户详情信息，并执行以下操作：&lt;/p>
&lt;ul>
&lt;li>
&lt;p>编辑：编辑用户别名、角色、手机号、邮箱信息。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>编辑密码：编辑用户登录密码。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>删除：删除用户。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>在用户详情页面，您还可以查看当前用户的登录日志列表。&lt;/p>
&lt;p>您可以编辑平台 /etc/kubeclipper-server/kubeclipper-server.yaml 文件，根据需要设置用户登录日志的最大保留条数和保留期限，清理逻辑仅在该用户的日志总数超过最大条数时触发：先删除超额的旧记录，再清理剩余的过期记录；未超过最大条数时，不会仅因过期而删除。&lt;/p>
&lt;h2 id="自定义角色">自定义角色&lt;/h2>
&lt;p>除了系统内置角色，您也可以创建自定义角色，以满足业务需要。&lt;/p>
&lt;p>点击“访问控制”&amp;gt;“角色”，进入角色管理页面，您可以点击左上角“创建角色”按钮，创建自定义角色。&lt;/p>
&lt;p>在创建角色页面，您需要填写角色名称和描述，并勾选自定义角色所需权限，一些权限依赖于其他权限，在选择这些权限时，将自动选中依赖的权限。&lt;/p>
&lt;p>创建自定义角色完成后，您可以在角色详情页面查看角色基本信息、角色权限列表、授权用户列表，并对自定义角色执行以下操作：&lt;/p>
&lt;ul>
&lt;li>
&lt;p>编辑：编辑自定义角色描述。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>编辑权限：编辑自定义角色下的权限。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>删除：删除自定义角色，需确保没有用户使用待删除角色。&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="接入外部用户">接入外部用户&lt;/h2>
&lt;p>KubeClipper 可以通过 OIDC 协议使用外部用户登录。&lt;/p>
&lt;p>首先，平台管理员需要登录平台 server 节点，在 kubeclipper-server.yaml 文件中的 authentication 下插入以下信息：&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>这是 &lt;code>authentication&lt;/code> 下的配置片段，需合并到现有配置。将示例域名和 &lt;code>REPLACE_WITH_CLIENT_SECRET&lt;/code> 替换为实际值；IdP 注册的回调地址必须与 &lt;code>redirectURL&lt;/code> 完全一致，路径末尾的 &lt;code>keycloak&lt;/code> 与提供商 &lt;code>name&lt;/code> 一致。各 Server 更新配置后，按节点滚动重启 &lt;code>kc-server&lt;/code>。&lt;/p>
&lt;p>其中，“provider” 下需要您填写自己的 OAuth2 服务的&lt;code>clientID&lt;/code>、&lt;code>clientSecret&lt;/code>、&lt;code>issuer&lt;/code>信息，以 keycloak 为例，如下图所示。&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>&lt;code>redirectURL&lt;/code>示例：https://console.example.com/oauth2/redirect/keycloak&lt;/p>
&lt;p>OAuth2 用户可以通过以下步骤访问和使用 KubeClipper 平台：&lt;/p>
&lt;ol>
&lt;li>点击登录页的 “OAuth2 登录”按钮，进入 OAuth2 登录页面，输入用户名密码登录，进入 KubeClipper 平台，首次登录，您会因未被授予权限而无法访问平台。&lt;/li>
&lt;li>平台管理员或其他拥有用户管理权限的用户登录 KubeClipper，在用户管理页面，找到目标 OAuth2 用户，通过编辑用户指定用户角色。&lt;/li>
&lt;li>OAuth2 用户重复第一步，登录 KubeClipper，就可以正常访问平台并执行角色权限内操作。&lt;/li>
&lt;/ol></description></item><item><title>Docs: 操作与日志</title><link>https://kubeclipper.io/v1.7/docs/tutorials/operations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/operations/</guid><description>
&lt;p>KubeClipper 1.7 将安装、升级、备份、删除等工作建模为 Operation，并按步骤和节点执行 Task。提交命令成功只表示请求已被接受，最终结果需要继续查询。&lt;/p>
&lt;h2 id="查找操作">查找操作&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>从列表复制实际操作 ID 后查看详情和日志：&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;实际操作 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>通过日志定位失败步骤和节点。在交互式终端中，可按集群打开 TUI 日志视图：&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>脚本和非交互终端使用带操作 ID 的纯文本日志命令。&lt;/p>
&lt;h2 id="处理失败">处理失败&lt;/h2>
&lt;p>先保留操作详情、失败节点日志和集群状态，处理包缺失、镜像下载、节点网络或服务异常等原因，再重试：&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>重试后再次检查实际集群和节点，不能只看 retry 命令返回值。若参数本身错误，先核对任务配置，不要用反复重试代替修正。&lt;/p>
&lt;h2 id="取消操作">取消操作&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>取消不等于回滚已经执行的安装或数据操作。继续确认任务是否停止，以及节点上已经产生的变更；清理前先确定资源归属。&lt;/p>
&lt;h2 id="确认成功">确认成功&lt;/h2>
&lt;p>结合 Operation 结果、&lt;code>kcctl get cluster demo -o yaml&lt;/code>、Kubernetes 节点与 Pod 状态确认结果。集群删除后还要检查平台列表和节点残留。平台问题参考&lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/diagnostics/">诊断指南&lt;/a>。&lt;/p></description></item><item><title>Docs: 平台诊断</title><link>https://kubeclipper.io/v1.7/docs/tutorials/diagnostics/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/diagnostics/</guid><description>
&lt;p>先确定故障发生在平台、Agent、资源下载还是 Kubernetes 集群，再针对对应层排查。&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>现象&lt;/th>
&lt;th>先检查&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>控制台打不开或 API 连接失败&lt;/td>
&lt;td>&lt;a href="#%E5%B9%B3%E5%8F%B0%E7%8A%B6%E6%80%81">平台状态&lt;/a>，确认控制台与 API 使用了正确地址和端口&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Agent 或节点未就绪&lt;/td>
&lt;td>&lt;a href="#%E8%8A%82%E7%82%B9%E6%9C%8D%E5%8A%A1">节点服务&lt;/a>，检查对应节点的服务日志和连通性&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>安装预检查失败或资源包下载失败&lt;/td>
&lt;td>&lt;a href="#%E9%83%A8%E7%BD%B2%E5%A4%B1%E8%B4%A5">部署失败&lt;/a>，按报错中的节点和检查项处理&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>创建集群的任务失败&lt;/td>
&lt;td>&lt;a href="#%E9%9B%86%E7%BE%A4%E4%BB%BB%E5%8A%A1%E5%A4%B1%E8%B4%A5">集群任务失败&lt;/a>，先找到 Operation 和失败步骤&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="平台状态">平台状态&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> 汇总 kc-server、kc-etcd 和 kc-agent 的健康状态。&lt;code>doctor&lt;/code> 检查本地访问、服务、平台 etcd 和 Agent，并输出失败证据。非健康结果会返回非零退出码，适合用于检查脚本；两个命令都不会自动修复环境。&lt;/p>
&lt;p>若平台 API 无法访问，检查 &lt;code>kcctl login&lt;/code> 使用的地址是否为 HTTPS API 入口，默认端口 8080。检查本地登录和部署配置，以及部署机到各节点的 SSH 连通性。&lt;/p>
&lt;h2 id="节点服务">节点服务&lt;/h2>
&lt;p>在对应的 Linux 节点执行：&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>只部署 Agent 的节点不应要求存在 Server 或平台 etcd 服务。结合实际节点角色解读结果，并检查磁盘、时间同步、管理地址和防火墙。&lt;/p>
&lt;h2 id="部署失败">部署失败&lt;/h2>
&lt;p>预检查错误会指出检查项和节点。若服务已存在，先确认该节点是否属于正在使用的平台；不要删除服务来绕过检查。下载错误应核对地址、证书、文件大小和包内容，不能用关闭证书校验掩盖错误。&lt;/p>
&lt;h2 id="集群任务失败">集群任务失败&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>通过&lt;a href="https://kubeclipper.io/v1.7/docs/tutorials/operations/">操作与日志&lt;/a>定位具体步骤和节点。离线安装核对版本、架构和资源包；镜像拉取失败核对镜像仓库地址、认证和网络。提交 Issue 时提供版本、拓扑、脱敏后的错误和操作 ID，移除密码、token、私钥与 kubeconfig 凭据。&lt;/p></description></item><item><title>Docs: 镜像仓库</title><link>https://kubeclipper.io/v1.7/docs/tutorials/registries/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://kubeclipper.io/v1.7/docs/tutorials/registries/</guid><description>
&lt;p>Registry 资源用于描述 Kubernetes 镜像仓库或给 containerd 添加镜像拉取配置。它与平台离线资源包不是同一种对象，创建 Registry 也不会自动把镜像同步到仓库。&lt;/p>
&lt;h2 id="创建-registry-资源">创建 Registry 资源&lt;/h2>
&lt;p>以下是管理网络中 HTTP 镜像仓库的例子。生产仓库应按实际情况配置 HTTPS、CA 和认证；完整参数见命令帮助。&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>需要认证时可通过 &lt;code>--auth-username&lt;/code> 和 &lt;code>--auth-password&lt;/code> 配置，注意命令历史和终端日志中的凭据暴露。使用 HTTPS 时核对 &lt;code>--ca&lt;/code> 与 &lt;code>--skip-tls-verify&lt;/code>，不要直接沿用 HTTP 示例配置。&lt;/p>
&lt;h2 id="为集群选择仓库">为集群选择仓库&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> 选择用于 Kubernetes 镜像的 Registry 资源。&lt;/li>
&lt;li>&lt;code>--cri-registry&lt;/code> 将 Registry 资源的配置加入 containerd；可按需要指定多个资源。&lt;/li>
&lt;li>未指定镜像仓库时，各组件采用各自的默认值和适用的 Agent 镜像源配置。不要假定 Kubernetes、Calico 等组件都从同一个默认仓库拉取。&lt;/li>
&lt;/ul>
&lt;p>创建前把所需镜像放入仓库，并检查集群节点实际可访问的镜像路径、认证和证书。离线安装还要满足&lt;a href="https://kubeclipper.io/v1.7/docs/getting-started/carete-k8s-cluster-offline/">资源包要求&lt;/a>。&lt;/p></description></item></channel></rss>