ヒント
Azure Kubernetes Service を使用するこのチュートリアルの更新バージョンについては、 Azure Monitor for containers (プレビュー) の概要に関するページを参照してください。
警告
Azure Container Service (ACS) は非推奨です。 ACS に新しい機能が追加されることはありません。 すべての API、ポータル エクスペリエンス、CLI コマンド、およびドキュメントは非推奨としてマークされます。
2017 年には、Kubernetes の管理、デプロイ、および操作を簡略化するための Azure Kubernetes Service (AKS) が導入されました。 Kubernetes オーケストレーターを使用する場合は、2020 年 1 月 31 日までに AKS に移行してください。 まずは、Azure Kubernetes Service への移行に関するページを参照してください。
詳細については、Azure.com で Azure Container Service の非推奨化に関するお知らせを参照してください。
Kubernetes クラスターとコンテナーの監視は、特に複数のアプリで大規模に運用クラスターを管理する場合に重要です。
Microsoft または他のプロバイダーから、いくつかの Kubernetes 監視ソリューションを利用できます。 このチュートリアルでは、Microsoft のクラウドベースの IT 管理ソリューションである Log Analytics のコンテナー ソリューションを使用して、Kubernetes クラスターを監視します。 (コンテナー ソリューションはプレビュー段階です)。)
このチュートリアル (パート 7/7) では、次のタスクについて説明します。
- Log Analytics ワークスペースの設定を取得する
- Kubernetes ノードで Log Analytics エージェントを設定する
- Log Analytics ポータルまたは Azure portal で監視情報にアクセスする
開始する前に
前のチュートリアルでは、アプリケーションがコンテナー イメージにパッケージ化され、これらのイメージが Azure Container Registry にアップロードされ、Kubernetes クラスターが作成されました。
これらの手順を実行していないのであれば、続けて進めたい場合は、チュートリアル 1 - コンテナー イメージを作成するに戻ってください。
ワークスペースの設定を取得する
Log Analytics ポータルにアクセスできる場合は、設定>接続されたソース>Linux サーバーに移動します。 ここで、 ワークスペース ID とプライマリまたはセカンダリ ワークスペース キーを見つけることができます。 これらの値をメモしておきます。クラスターで Log Analytics エージェントを設定する必要があります。
Kubernetes シークレットを作成する
[kubectl create secret][kubectl-create-secret] コマンドを使用して、 omsagent-secret
という名前の Kubernetes シークレットに Log Analytics ワークスペース設定を格納します。 ログ解析ワークスペース ID で WORKSPACE_ID
を更新し、ワークスペースキーで WORKSPACE_KEY
を置き換えます。
kubectl create secret generic omsagent-secret --from-literal=WSID=WORKSPACE_ID --from-literal=KEY=WORKSPACE_KEY
Log Analytics エージェントを設定する
次の Kubernetes マニフェスト ファイルを使用して、Kubernetes クラスター上のコンテナー監視エージェントを構成できます。 Kubernetes DaemonSet が作成され、各クラスター ノードで同一のポッドが 1 つ実行されます。
次のテキストを oms-daemonset.yaml
という名前のファイルに保存します。
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: omsagent
spec:
template:
metadata:
labels:
app: omsagent
agentVersion: 1.4.3-174
dockerProviderVersion: 1.0.0-30
spec:
containers:
- name: omsagent
image: "microsoft/oms"
imagePullPolicy: Always
securityContext:
privileged: true
ports:
- containerPort: 25225
protocol: TCP
- containerPort: 25224
protocol: UDP
volumeMounts:
- mountPath: /var/run/docker.sock
name: docker-sock
- mountPath: /var/log
name: host-log
- mountPath: /etc/omsagent-secret
name: omsagent-secret
readOnly: true
- mountPath: /var/lib/docker/containers
name: containerlog-path
livenessProbe:
exec:
command:
- /bin/bash
- -c
- ps -ef | grep omsagent | grep -v "grep"
initialDelaySeconds: 60
periodSeconds: 60
nodeSelector:
beta.kubernetes.io/os: linux
# Tolerate a NoSchedule taint on master that ACS Engine sets.
tolerations:
- key: "node-role.kubernetes.io/master"
operator: "Equal"
value: "true"
effect: "NoSchedule"
volumes:
- name: docker-sock
hostPath:
path: /var/run/docker.sock
- name: host-log
hostPath:
path: /var/log
- name: omsagent-secret
secret:
secretName: omsagent-secret
- name: containerlog-path
hostPath:
path: /var/lib/docker/containers
次のコマンドを使用して DaemonSet を作成します。
kubectl create -f oms-daemonset.yaml
DaemonSet が作成されたことを確認するには、次を実行します。
kubectl get daemonset
出力は次のようになります。
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE
omsagent 3 3 3 0 3 <none> 5m
エージェントの実行後、Log Analytics がデータを取り込んで処理するまでに数分かかります。
監視データへのアクセス
Log Analytics ポータルまたは Azure portal で 、コンテナー ソリューション を使用してコンテナー監視データを表示および分析します。
Log Analytics ポータルを使用してコンテナー ソリューションをインストールするには、ソリューション ギャラリーに移動します。 次 に、コンテナー ソリューションを追加します。 または、 Azure Marketplace からコンテナー ソリューションを追加します。
Log Analytics ポータルで、ダッシュボードで コンテナー の概要タイルを探します。 コンテナー イベント、エラー、状態、イメージ インベントリ、CPU とメモリの使用量などの詳細については、タイルをクリックします。 詳細な情報については、任意のタイルで行をクリックするか、 ログ検索を実行します。
同様に、Azure portal で Log Analytics に移動し、ワークスペース名を選択します。 [コンテナーの概要] タイルを表示するには、[ソリューション>Containers] をクリックします。 詳細を表示するには、タイルをクリックします。
監視データのクエリと分析に関する詳細なガイダンスについては、 Azure Log Analytics のドキュメント を参照してください。
次のステップ
このチュートリアルでは、Log Analytics を使用して Kubernetes クラスターを監視しました。 対象となるタスクは次のとおりです。
- Log Analytics ワークスペースの設定を取得する
- Kubernetes ノードで Log Analytics エージェントを設定する
- Log Analytics ポータルまたは Azure portal で監視情報にアクセスする
このリンクに従って、Container Service の事前構築済みスクリプト サンプルを確認してください。