4.3. 검사 구성 및 스크립트 알림
OpenShift Container Platform에서 IP 페일오버에 대한 상태 모니터링을 사용자 지정하고 OpenShift Container Platform에서 VIP 상태가 변경될 때 알림을 수신하려면 ConfigMap 오브젝트를 사용하여 점검 및 알림 스크립트를 구성할 수 있습니다.
검사 및 알림 스크립트는 IP 페일오버 Pod 내에서 실행되며 호스트 파일 시스템이 아닌 Pod 파일 시스템을 사용합니다. /hosts 마운트 경로 아래의 Pod에서 호스트 파일 시스템을 사용할 수 있습니다. 검사 또는 알림 스크립트를 구성할 때 스크립트의 전체 경로를 제공해야 합니다.
각 IP 페일오버 Pod는 Pod가 실행 중인 노드에서 하나 이상의 가상 IP(VIP) 주소를 제어하는 Keepalived 데몬을 관리합니다. keepalived는 노드에서 각 VIP의 상태를 추적합니다. 이 상태는 master,backup 또는 fault 일 수 있습니다.
Keepalived가 시작될 때마다 로드되는 검사 및 알림 스크립트의 전체 경로 이름이 Keepalived 구성 파일인 /etc/keepalived/keepalived.conf 에 추가됩니다. 다음 섹션에 설명된 대로 ConfigMap 오브젝트를 사용하여 Pod에 스크립트를 추가합니다.
- 스크립트 확인
keepalived는 사용자 제공 검사 스크립트를 주기적으로 실행하여 애플리케이션 상태를 모니터링합니다. 예를 들어 스크립트는 요청을 발행하고 응답을 확인하여 웹 서버를 테스트할 수 있습니다. 검사 스크립트를 제공하지 않으면 Keepalived는 TCP 연결을 테스트하는 기본 스크립트를 실행합니다. 이 기본 테스트는 모니터 포트가
0으로 설정된 경우 비활성화됩니다.검사 스크립트가 0이 아닌 값을 반환하면 노드가
백업상태가 되고 보유한 VIP가 다시 할당됩니다.- 스크립트 알림
클러스터 관리자는 VIP 상태가 변경될 때마다 Keepalived 호출에 대해 선택적 알림 스크립트를 제공할 수 있습니다. keepalived는 다음 매개변수를 알림 스크립트에 전달합니다.
-
$ 1-그룹또는인스턴스 -
2단계 -그룹또는인스턴스의 이름 -
$3- 새 상태:master,backup또는fault
-
사전 요구 사항
-
OpenShift CLI(
oc)를 설치합니다. -
cluster-admin권한이 있는 사용자로 클러스터에 로그인합니다.
프로세스
원하는 스크립트를 생성하고 저장할
ConfigMap오브젝트를 생성합니다. 스크립트에는 입력 인수가 없으며OK의 경우0을fail의 경우1을 반환해야 합니다.검사 스크립트,
mycheckscript.sh:#!/bin/bash # Whatever tests are needed # E.g., send request and verify response exit 0다음 명령을 실행하여
ConfigMap오브젝트를 생성합니다.$ oc create configmap mycustomcheck --from-file=mycheckscript.shpod에 스크립트를 추가합니다. 마운트된
ConfigMap오브젝트 파일의defaultMode는oc명령을 사용하거나 IP 페일오버 구성을 편집하여 실행할 수 있어야 합니다.다음 명령을 실행하여 Pod에 스크립트를 추가합니다.
0755,49310진수 값이 일반적입니다. 예를 들면 다음과 같습니다.$ oc set env deploy/ipfailover-keepalived \ OPENSHIFT_HA_CHECK_SCRIPT=/etc/keepalive/mycheckscript.sh$ oc set volume deploy/ipfailover-keepalived --add --overwrite \ --name=config-volume \ --mount-path=/etc/keepalive \ --source='{"configMap": { "name": "mycustomcheck", "defaultMode": 493}}'참고oc set env명령은 공백 문자를 구분합니다.=기호 양쪽에 공백이 없어야 합니다.또는 다음 명령을 실행하여
ipfailover-keepalived구성을 편집합니다.$ oc edit deploy ipfailover-keepalivedipfailover-keepalived구성 예spec: containers: - env: - name: OPENSHIFT_HA_CHECK_SCRIPT value: /etc/keepalive/mycheckscript.sh ... volumeMounts: - mountPath: /etc/keepalive name: config-volume dnsPolicy: ClusterFirst ... volumes: - configMap: defaultMode: 0755 name: customrouter name: config-volume ...다음과 같습니다.
spec.container.env.name-
마운트된 스크립트 파일을 가리키는
OPENSHIFT_HA_CHECK_SCRIPT환경 변수를 지정합니다. spec.container.volumeMounts-
마운트 지점을 생성할
spec.container.volumeMounts필드를 지정합니다. spec.volumes-
구성 맵을 언급할 새
spec.volumes필드를 지정합니다. spec.volumes.configMap.defaultMode-
파일에 대한 실행 권한을 지정합니다. 다시 읽으면 10진수
493으로 표시됩니다.
-
변경 사항을 저장하고 편집기를 종료합니다. 이렇게 하면
ipfailover-keepalived구성이 다시 시작됩니다.