検索

5.4. etcd モニターリングの設定

download PDF

etcd サービスが正常に実行されない場合、OpenShift Container Platform クラスター全体の運用に支障が及ぶ可能性があります。そのため、etcd のモニターリングを設定することができます。

以下の手順に従って etcd モニターリングを設定します。

手順

  1. モニターリングスタックが実行中であることを確認します。

    $ oc -n openshift-monitoring get pods
    NAME                                           READY     STATUS              RESTARTS   AGE
    alertmanager-main-0                            3/3       Running             0          34m
    alertmanager-main-1                            3/3       Running             0          33m
    alertmanager-main-2                            3/3       Running             0          33m
    cluster-monitoring-operator-67b8797d79-sphxj   1/1       Running             0          36m
    grafana-c66997f-pxrf7                          2/2       Running             0          37s
    kube-state-metrics-7449d589bc-rt4mq            3/3       Running             0          33m
    node-exporter-5tt4f                            2/2       Running             0          33m
    node-exporter-b2mrp                            2/2       Running             0          33m
    node-exporter-fd52p                            2/2       Running             0          33m
    node-exporter-hfqgv                            2/2       Running             0          33m
    prometheus-k8s-0                               4/4       Running             1          35m
    prometheus-k8s-1                               0/4       ContainerCreating   0          21s
    prometheus-operator-6c9fddd47f-9jfgk           1/1       Running             0          36m
  2. クラスターモニターリングスタックの設定ファイルを開きます。

    $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
  3. config.yaml: |+ の下に、etcd セクションを追加します。

    1. マスターノードの静的 Pod で etcd を実行する場合、セレクターを使用して etcd ノードを指定できます。

      ...
      data:
        config.yaml: |+
          ...
          etcd:
            targets:
              selector:
                openshift.io/component: etcd
                openshift.io/control-plane: "true"
    2. 別のホストで etcd を実行する場合、IP アドレスを使用してノードを指定する必要があります。

      ...
      data:
        config.yaml: |+
          ...
          etcd:
            targets:
             ips:
             - "127.0.0.1"
             - "127.0.0.2"
             - "127.0.0.3"

      etcd ノードの IP アドレスが変更される場合は、この一覧を更新する必要があります。

  4. etcd サービスモニターが実行されていることを確認します。

    $ oc -n openshift-monitoring get servicemonitor
    NAME                  AGE
    alertmanager          35m
    etcd                  1m 1
    kube-apiserver        36m
    kube-controllers      36m
    kube-state-metrics    34m
    kubelet               36m
    node-exporter         34m
    prometheus            36m
    prometheus-operator   37m
    1
    etcd サービスモニター。

    etcd サービスモニターが起動するには 1 分程度の時間がかかる場合があります。

  5. これで、Web インターフェイスに移動して etcd モニターリングのステータスについての詳細を確認できます。

    1. URL を取得するには、以下を実行します。

      $ oc -n openshift-monitoring get routes
      NAME                HOST/PORT                                                                           PATH      SERVICES            PORT      TERMINATION   WILDCARD
      ...
      prometheus-k8s      prometheus-k8s-openshift-monitoring.apps.msvistun.origin-gce.dev.openshift.com                prometheus-k8s      web       reencrypt     None
    2. https を使用して、prometheus-k8s について一覧表示されている URL に移動します。ログインします。
  6. ユーザーが cluster-monitoring-view ロールに属することを確認します。このロールは、クラスターモニターリング UI を表示するためのアクセスを提供します。

    たとえば、ユーザー developercluster-monitoring-view ロールに追加するには、以下を実行します。

    $ oc adm policy add-cluster-role-to-user cluster-monitoring-view developer
  7. Web インターフェイスで、cluster-monitoring-view ロールに属するユーザーとしてログインします。
  8. Status をクリックしてから Targets をクリックします。etcd エントリーが表示される場合、etcd はモニターされています。

    etcd no certificate
  9. etcd がモニターされていても、Prometheus はまだ etcd に対して認証できないため、メトリックスを収集できません。

    Prometheus 認証を etcd に対して設定するには、以下を実行します。

    1. /etc/etcd/ca/ca.crt および /etc/etcd/ca/ca.key 認証情報ファイルをマスターノードからローカルマシンにコピーします。

      $ ssh -i gcp-dev/ssh-privatekey cloud-user@35.237.54.213
    2. 以下の内容を含む openssl.cnf ファイルを作成します。

      [ req ]
      req_extensions = v3_req
      distinguished_name = req_distinguished_name
      [ req_distinguished_name ]
      [ v3_req ]
      basicConstraints = CA:FALSE
      keyUsage = nonRepudiation, keyEncipherment, digitalSignature
      extendedKeyUsage=serverAuth, clientAuth
    3. etcd.key プライベートキーファイルを生成します。

      $ openssl genrsa -out etcd.key 2048
    4. etcd.csr 証明書署名要求ファイルを生成します。

      $ openssl req -new -key etcd.key -out etcd.csr -subj "/CN=etcd" -config openssl.cnf
    5. etcd.crt 証明書ファイルを生成します。

      $ openssl x509 -req -in etcd.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out etcd.crt -days 365 -extensions v3_req -extfile openssl.cnf
    6. 認証情報を OpenShift Container Platform で使用される形式で配置します。

      $ cat <<-EOF > etcd-cert-secret.yaml
      apiVersion: v1
      data:
        etcd-client-ca.crt: "$(cat ca.crt | base64 --wrap=0)"
        etcd-client.crt: "$(cat etcd.crt | base64 --wrap=0)"
        etcd-client.key: "$(cat etcd.key | base64 --wrap=0)"
      kind: Secret
      metadata:
        name: kube-etcd-client-certs
        namespace: openshift-monitoring
      type: Opaque
      EOF

      これにより、etcd-cert-secret.yaml ファイルが作成されます。

    7. 認証情報ファイルをクラスターに適用します。

      $ oc apply -f etcd-cert-secret.yaml
  10. 認証を設定してから、Web インターフェイスの Targets ページに再度アクセスします。etcd が正常にモニターされていることを確認します。変更が有効になるまでに数分の時間がかかる場合があります。

    etcd monitoring working
  11. OpenShift Container Platform の更新時に etcd モニターリングを自動的に更新する必要がある場合、Ansible インベントリーファイルのこの変数を true に設定します。

    openshift_cluster_monitoring_operator_etcd_enabled=true

    別のホストで etcd を実行する場合、この Ansible 変数を使用して IP アドレスでノードを指定します。

    openshift_cluster_monitoring_operator_etcd_hosts=[<address1>, <address2>, ...]

    etcd ノードの IP アドレスが変更される場合は、この一覧を更新する必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.