29.2.2. 스크립트 확인 및 알림


keepalived는 사용자가 제공한 선택적 검사 스크립트를 주기적으로 실행하여 애플리케이션의 상태를 모니터링합니다. 예를 들어 스크립트는 요청을 발행하고 응답을 확인하여 웹 서버를 테스트할 수 있습니다.

스크립트는 oc adm ipfailover 명령에 --check-script=<script> 옵션을 통해 제공됩니다. 스크립트는 PASS 의 경우 0, FAIL 의 경우 1 로 종료해야 합니다.

기본적으로 검사는 2초마다 수행되지만 --check-interval=<seconds> 옵션을 사용하여 변경할 수 있습니다.

검사 스크립트를 제공하지 않으면 TCP 연결을 테스트하는 간단한 기본 스크립트가 실행됩니다. 이 기본 테스트는 모니터 포트가 0이면 비활성화됩니다.

각 VIP(가상 IP)에 대해 keepalived 는 노드의 상태를 유지합니다. 노드의 VIP는 MASTER,BACKUP 또는 FAULT 상태일 수 있습니다. FAULT 상태에 있지 않은 노드의 모든 VIP는 협상에 참여하여 VIP의 MASTER 가 될 것을 결정합니다. 모든 손실자가 BACKUP 상태가 됩니다. MASTER검사 스크립트가 실패하면 VIP가 FAULT 상태가 되고 재협상이 트리거됩니다. BACKUP 이 실패하면 VIP가 FAULT 상태가 됩니다. 검사 스크립트가 FAULT 상태의 VIP에서 다시 통과하면FAULT 를 종료하고 MASTER 에 대해 협상합니다. 결과 상태는 MASTER 또는 BACKUP 입니다.

관리자는 상태가 변경될 때마다 호출되는 선택적 알림 스크립트를 제공할 수 있습니다. keepalived는 다음 세 개의 매개변수를 스크립트에 전달합니다.

  • $1 - "GROUP"|"INSTANCE"
  • $2 - 그룹 또는 인스턴스의 이름
  • $3 - 새 상태("MASTER"|"BACKUP"|"FAULT")

이러한 스크립트는 IP 페일오버 Pod에서 실행되며 호스트 파일 시스템이 아닌 Pod의 파일 시스템을 사용합니다. 옵션에는 스크립트의 전체 경로가 필요합니다. 관리자는 알림 스크립트를 실행하여 결과를 추출하려면 포드에서 스크립트를 사용할 수 있도록 해야 합니다. 스크립트를 제공하는 데 권장되는 접근 방식은 ConfigMap 을 사용하는 것입니다.

keepalived가 시작될 때마다 로드되는 keepalived 구성 파일 /etc/keepalived/keepalived.conf검사알림 스크립트의 전체 경로 이름이 추가됩니다. 스크립트는 다음과 같이 ConfigMap을 사용하여 Pod에 추가할 수 있습니다.

  1. 원하는 스크립트를 생성하고 ConfigMap을 생성하여 보유합니다. 스크립트에는 입력 인수가 없으며 OK 의 경우 0, FAIL 의 경우 1 을 반환해야 합니다.

    검사 스크립트, mycheckscript.sh:

    #!/bin/bash
        # Whatever tests are needed
        # E.g., send request and verify response
    exit 0
  2. ConfigMap을 생성합니다.

    $ oc create configmap mycustomcheck --from-file=mycheckscript.sh
  3. 포드에 스크립트를 추가하는 방법에는 oc 명령을 사용하거나 배포 구성을 편집하는 두 가지 방법이 있습니다. 두 경우 모두 마운트된 configMap 파일의 defaultMode 에서 실행을 허용해야 합니다. 0755 (493 10진수 )의 값이 일반적입니다.

    1. oc 명령 사용:

      $ oc env dc/ipf-ha-router \
          OPENSHIFT_HA_CHECK_SCRIPT=/etc/keepalive/mycheckscript.sh
      $ oc set volume dc/ipf-ha-router --add --overwrite \
          --name=config-volume \
          --mount-path=/etc/keepalive \
          --source='{"configMap": { "name": "mycustomcheck", "defaultMode": 493}}'
    2. ipf-ha-router 배포 구성을 편집합니다.

      1. oc edit dc ipf-ha-router 를 사용하여 텍스트 편집기로 라우터 배포 구성을 편집합니다.

        ...
            spec:
              containers:
              - env:
                - name: OPENSHIFT_HA_CHECK_SCRIPT  1
                  value: /etc/keepalive/mycheckscript.sh
        ...
                volumeMounts: 2
                - mountPath: /etc/keepalive
                  name: config-volume
              dnsPolicy: ClusterFirst
        ...
              volumes: 3
              - configMap:
                  defaultMode: 0755 4
                  name: customrouter
                name: config-volume
        ...
        1
        spec.container.env 필드에서 마운트된 스크립트 파일을 가리키도록 OPENSHIFT_HA_CHECK_SCRIPT 환경 변수를 추가합니다.
        2
        spec.container.volumeMounts 필드를 추가하여 마운트 지점을 생성합니다.
        3
        spec.volumes 필드를 추가하여 ConfigMap을 언급합니다.
        4
        파일에 대한 실행 권한을 설정합니다. 다시 읽으면 10진수(493)로 표시됩니다.
      2. 변경 사항을 저장하고 편집기를 종료합니다. 그러면 ipf-ha-router 가 다시 시작됩니다.
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

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

© 2024 Red Hat, Inc.