2.4. Fuse Online에서 중요한 참고 사항

Fuse Online 배포의 Fuse 7.12 릴리스에 대한 중요 참고 사항:

  • Fuse 7은 현재 유지 관리 지원에 포함되어 있으므로 Fuse Online에 대한 지원이 더 이상 사용되지 않습니다. Fuse 7이 지원되지 않는 경우에는 Fuse Online에 대한 향후 개발이 이루어지지 않을 것입니다.
  • Fuse Online 설치는 OCP 3.11에서 더 이상 지원되지 않습니다.
  • Fuse Online에서는 더 이상 Camel K 런타임 또는 KNative 커넥터를 지원하지 않습니다.
  • Red Hat 인프라에 Fuse Online을 설치하고 프로비저닝하면 이 계정은 한 번에 실행할 수 있는 특정 통합 수로 제한됩니다. 자세한 내용은 가격 계획을 참조하십시오.
  • Fuse Online에 업로드하는 OpenAPI 스키마는 입력/출력 유형을 정의하지 못할 수 있습니다. Fuse Online에서 입력/출력 유형을 지정하지 않는 OpenAPI 스키마에서 사용자 지정 API 클라이언트를 생성하는 경우 API 클라이언트가 처리할 수 있는 필드 또는 API 클라이언트가 처리할 수 있는 필드에 통합 데이터를 매핑하는 통합을 생성할 수 없습니다. 통합에 사용자 지정 API로의 데이터 매핑이 필요한 경우 OpenAPI 스키마를 업로드할 때 검토/편집 을 클릭하여 API 편집 툴인 API Builder를 열고 입력/출력 유형 사양을 추가합니다.
  • Fuse 7.8 이후 사용자 정의 API 클라이언트 커넥터 또는 API 공급자 통합에 사용하는 OpenAPI 문서에는 cyclic 스키마 참조가 있을 수 없습니다. 예를 들어 요청 또는 응답 본문을 지정하는 JSON 스키마는 자체적으로 전체로 참조하거나 여러 중간 스키마를 통해 자체의 일부를 참조할 수 없습니다.
  • OCP 4.9 이상에서는 application-monitoring 프로젝트가 더 이상 작동하지 않습니다. 이는 Prometheus 및 Grafana를 사용하여 Fuse Online 통합 및 인프라 구성 요소를 모니터링하기 위한 전제 조건입니다.

    이 문제를 해결하려면 기본 제공 모니터링 스택( openshift- monitoring 네임스페이스)을 사용하여 openshift-user-workload-monitoring 기능과 grafana-operator 를 사용하여 OCP 4.9 이상에서 Fuse Online 모니터링 리소스 추가(Prometheus 및 Grafana) 절차에 설명된 대로 ops addon 을 사용할 수 있습니다.

2.4.1. OCP 4.9 이상에서 Fuse 온라인 모니터링 리소스(Prometheus 및 Grafana) 추가

사전 요구 사항

  • Fuse Online은 OCP 4.9 이상에서 현장 설치 및 실행됩니다.
  • oc 클라이언트 툴이 설치되고 Fuse Online이 설치된 OCP 클러스터에 연결됩니다.
  • OCP 클러스터에 대한 관리자 액세스 권한이 있습니다.
  • Fuse Online 설치는 ops addon 이 활성화된 상태로 구성됩니다. 필요한 경우 다음 명령을 사용하여 활성화할 수 있습니다.

    oc patch syndesis/app --type=merge -p '{"spec": {"addons": {"ops": {"enabled": true}}}}'

절차

  1. 기존 openshift-monitoring 구성이 있는 경우 2단계로 건너뜁니다.

    그러지 않으면 사용자 워크로드 모니터링 옵션을 true 로 설정한 다음 3단계로 건너뛰는 openshift-monitoring 구성을 생성합니다.

    oc apply -f - <<EOF
    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    data:
      config.yaml:
       enableUserWorkload: true
    EOF
  2. 기존 openshift-monitoring 구성이 있는 경우:

    1. 기존 openshift-monitoring 구성을 확인하여 사용자 워크로드 모니터링 옵션이 true 로 설정되어 있는지 확인합니다.

      oc get -n openshift-monitoring cm/cluster-monitoring-config -ojsonpath='{.data.config\.yaml}'

      결과가 enableUserWorkload: true 인 경우 사용자 워크로드 모니터링 옵션이 true 로 설정됩니다. 3단계로 건너뜁니다.

      결과에 다른 구성이 표시되면 다음 단계로 이동하여 ConfigMap을 편집하여 사용자 워크로드 모니터링을 활성화합니다.

    2. 편집기에서 ConfigMap 파일을 엽니다. 예를 들면 다음과 같습니다.

      oc -n openshift-monitoring edit cm/cluster-monitoring-config
    3. enableUserWorkloadtrue 로 설정합니다. 예를 들면 다음과 같습니다.

      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: cluster-monitoring-config
        namespace: openshift-monitoring
      data:
        config.yaml:
         enableUserWorkload: true
    4. ConfigMap 파일을 저장합니다.
  3. 다음 명령을 사용하여 openshift-user-workload-monitoring 네임스페이스에서 Pod의 상태를 확인합니다.

    oc -n openshift-user-workload-monitoring get pods -w

    Pod 상태가 Running이 될 때까지 기다립니다. 예를 들면 다음과 같습니다.

    prometheus-operator-5d989f48fd-2qbzd   2/2     Running
    prometheus-user-workload-0             5/5     Running   prometheus-user-workload-1             5/5     Running
    thanos-ruler-user-workload-0           3/3     Running
    thanos-ruler-user-workload-1           3/3     Running
  4. Prometheus에서 Fuse Online 경고 규칙이 활성화되어 있는지 확인합니다.

    1. 내부 prometheus 인스턴스에 액세스

      oc port-forward -n openshift-user-workload-monitoring pod/prometheus-user-workload-0 9090
    2. localhost:9090으로 브라우저를 엽니다.
    3. 상태> 대상 을 선택합니다. 세 가지 개요 끝점 표시되어야 합니다.
    4. CTRL-C 를 눌러 port-forward 프로세스를 종료합니다.
  5. OperatorHub에서 Grafana Operator 4.1.0을 선택한 네임스페이스에 설치합니다(예: grafana-middleware 네임스페이스).
  6. grafana-operator 에서 노드 및 네임스페이스를 나열할 수 있도록 클러스터 역할 및 클러스터 역할 바인딩을 추가합니다.

    1. grafana-operator 웹 사이트에서 클러스터 역할 YAML 파일을 다운로드합니다.

      curl https://raw.githubusercontent.com/grafana-operator/grafana-operator/master/deploy/cluster_roles/cluster_role_grafana_operator.yaml > tmp_role.yaml
    2. grafana-operator 에 대한 클러스터 권한을 추가하여 다른 네임스페이스 및 노드를 읽습니다.

      cat <<EOF >> tmp_role.yaml
        - apiGroups:
            - ""
          resources:
            - namespaces
            - nodes
          verbs:
            - get
            - list
            - watch
      EOF
      oc apply -f tmp_role.yaml
      oc apply -f - <<EOF
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRoleBinding
      metadata:
        name: grafana-operator
      roleRef:
        name: grafana-operator
        kind: ClusterRole
        apiGroup: ""
      subjects:
        - kind: ServiceAccount
          name: grafana-operator-controller-manager
          namespace: grafana-middleware
      EOF
  7. grafana-operator 를 활성화하여 네임스페이스를 제한하려면 DASHBOARD_NAMESPACES_ALL 환경 변수를 사용하여 다른 네임스페이스의 Grafana 대시보드를 읽습니다.

    oc -n grafana-middleware patch subs/grafana-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"DASHBOARD_NAMESPACES_ALL","value":"true"}]}}}'
  8. grafana Pod가 다시 생성되었는지 확인합니다.

    oc -n grafana-middleware get pods -w
  9. 필요한 경우 grafana-operator 로그를 확인합니다.

    oc -n grafana-middleware logs -f `oc -n grafana-middleware get pods -oname|grep grafana-operator-controller-manager` -c manager
  10. Grafana 사용자 지정 리소스 를 추가하여 Grafana 서버 Pod를 시작합니다. 예를 들면 다음과 같습니다.

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: Grafana
    metadata:
      name: grafana-middleware
      namespace: grafana-middleware
    spec:
      config:
        auth:
          disable_signout_menu: true
        auth.anonymous:
          enabled: true
        log:
          level: warn
          mode: console
        security:
          admin_password: secret
          admin_user: root
      dashboardLabelSelector:
      - matchExpressions:
        - key: app
          operator: In
          values:
          - grafana
          - syndesis
      ingress:
        enabled: true
    EOF
  11. grafana-operator 가 모니터링 정보를 읽을 수 있도록 허용합니다.

    oc -n grafana-middleware adm policy add-cluster-role-to-user cluster-monitoring-view -z grafana-serviceaccount
  12. query thanos-querier:에 GrafanaDatasource 를 추가합니다.

    oc apply -f - <<EOF
    apiVersion: integreatly.org/v1alpha1
    kind: GrafanaDataSource
    metadata:
      name: prometheus-grafanadatasource
      namespace: grafana-middleware
    spec:
      datasources:
        - access: proxy
          editable: true
          isDefault: true
          jsonData:
            httpHeaderName1: 'Authorization'
            timeInterval: 5s
            tlsSkipVerify: true
          name: Prometheus
          secureJsonData:
          httpHeaderValue1: "Bearer $(oc -n grafana-middleware serviceaccounts get-token grafana-serviceaccount)"
          type: prometheus
          url: "https://$(oc get route thanos-querier -n openshift-monitoring -ojsonpath='{.spec.host}')"
      name: prometheus-grafanadatasource.yaml
    EOF
  13. grafana 서버 로그를 확인합니다.

    oc logs -f `oc get pods -l app=grafana -oname`
  14. grafana URL에 액세스하여 Fuse Online 대시보드를 확인합니다.

    echo "https://"$(oc -n grafana-middleware get route/grafana-route -ojsonpath='{.spec.host}')