Pipeline プライベート・ワーカーのトラブルシューティング
Pipeline プライベート・ワーカーの一般的な問題には、Kubernetes クラスターの問題と kubectl のバージョンの問題が含まれます。 多くの場合、いくつかの簡単なステップを実行することで、これらの問題から復旧することが可能です。
Delivery Pipeline プライベート・ワーカーが非アクティブなのはなぜですか?
ワーカー・プール内のプライベート・ワーカーは、以下のいずれかの状態になります。
- 現在のサポート対象バージョンのプライベート・ワーカーはアクティブ
- サポート対象外のバージョンのプライベート・ワーカーは非アクティブ
- 活動休止および未登録
プライベート・ワーカーが非アクティブです。 非アクティブなプライベート・ワーカーは、着信実行要求を処理できません。 非アクティブなプライベート・ワーカーを使用するパイプライン・ステージは完了できません。
エージェントは活動を停止することができる
- Kubernetes クラスタに問題があり、ワーカーが地域コントロールプランサービスと通信できない場合
- 実行中のプライベートワーカーのバージョンがサポート対象外となった場合
- クラスタ上のエージェントが未登録になった場合
以前は動作していたのに、エージェントが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キーを生成してください。