第3章 クラスターロギングのデプロイ
クラスターロギングは、Elasticsearch および Cluster Logging Operator をデプロイしてインストールできます。Elasticsearch Operator は、クラスターロギングによって使用される Elasticsearch クラスターを作成し、管理します。Cluster Logging Operator はロギングスタックのコンポーネントを作成し、管理します。
クラスターロギングを OpenShift Container Platform にデプロイするプロセスには以下が関係します。
- 「クラスターロギングのデプロイについて」でインストールオプションを確認します。
- クラスターロギングストレージについての考慮事項を確認します。
- Elasticsearch Operator および Cluster Logging Operator をインストールします。
3.1. CLI を使用した Elasticsearch Operator のインストール
以下の指示に従って CLI を使い、Elasticsearch Operator のインストールを 実行する必要があります。
前提条件
Elasticsearch の必要な永続ストレージがあることを確認します。各 Elasticsearch ノードには独自のストレージボリュームが必要であることに注意してください。
Elasticsearch はメモリー集約型アプリケーションです。それぞれの Elasticsearch ノードには、メモリー要求および制限の両方に 16G のメモリーが必要です。初期設定の OpenShift Container Platform ノードのセットは、Elasticsearch クラスターをサポートするのに十分な大きさではない場合があります。その場合、推奨されるサイズ以上のメモリーを使用して実行できるようにノードを OpenShift Container Platform クラスターに追加する必要があります。各 Elasticsearch ノードはこれより低い値のメモリー設定でも動作しますが、これは実稼働環境でのデプロイメントには推奨されません。
手順
CLI を使用して Elasticsearch Operator をインストールするには、以下を実行します。
Elasticsearch Operator の namespace を作成します。
Elasticsearch Operator の namespace オブジェクト YAML ファイル (
eo-namespace.yaml
など) を作成します。apiVersion: v1 kind: Namespace metadata: name: openshift-operators-redhat 1 annotations: openshift.io/node-selector: "" labels: openshift.io/cluster-monitoring: "true" 2
- 1
openshift-operators-redhat
namespace を指定する必要があります。メトリクスとの競合が発生する可能性を防ぐには、Prometheus のクラスターモニタリングスタックを、openshift-operators
namespace からではなく、openshift-operators-redhat
namespace からメトリクスを収集するように設定する必要があります。openshift-operators
namespace には信頼されていないコミュニティー Operator が含まれる可能性があり、OpenShift Container Platform メトリクスと同じ名前でメトリクスを公開する可能性があるため、これによって競合が生じる可能性があります。- 2
- クラスターモニタリングが
openshift-operators-redhat
namespace を収集できるように、このラベルを上記のように指定する必要があります。
namespace を作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f eo-namespace.yaml
以下のオブジェクトを作成して Elasticsearch Operator をインストールします。
Elasticsearch Operator の Operator グループオブジェクトの YAML ファイル (
eo-og.yaml
など) を作成します。apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: openshift-operators-redhat namespace: openshift-operators-redhat 1 spec: {}
- 1
openshift-operators-redhat
namespace を指定する必要があります。
Operator グループオブジェクトを作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f eo-og.yaml
Subscription オブジェクト YAML ファイル(
eo-sub.yaml
など) を作成し、namespace を Operator にサブスクライブします。サブスクリプションの例
apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: "elasticsearch-operator" namespace: "openshift-operators-redhat" 1 spec: channel: "4.2" 2 installPlanApproval: "Automatic" source: "redhat-operators" 3 sourceNamespace: "openshift-marketplace" name: "elasticsearch-operator"
Subscription オブジェクトを作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f eo-sub.yaml
openshift-operators-redhat
プロジェクトに切り替えます。$ oc project openshift-operators-redhat Now using project "openshift-operators-redhat"
ロールベースアクセス制御 (RBAC) オブジェクトファイル (
eo-rbac.yaml
など) を使用して、openshift-operators-redhat
namespace にアクセスするための Prometheus パーミッションを付与します。apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: prometheus-k8s namespace: openshift-operators-redhat rules: - apiGroups: - "" resources: - services - endpoints - pods verbs: - get - list - watch --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: prometheus-k8s namespace: openshift-operators-redhat roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: prometheus-k8s subjects: - kind: ServiceAccount name: prometheus-k8s namespace: openshift-operators-redhat
RBAC オブジェクトを作成します。
$ oc create -f <file-name>.yaml
以下は例になります。
$ oc create -f eo-rbac.yaml
Elasticsearch Operator は
openshift-operators-redhat
namespace にインストールされ、クラスター内の各プロジェクトにコピーされます。
Operator のインストールを確認します。
oc get csv --all-namespaces NAMESPACE NAME DISPLAY VERSION REPLACES PHASE default elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded kube-node-lease elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded kube-public elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded kube-system elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded openshift-apiserver-operator elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded openshift-apiserver elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded openshift-authentication-operator elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded openshift-authentication elasticsearch-operator.4.2.1-202002032140 Elasticsearch Operator 4.2.1-202002032140 Succeeded ...
それぞれの namespace には Elasticsearch Operator がなければなりません。バージョン番号が表示されるものと異なる場合があります。
次のステップ
以下のセクションの手順に従って、コンソールまたは CLI を使用して Cluster Logging Operator をインストールします。