Sitecore Managed Cloud Containersのトラブルシューティング


解説

この記事では、Sitecore Managed Cloud Containersのさまざまなシナリオをトラブルシューティングするための手順を記載しています。

前提条件

多くの場合、Azure Kubernetesクラスタにアクセスする必要があります。クラスタに接続するには、Kubernetes用のコマンドラインツールであるkubectlを通じてクラスタと直接やりとりできるコマンド ライン ツールを使用します。kubectlはデフォルトでAzure Cloud Shell内で使用でき、ローカルにインストールすることもできます。


ローカルでアクセスするために必要なツール:

Azure CLI がインストールされているかどうかを確認するには、次のコマンドを実行してください。

az –version

kubectl を検証するには、次のコマンドを実行します。

kubectl version --client 

エラーが出力された場合は、Azure CLI または kubectl がシステムにインストールされていないことを意味します。

必要に応じて、以下のリンクからAzure CLIまたはkubectlをダウンロードしてインストールしてください。

註:コマンドライン シェルからのインストール後に kubectl が機能せず、常に kubectl フォルダーに移動する必要がある場合は、次のパス変数にkubectl.exeフォルダーの場所を追加することが可能です。

Advanced System Settings -> Advanced -> Environment Variables -> Path

例えば、C:\kubeにファイルを保存した場合、このフォルダパスをpath変数に追加してください。

Advanced System Settings -> Advanced -> Environment Variables -> C:\kube


クラスタの接続

インストールと前提条件の確認が終わったら、以下のコマンドを実行してクラスタに接続します。

az login
az account set --subscription <Subscription-Id>
az aks get-credentials --resource-group <Resource-group-name> --name "Aks-name"*
// *AKS name is: name of your resource group + "aks".
// In most cases, the <Aks-Name> is created using the pattern: <Resource-group-name>aks
az account set --subscription <Subscription-Id>  
az aks get-credentials --resource-group <myResourceGroup> --name <myResourceGroup>aks

:角括弧内の値は、必要な値に置き換えてください。例:

az account set --subscription 525fsdf-4124-gsdg2-5fg412
az aks get-credentials --resource-group mcc5rgd325dkfkf45 --name mcc5rgd325dkfkf45aks


PowerShellのkubectlオートコンプリートの設定

PowerShell向けのkubectlのオートコンプリート機能を設定するには、PowerShellのプロンプトで以下の行を実行します。

kubectl completion powershell >> $PROFILE

シェルを再読み込みすると、kubectlのオートコンプリート機能が動作するようになります。

よくある問題のトラブルシューティング 

問題を調査するには、以下のオプションをお試しください。


便利な使い方 

Grafanaへのアクセス方法

Grafanaへのアクセス方法の詳細については、以下の記事を参照してください。
https://doc.sitecore.com/xp/en/developers/101/managed-cloud/getting-started-with-managed-cloud-premium.html#access-grafana_body

Prometheusへのアクセス方法 

Prometheusへアクセスするには、以下を実施してください。

Kibana KibanaでElastic Cloudにアクセスする方法

Kibanaへのアクセス方法については、以下の記事を参照してください。 
https://doc.sitecore.com/xp/en/developers/102/managed-cloud/getting-started-with-managed-cloud-standard.html#access-kibana_body

SearchStaxへのアクセス方法

SearchStax Solrインスタンスへのアクセス方法については、以下の記事を参照してください。
https://doc.sitecore.com/xp/en/developers/101/managed-cloud/getting-started-with-managed-cloud-premium.html#access-searchstax-solr-instance_body

Sitecoreポッドに接続する方法 

Sitecoreポッドに接続するには、次のコマンドを実行してください。

kubectl exec -it "pod_name" -n "namespace" -- powershell
kubectl exec -it cd-c9bcbb668-8gs74 -n sitecore -- powershell

:ポッドに接続しようとしたときに次のエラーが発生した場合、昇格された権限でget credentialsコマンドを実行し、IAM(Identity and Access Management)のDevOpsグループに所属していることを確認してください。

Error from server (Forbidden): pods "prc-75786fd57c-gz6s2" is forbidden: User "test-user@sitecore.net" cannot create resource "pods/exec" in API group "" in the namespace "sitecore""

get credentialsコマンドの例は次の通りです。

az aks get-credentials --resource-group myResourceGroup --name myResourceGroupaks --admin

DevOps グループのメンバーとなるには、サービス リクエストを作成してください。 マネージド クラウドのセキュリティ ロールの詳細については、こちらを参照してください。

ポッドからローカル システムにファイルまたはフォルダーをコピーする方法

Sitecoreポッドに接続すると、C:\inetpub\wwwrootに入ります。 これは、ポッド内のデフォルトの作業ディレクトリです。コピー操作でもデフォルトで使用されます。

例: 

kubectl cp "namespace"/"pod_name":"file_src" "file_dest"
kubectl cp sitecore/cd-c9bcbb668-8gs74:Web.config web.config 

上記のコマンド例は、C:\inetpub\wwwrootフォルダーに存在するWeb.configファイルを、新しい名前「web.config」で、貴社のローカルの作業ディレクトリ(Get-Locationまたはpwd)にコピーするものです。

ベスト プラクティス

ポッドの削除、デプロイの変更、またはローカル ポートをポッド上のポートに転送するには、DevOpsロールと昇格されている権限が必要です。

 

AKSポッドの制限を調整する場合など、何らかの操作を本番クラスタに直接実行する必要がある場合は、Infrastructure as Code(IAC)アプローチに従うことが必要です。

本番クラスタに対して直接削除や修正の操作を実行することは推奨されません

Managed Cloud Containerソリューションのスケーリング、サイジング、およびチューニングの詳細については、Managed Cloud を設定するの記事を参照してください。貴社のManaged Cloud ContainerソリューションにIACアプローチに従うことができない場合は、サービス リクエストを作成してください。