この文書は自動機械翻訳技術を使用して翻訳されています。 正確な翻訳を提供するように努めておりますが、翻訳された内容の完全性、正確性、信頼性については一切保証いたしません。 相違がある場合は、元の英語版 英語 が優先され、正式なテキストとなります。

SUSE Rancher Primeへの貢献

RancherおよびRancherドキュメントに使用されるリポジトリ、Rancherリポジトリの構築方法、問題を報告する際に含めるべき情報について学びます。

Rancherプロジェクトの開発に貢献する方法についての詳細な情報は、 Rancher Developer Wikiを参照してください。ウィキには、以下を含む多くのトピックに関するリソースがあります:

  • Rancher開発環境のセットアップ方法とテストの実行

  • 開発ライフサイクルにおける問題の典型的な流れ

  • コーディングガイドラインと開発のベストプラクティス

  • デバッグとトラブルシューティング

  • Rancher APIの開発

Rancher Users Slackでは、開発者用のチャンネルは*#developer*です。

Rancherドキュメント

このウェブサイトのドキュメントに関する提案がある場合は、メインの Rancher docsリポジトリで issueを作成してください。このリポジトリには、Rancher v2.0以降のドキュメントが含まれています。

Rancher v2.xドキュメントリポジトリへの貢献と構築に関する詳細は、 Rancher docs READMEを参照してください。

Rancher v1.6以前のドキュメントについては、 Rancher 1.x docsリポジトリを参照してください。このリポジトリには 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

このリポジトリは、Kubernetesカスタムリソースに基づいたRancherスタイルのAPIを構築するためのAPIフレームワークです。

ユーザインタフェース

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

このリポジトリは、ダッシュボードUIのソースです。

(Rancher)Docker Machine

https://github.com/rancher/machine

このリポジトリは、ノードドライバーを使用する際に使用されるDocker Machineバイナリのソースです。これは`docker/machine`リポジトリのフォークです。

machine-package

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

このリポジトリは、Rancher Docker Machineバイナリをビルドするために使用されます。

kontainer-engine

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

このリポジトリは、ホストされたKubernetesクラスターをプロビジョニングするためのツールであるkontainer-engineのソースです。

CLI

https://github.com/rancher/cli

このリポジトリは、Rancher 2.xで使用されるRancher CLIのソースコードです。

(Rancher)Helmリポジトリ

https://github.com/rancher/helm

このリポジトリは、パッケージ化されたHelmバイナリのソースです。これは`helm/helm`リポジトリのフォークです。

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ドロップレットを使用しているのか、再構築または再現を試みる際に使用できるイメージは何ですか?

    • *オペレーティングシステム:*どのオペレーティングシステムを使用していますか?具体的な情報を提供することが役立ちます。例えば、正確なOSリリースのための`cat /etc/os-release`の出力や、使用されている正確なカーネルのための`uname -r`の出力など。

    • *Docker:*どのDockerのバージョンを使用していますか?どのようにインストールしましたか?Dockerの詳細は、`docker version`と`docker info`の出力を提供することで見つけることができます。

    • *Environment:*プロキシ環境にいますか?認識された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

  • *メトリクス:*パフォーマンスの問題が発生している場合は、何が起こっているのかを判断するのに役立つメトリクスのデータ(ファイルやスクリーンショット)をできるだけ多く提供してください。マシンに関連する問題がある場合は、プロセス/メモリ/ディスク使用量を示す`top`、free -m、`df`の出力を提供することが役立ちます。