無料でビルドを開始
CircleCI.comアカデミーブログコミュニティサポート

トラブルシューティングとサポート

8 months ago1 min read
Server v4.1
サーバー管理者
このページの内容

ここでは、CircleCI Server v4.x で問題が発生した場合の最初のトラブルシューティング手順について説明します。 以下の説明で問題を解決できなかった場合は、サポートバンドルを生成するか、CircleCI アカウント チームにお問い合わせください。

サポートバンドルの生成

サポートバンドルは、発生している問題を CircleCI エンジニアが診断、修正するためのものです。 通常、サポートチケットを作成する場合、サポートバンドルを提出するように求められます。

サポート バンドルを生成するには、以下の手順に従います。

前提条件

  1. まず、circleci-server がデプロイされており、kubectl によりクラスタ/名前空間にアクセスできることを確認します。

# To check if you have access to cluster/namespace
kubectl -n <namespace> get pods
# To install support-bundle plugin
kubectl krew install support-bundle

サポートバンドルの生成

準備が整ったら、現在のディレクトリからサポートバンドルを実行し、処理の完了を待ちます。

kubectl support-bundle https://raw.githubusercontent.com/CircleCI-Public/server-scripts/main/support/support-bundle.yaml

Pod の管理

Pod の準備状況とステータスの確認

kubectl get pods -n <namespace>
NAME READY STATUS RESTARTS AGE
api-service-5c8f557548-zjbsj 1/1 Running 0 6d20h
audit-log-service-77c478f9d5-5dfzv 1/1 Running 0 6d20h
builds-service-v1-5f8568c7f5-62h8n 1/1 Running 0 6d20h
circleci-mongodb-0 1/1 Running 0 6d20h
circleci-nomad-0 1/1 Running 6 6d20h
…

ステータスが Running 以外の Pod だけを表示するには、--field-selector オプションを使用します。

kubectl get pods --field-selector status.phase!=Running -n <namespace>
NAME READY STATUS RESTARTS AGE
nomad-server 0/1 Error 0 5d22h

Pod の設定とステータスの確認

Pod の詳細な設定とステータスを確認するには、以下のコマンドを実行します。

kubectl describe pods <pod-name> -n <namespace>

Pod のログの取得

Pod のログを表示するには、以下のコマンドを実行します。

kubectl logs <pod-name> -n <namespace>

Pod の再起動

特定の Pod を再起動する最も簡単な方法は、その Pod を削除することです。 削除した Pod は、Kubernetes によって自動的に再作成されます。

kubectl delete pod <pod-name> -n <namespace> --now

エアギャップのある環境でREPLを活用する

air-gapped 環境の場合、まず lein REPLの依存関係をダウンロードし、コミットして、プライベートDockerレジストリにアップロードする必要があります。

docker run -it clojure lein repl :connect 6005
docker commit $(docker ps -aq | head -1) <your-private-registry>/clojure

これで、REPLにアクセスする準備が整いました。 プライベート Docker レジストリにアクセスでき、クラスタに kubectl`アクセスできるシステムから、以下のスクリプトを実行します。 `circleci-server でない場合は、必ず自分の名前空間に合わせて修正してください。

SVC_NAME=frontend
INET_ADDR="$(ip -4 route get 192.0.2.1 | grep -o 'src [0-9.]\{1,\}' | awk '{ print $2 }')"

# Start port-forwarding in background
kubectl port-forward "$(kubectl get po -l app="${SVC_NAME}" -n circleci-server -o jsonpath='{.items[0].metadata.name}')" --address "${INET_ADDR}" 6005 -n circleci-server &

# Start nREPL
sudo docker run --rm -it clojure lein repl :connect "${INET_ADDR}":6005

# End port-forwarding
kill $!

同時実行の制限を無効にします

もしあなたの組織がハードコードされた同時実行数の制限にぶつかっているのであれば、`values.yaml`で以下のように設定することで、この制限を無効にすることができます。

distributor_dispatcher:
  ...
  disable_concurrency: false

Suggest an edit to this page

Make a contribution
Learn how to contribute