PHP/Apache の問題の修正
1. Kubernetes リソース
特に本番環境のKubernetesクラスターでは、CPUとメモリは貴重なリソースと見なされています。クラスター運用者は通常、デプロイメントでPodまたはサービスが必要とするCPUとメモリの量を指定するよう求めます。これにより、クラスターがソリューションを配置するノードを自動的に管理できます。
これは、アプリケーション/Podのデプロイメントにリソースセクションを配置することで行います。
例:
詳細については、こちらを参照してください: Resource Management for Pods and Containers
アプリケーションまたはPodがデプロイメントで設定された制限を超えると、Kubernetesはクラスター上の他のアプリケーションを保護するためにPodを強制終了して再起動します。
もう1つのシナリオは、ノードに十分なメモリまたはCPUがない場合です。その場合、クラスターはより多くのスペースがある別のノードにPodを再スケジュールしようとします。
それが失敗した場合、またはアプリケーションをデプロイするときに十分なスペースがない場合、クラスターはワークロード/デプロイメントをスケジュールモードにして、利用可能なノードのいずれかに制限に従ってPodをデプロイするのに十分なスペースができるまで待機します。
2. PHP/Apache デプロイメントの修正
ワークショップの質問
開始する前に、PHP/Apacheデプロイメントの現在の状態を確認しましょう。Alerts & Detectors で、どのディテクターが発火しましたか?この情報は他にどこで見つけることができますか?
PHP/Apache StatefulSetを修正するには、以下のコマンドを使用して ~/workshop/k3s/php-apache.yaml を編集し、CPUリソースを削減します:
リソースセクションを見つけて、CPU limitsを 1 に、CPU requestsを 0.5 に削減します:
変更を保存します(ヒント: Esc を押してから :wq! を入力して変更を保存します)。
次に、既存のStatefulSetを削除して再作成する必要があります。StatefulSetは不変(イミュータブル)であるため、既存のものを削除して新しい変更で再作成する必要があります。
次に、変更をデプロイします:
3. 変更の検証
以下のコマンドを実行して、変更が適用されたことを確認できます:
PodがSplunk Observability Cloudで実行中であることを確認します。
ワークショップの質問
Apache Web Servers ダッシュボードにデータが表示されていますか?
ヒント: フィルターと時間枠を使用してデータを絞り込むことを忘れないでください。
数分間、Apache web servers Navigatorダッシュボードを監視してください。
ワークショップの質問
Hosts reporting チャートでは何が起きていますか?
4. メモリの問題の修正
Apacheダッシュボードに戻ると、メトリクスが送信されなくなっていることに気付くでしょう。別のリソースの問題があり、今回はメモリ不足です。StatefulSetを編集して、以下に示す値にメモリを増やしましょう:
変更を保存します。
ヒント
kubectl edit は内容を vi エディターで開きます。Esc を押してから :wq! を入力して変更を保存します。
StatefulSetは不変(イミュータブル)であるため、既存のPodを削除して、StatefulSetが新しい変更で再作成できるようにする必要があります。
以下のコマンドを実行して、変更が適用されたことを確認します: