Pipeline プライベート・ワーカーのトラブルシューティング

Pipeline プライベート・ワーカーの一般的な問題には、Kubernetes クラスターの問題と kubectl のバージョンの問題が含まれます。 多くの場合、いくつかの簡単なステップを実行することで、これらの問題から復旧することが可能です。

Delivery Pipeline プライベート・ワーカーが非アクティブなのはなぜですか?

ワーカー・プール内のプライベート・ワーカーは、以下のいずれかの状態になります。

  • 現在のサポート対象バージョンのプライベート・ワーカーはアクティブ
  • サポート対象外のバージョンのプライベート・ワーカーは非アクティブ
  • 活動休止および未登録

プライベート・ワーカーが非アクティブです。 非アクティブなプライベート・ワーカーは、着信実行要求を処理できません。 非アクティブなプライベート・ワーカーを使用するパイプライン・ステージは完了できません。

エージェントは活動を停止することができる

  1. Kubernetes クラスタに問題があり、ワーカーが地域コントロールプランサービスと通信できない場合
  2. 実行中のプライベートワーカーのバージョンがサポート対象外となった場合
  3. クラスタ上のエージェントが未登録になった場合

以前は動作していたのに、エージェントがUnregisteredと報告している場合、以下のコマンドを実行して登録を修正することができます

kubectl patch worke${AGENT_NAME} --subresource=status --type=merge -p '{"status": {"registrationStatus": {"state": "Succeeded"}}}'

前のコマンドが失敗した場合、またはプライベートワーカーが登録されているにもかかわらず Delivery Pipeline 非アクティブ状態のままである場合は、プライベートワーカーを再度インストールできます。 プライベートワーカー Delivery Pipeline をクラ Kubernetes スターに再度登録する。

Delivery Pipeline プライベート・ワーカーのサポートを Kubernetes にインストールしようとしました。 インストールが失敗したのはなぜですか?

クライアント・マシンで実行している kubectl のバージョンに問題がある場合、Delivery Pipeline プライベート・ワーカーのインストールは失敗します。

Kubernetes にプライベート・ワーカーのサポートをインストールしようとすると、スキーマが一致していないためにインストールが失敗したというエラー・メッセージが表示されます。

SchemaError(io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup): invalid object doesn't have additional properties

Kubernetes サーバーと Kubernetes クライアントで実行されている kubectl のバージョンが一致していません。

クライアント・マシンに最新バージョンの kubectl をインストールします。

一部のコンテナー・レジストリーから tekton-releases または pipeline-private-worker のイメージをプルできないのはなぜですか?

クラスターのセキュリティーのために、イメージをプルダウンできません。

プライベート・ワーカー・フレームワークをインストールしようとすると、エラー・メッセージが表示されます。

Error from server (InternalError): error when creating "https://private-worker-service.us-south.devops.cloud.ibm.com/install": Internal error occurred: admission webhook "trust.hooks.securityenforcement.admission.cloud.ibm.com" denied the request:
Deny "ghcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/controller@sha256:80e040a58ce6c4d58ae893eb934777bce013ef8be079967dc3db783d76fa5aaa", no matching repositories in ClusterImagePolicy and no ImagePolicies in the "tekton-pipelines" namespace
Error from server (InternalError): error when creating "https://private-worker-service.us-south.devops.cloud.ibm.com/install": Internal error occurred: admission webhook "trust.hooks.securityenforcement.admission.cloud.ibm.com" denied the request:
Deny "ghcr.io/tekton-releases/github.com/tektoncd/pipeline/cmd/webhook@sha256:da75fbdaeb800813d85b99f7f54b665e8d0edbb2c5a7ffc6a99d66aede0291a3", no matching repositories in ClusterImagePolicy and no ImagePolicies in the "tekton-pipelines" namespace

プライベート・ワーカーのインストーラーは、 icr.io からイメージをプルします。 IBM Cloud Private などの一部のプラットフォームでは、デフォルトのイメージ・ポリシーによって、これらのコンテナー・レジストリーの使用が許可されていません。

クラスタ内のイメージ取得ポリシーが、からのイメージ取得をサポートしている icr.io ことを確認してください。 例えば、プライベート・ワーカー・フレームワークを IBM Cloud Private にインストールする場合は、IBM Cloud Private の Web コンソールを使用してそれらのポリシーを追加します。 Web IBM Cloud Private コンソールを使用したイメージセキュリティの強制管理の詳細については、 「コンテナイメージのセキュリティの強制」 を参照してください。 Porterisを使用した画像セキュリティの強制管理に関する詳細については、 「ポリシー」 を Portieris 参照してください。

次の例では、 IBM Cloud CLI を使用して ClusterImagePolicy:

を Portieris アドミッションコントローラーとして使用する場合、例中の apiVersion を に変更する必要があるかもしれません portieris.cloud.ibm.com/v1

cat <<EOF | kubectl apply -f -
apiVersion: securityenforcement.admission.cloud.ibm.com/v1beta1
kind: ClusterImagePolicy
metadata:
  name: iks-private-registries
spec:
  repositories:
  - name: "*.icr.io/*"
    policy:
EOF

Delivery Pipeline プライベート・ワーカーがリストされないのはなぜですか?

プライベート・ワーカー・エージェントは、 inactive の状況でクラスターにリストされますが、プライベート・ワーカー統合の「概要」ページにはリストされません。

ワーカー・エージェントのインストールに使用された API キーが、プライベート・ワーカー統合で使用される ServiceID に含まれていない可能性があります。

クラスターから正しく構成されていないワーカー・エージェントを削除し、ワーカー・エージェントを再度インストールしてください。 インストール・コマンドに含まれている API キーが、同じインストール・コマンドで使用されている ServiceId にも存在することを確認してください。 プライベートワーカー統合ページとIAM Identity and Access Management ページの両 ServiceId 方で利用可能なリンクを使用して、有効なAPIキーを生成してください。