本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

为SUSE Rancher Prime做出贡献

了解用于Rancher和Rancher文档的储存库,如何构建Rancher储存库,以及在提交问题时需要包含哪些信息。

有关如何为Rancher项目的开发做出贡献的详细信息,请参阅 Rancher开发者维基。维基包含许多主题的资源,包括以下内容:

  • 如何设置Rancher开发环境并运行测试

  • 问题在开发生命周期中的典型流程

  • 编码指南和开发最佳实践

  • 调试和故障排除

  • 开发Rancher API

在Rancher用户Slack中,开发者的频道是*#developer*。

Rancher文档

如果您对本网站的文档有建议,请 打开一个主要 Rancher文档储存库中的问题。该储存库包含Rancher v2.0及更高版本的文档。

有关为Rancher v2.x文档储存库做出贡献和构建的更多详细信息,请参见 Rancher文档README

有关描述Rancher v1.6及更早版本的文档,请参见 Rancher 1.x文档储存库,其中包含 https://rancher.com/docs/rancher/v1.6/en/.的源文件。

Rancher储存库

所有储存库都位于我们的主要GitHub组织内。有许多用于Rancher的储存库,但我们将提供一些主要用于Rancher的储存库的描述。

储存库 URL 说明

Rancher

https://github.com/rancher/rancher

该储存库是Rancher 2.x的主要源代码。

类型

https://github.com/rancher/types

该储存库包含所有 Rancher 2.x 的 API 类型。

API 框架

https://github.com/rancher/norman

该储存库是一个 API 框架,用于构建基于 Kubernetes 自定义资源的 Rancher 风格 API。

用户界面

https://github.com/rancher/dashboard/

该储存库是仪表板 UI 的源代码。

(Rancher)Docker Machine

https://github.com/rancher/machine

该储存库是使用节点驱动程序时所用 Docker Machine 二进制文件的源代码。这是`docker/machine`储存库的一个 fork.

machine-package

https://github.com/rancher/machine-package

该储存库用于构建 Rancher Docker Machine 二进制文件。

kontainer-engine

https://github.com/rancher/kontainer-engine

该储存库是 kontainer-engine 的源代码,这是一个用于配置托管 Kubernetes 集群的工具。

CLI

https://github.com/rancher/cli

该储存库是 Rancher 2.x 中使用的 Rancher CLI 的源代码。

(Rancher)Helm 储存库

https://github.com/rancher/helm

该储存库是打包的 Helm 二进制文件的源代码。这是`helm/helm`储存库的一个 fork.

loglevel 储存库

https://github.com/rancher/loglevel

该储存库是 loglevel 二进制文件的源代码,用于动态更改日志级别。

要查看 Rancher 中使用的所有库/项目,请在 rancher/rancher 储存库中查看 go.mod 文件

Rancher 图示
Figure 1. 用于配置/管理 Kubernetes 集群的 Rancher 组件

构建 Rancher 储存库

每个储存库都应该有一个 Makefile,并可以使用 make 命令构建。make 目标基于储存库中 /scripts 目录中的脚本,每个目标将使用 Dapper 在隔离环境中运行。此过程将使用 Dockerfile.dapper,并包括所有必要的构建工具。

默认目标是 ci,将运行 ./scripts/validate./scripts/build./scripts/test./scripts/package。构建的结果二进制文件将位于 ./build/bin 中,通常也会打包在 Docker 镜像中。

Rancher 错误、问题或疑问

如果您发现任何错误或遇到任何问题,请搜索 报告的问题,因为可能有人遇到过相同的问题,或者我们正在积极寻找解决方案。

如果您找不到与您的问题相关的内容,请通过 提交问题 联系我们。尽管我们有许多与 Rancher 相关的储存库,但我们希望在 Rancher 储存库中提交错误,以免错过它们!如果您想问一个问题或询问其他用户关于用例的情况,我们建议在 Rancher 论坛 上创建一个帖子。

提交问题的检查清单

请在提交问题时遵循此检查清单,这将帮助我们调查和修复问题。更多信息意味着我们可以使用更多数据来确定问题的原因或可能与问题相关的内容。

对于大量数据,请使用 GitHub Gist 或类似工具,并在问题中链接创建的资源。

重要说明:

请删除任何敏感数据,因为它将公开可见。

  • *资源:*尽可能提供使用资源的详细信息。由于问题的来源可能有很多,提供尽可能多的细节有助于确定根本原因。请参见以下一些示例:

    • *主机:*主机具有什么规格,如 CPU/内存/磁盘,发生在哪个云上,您使用的是什么 Amazon 机器镜像,您使用的是什么 DigitalOcean Droplet,您正在配置什么镜像,以便我们可以在尝试重现时重建或使用。

    • *操作系统:*您使用的是什么操作系统?提供具体信息会有所帮助,例如 cat /etc/os-release 的输出以获取确切的操作系统版本和 uname -r 以获取确切的内核使用情况

    • *Docker:*您使用的 Docker 版本是什么?您是如何安装它的?Docker 的大部分详细信息可以通过提供 docker versiondocker info 的输出找到

    • *环境:*您是否在代理环境中?您是否使用了受信任的 CA/自签名证书?您是否使用了外部负载均衡器?

    • *Rancher:*您使用的 Rancher 版本是什么?可以在 UI 的左下角找到,或者从您在主机上运行的镜像标签中获取。

    • *集群:*您创建了什么类型的集群?您是如何创建的?在创建时您指定了什么?

  • *重现问题的步骤:*提供尽可能多的细节,说明您是如何进入报告的情况的。这有助于他人重现您所处的情况。

    • 提供手动步骤或自动化脚本,以便从新创建的设置到您报告的情况。

  • *日志:*提供使用资源的相关数据/日志。

    • Rancher

      • Docker 安装

          docker logs \
          --timestamps \
          $(docker ps | grep -E "rancher/rancher:|rancher/rancher " | awk '{ print $1 }')
      • 使用 kubectl 安装 Kubernetes

      确保您配置了正确的 kubeconfig(例如,如果 Rancher 安装在 Kubernetes 集群上,则为 export KUBECONFIG=$PWD/kube_config_cluster.yml),或者通过 UI 使用嵌入的 kubectl。

      kubectl -n cattle-system \
      logs \
      -l app=rancher \
      --timestamps=true
    • 系统日志(这些可能并不全部存在,具体取决于操作系统)

      • /var/log/messages

      • /var/log/syslog

      • /var/log/kern.log

    • Docker 守护程序日志(这些可能并不全部存在,具体取决于操作系统)

      • /var/log/docker.log

  • *指标:*如果您遇到性能问题,请提供尽可能多的数据(文件或截图),以帮助确定发生了什么。如果您遇到与机器相关的问题,提供 topfree -mdf 的输出有助于显示进程/内存/磁盘使用情况。