5.4. etcd 모니터링 구성


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. 이제 웹 인터페이스로 이동하여 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를 볼 수 있는 액세스를 제공합니다.

    예를 들어 사용자 developer를 cluster -monitoring-view 역할에 추가하려면 다음을 실행합니다.

    $ oc adm policy add-cluster-role-to-user cluster-monitoring-view developer
  7. 웹 인터페이스에서 cluster-monitoring-view 역할에 속하는 사용자로 로그인합니다.
  8. Status(상태 )를 클릭한 다음 Targets(대상) 를 클릭합니다. etcd 항목이 표시되면 etcd 가 모니터링됩니다.

    etcd 인증서 없음
  9. etcd 가 모니터링되는 동안 Prometheus는 아직 etcd 에 대해 인증할 수 없으므로 메트릭을 수집할 수 없습니다.

    etcd 에 대해 Prometheus 인증을 구성하려면 다음을 수행합니다.

    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. 인증을 구성했으므로 웹 인터페이스의 Targets(대상) 페이지를 다시 방문하십시오. etcd 가 올바르게 모니터링되고 있는지 확인합니다. 변경 사항을 적용하는 데 몇 분이 걸릴 수 있습니다.

    etcd 모니터링 작동
  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은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.