シングル VM セットアップに関する問題のトラブルシューティング
タスク・マネージャー・ポッドの障害 - ストレージ所有権の問題
シングル VM 環境でバージョン 2.0.0 にアップグレードした後に、タスク・マネージャー・ポッドが起動しないことがあります。問題を解決するには、次の手順を実行します。
- オンライン・スクリプトを使用して AppScan 360° をアップグレードした場合は、次を実行します。
./AppScan360_SingleVMsetup_v2.0.0.run -- $PWD remediateStorageIssues - オフライン・スクリプトを使用して AppScan 360° をアップグレードした場合は、次を実行します。
./AppScan360_SingleVMsetup_v2.0.0_Offline.run -- $PWD remediateStorageIssues
ポッドイメージのダウンロードのプル問題
ローカル Docker レジストリーを使用して AppScan 360° をシングル VM Ubuntu 環境に配置すると、レジストリー接続エラーが原因でポッドの起動に失敗する問題が発生することがあります。
ポッドイベントの一般的なエラーは、次のようになります。
Normal Pulling 60s (x4 over 4m1s) kubelet
Pulling image "<ip>:5443/as360-k8s-docker-images/reloader:v1.2.1"
Warning Failed 30s (x4 over 3m31s) kubelet
Failed to pull image
"<ip>:5443/as360-k8s-docker-images/reloader:v1.2.1": rpc error: code =
DeadlineExceeded desc = failed to pull and unpack image
"<ip>:5443/as360-k8s-docker-images/reloader:v1.2.1": failed to resolve
reference "<ip>/as360-k8s-docker-images/reloader:v1.2.1": failed to do
request: Head
"https://<ip>/v2/as360-k8s-docker-images/reloader/manifests/v1.2.1":
dial tcp <ip>:5443: i/o timeoutエラーメッセージに dial tcp <ip>:5443: i/o timeout が表示されている場合、通常、Kubernetes ノード (k0s コンテナー) と Docker レジストリー間のネットワーク接続の問題を示しています。
問題を解決するには、次の手順を実行します。
- k0s コンテナーに接続し、診断ツールをインストールします。
docker exec -it k0s sh -
コンテナーからネットワーク接続をテストします。
netcatを使用してレジストリーへの接続を確認します。nc -zv <registry-ip> 5443- メッセージで「開く」が表示されない場合は、接続が成功しておらず、ネットワークに問題があることを示しています。
- コンテナーから
ctrコマンドを使用して画像を直接プルしてみます。k0s ctr images pull --user <user>:<pass> <registry-ip>:5443/as360-k8s-docker-images/reloader:v1.2.1 - これが失敗した場合は、ファイアウォールルールに問題がある可能性があります。
- ファイアウォール (UFW) と IP テーブルのルールを確認してください。
- ホストでファイアウォール・ルールを確認してください。
iptables -L -n -v - 以下の例のようにトラフィックをブロックしている可能性のある
ufw(複雑でないファイアウォール) に関連するチェーンを探します。Chain INPUT (policy DROP 39231 packets, 2148K bytes) pkts bytes target prot opt in out source destination 6603K 9311M ufw-before-logging-input all -- * * 0.0.0.0/0 0.0.0.0/0 6603K 9311M ufw-before-input all -- * * 0.0.0.0/0 0.0.0.0/0 407K 50M ufw-after-input all -- * * 0.0.0.0/0 0.0.0.0/0 39311 2154K ufw-after-logging-input all -- * * 0.0.0.0/0 0.0.0.0/0 39311 2154K ufw-reject-input all -- * * 0.0.0.0/0 0.0.0.0/0 39311 2154K ufw-track-input all -- * * 0.0.0.0/0 0.0.0.0/0
- ホストでファイアウォール・ルールを確認してください。
-
UFW ルールを更新して、ホスト上の Docker ネットワーク・トラフィックを許可します。
- Docker ネットワークインターフェースでのトラフィックを許可します。
sudo ufw allow in on docker0 sudo ufw allow out on docker0 - レジストリー・ポートへのトラフィックを許可します。
sudo ufw allow out from any to <registry-ip> port 5443 proto tcp sudo ufw allow out from any to <registry-ip> port 7443 proto tcp
- Docker ネットワークインターフェースでのトラフィックを許可します。
-
解決を確認します。
- k0s コンテナーから接続テスト (
netcat、ctr images pull) を再実行してください。 - 成功すると、ポッドイメージのプルが期待どおりに機能するようになります。
- k0s コンテナーから接続テスト (
AppScan 360° がデータベースに接続できない - SCA の配置に失敗
- IP がネットワーク・ポリシー範囲内にないため、データベース接続に失敗しました
- その結果、ASCP 配置が正常に完了しないため、SCA 配置も失敗します
egress:
- to:
- namespaceSelector: {}
- ipBlock:
cidr: 10.0.0.0/8
- ipBlock:
cidr: 192.168.0.0/16
- ipBlock:
cidr: 172.16.0.0/12
- ipBlock:
cidr: fc00::/7
トラブルシューティングの手順
- データベース接続文字列/IPを確認します
解決方法
- データベース IP CIDR をネットワーク・ポリシー出力ルールに追加します
coredns ポッドが crashloopbackoff エラーで失敗する
- k0s クラスター・セットアップで crashloopbackoff エラーで coredns ポッドが失敗します
- coredns ポッド・ログのエラー
maxprocs: Leaving GOMAXPROCS=28: CPU quota undefined
plugin/forward: no nameservers found
stream closed: EOF for kube-system/coredns-6946cc8786-q52sw (coredns)
解決方法
- ホスト・マシンの /etc/resolv.conf ファイルにネームサーバー・エントリーがない場合は追加します。
- その後、coredns ポッドを削除して再作成します。
- または、クラスターに固有のネームサーバー・エントリーを保ち、ホスト・マシンの resolv.conf に依存しない場合は、coredns configmap にネームサーバー・エントリーを設定します
kubectl -n kube-system edit configmap coredns
# Replace forward . /etc/resolv.conf
forward . 8.8.8.8 1.1.1.1 # Or specify any specific nameserver applicable for your environment
RHEL - VM の再起動時にアプリケーションにアクセスできない
- RHEL VM に AppScan 360° をインストールした後、VM を再起動すると、アプリケーションにアクセスできなくなり、アプリケーション URL へのアクセス時に「503 Service Unavailable」エラーが表示されることがあります。
- podman コンテナーが停止し、k0s クラスターが停止した可能性があるためです。
解決方法
- 必要なコンポーネントを起動ため、ヘルパー・スクリプトが、シングル VM セットアップ・キットの以下のパスに格納されています。
# Navigate to aioWorkspace directory cd <AS360_SETUP_DIRECTORY>/aioWorkspace # Navigate to utils scripts cd bin/utils # Execute script to start podman containers ./startPodmanContainers.sh # Check if k0s cluster is running, if not start the cluster using below script k0s status kubectl get pods -A # Execute script to start k0s cluster if it is not running ./startK0sOnHost.sh # Verify if all pods are running kubectl get pods -A
istio ポッドがスタックしたシングル VM セットアップで AppScan 360° を再インストールする際の問題
- シングル VM セットアップで AppScan 360° の再インストール中に、istio ポッドがアンインストール中に適切に削除されなかった場合、istio ポッドが保留状態で動かなくなることがあります。
解決方法
- ヘルパー・スクリプトを使用して istio リソースをクリーンアップし、インストールを続行します。
# Navigate to aioWorkspace directory cd <AS360_SETUP_DIRECTORY>/aioWorkspace # Navigate to utils scripts cd bin/utils # Execute script to clean up istio resources ./cleanIstio.sh - 次に、インストール・コマンドを使用して AppScan 360° を再度インストールしてみます。