5.3.2. 노드 호스트 백업 생성
노드 호스트의 백업 생성은 마스터 호스트 백업과 다른 사용 사례입니다. 마스터 호스트에는 중요한 파일이 많이 들어 있으므로 백업을 만드는 것이 좋습니다. 그러나 노드의 특성상 장애 조치(failover)를 할 때 모든 특별한 항목이 노드에 복제되며, 대개 환경 실행에 필요한 데이터는 포함되어 있지 않습니다. 환경을 실행하는 데 필요한 항목이 노드 백업에 포함되어 있으면 백업을 생성하는 것이 좋습니다.
백업 프로세스는 시스템 업데이트, 업그레이드 또는 기타 중요한 수정 등 인프라를 변경하기 전에 수행해야 합니다. 장애가 발생할 경우 최신 데이터를 사용할 수 있도록 정기적으로 백업을 수행해야 합니다.
OpenShift Container Platform 파일
노드 인스턴스는 컨테이너를 기반으로 하는 포드 형태로 애플리케이션을 실행합니다. /etc/origin/
및 /etc/origin/node
디렉터리에 다음과 같은 중요한 파일이 있습니다.
- 노드 서비스의 구성
- 설치를 통해 생성된 인증서
- 클라우드 공급자 관련 구성
-
dnsmasq
구성과 같은 키 및 기타 인증 파일
OpenShift Container Platform 서비스를 사용자 정의하여 로그 레벨을 높이거나 프록시를 사용하도록 할 수 있으며, 구성 파일은 /etc/sysconfig
디렉터리에 저장됩니다.
프로시저
노드 구성 파일의 백업을 생성하십시오.
$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo mkdir -p ${MYBACKUPDIR}/etc/sysconfig $ sudo cp -aR /etc/origin ${MYBACKUPDIR}/etc $ sudo cp -aR /etc/sysconfig/atomic-openshift-node ${MYBACKUPDIR}/etc/sysconfig/
OpenShift Container Platform에서는 다음을 포함하여 백업 정책을 계획할 때 고려해야 하는 특정 파일을 사용합니다.
파일
설명
/etc/cni/*
컨테이너 네트워크 인터페이스 구성(사용된 경우)
/etc/sysconfig/iptables
iptables
규칙의 저장 위치/etc/sysconfig/docker-storage-setup
container-storage-setup
명령의 입력 파일/etc/sysconfig/docker
docker
구성 파일/etc/sysconfig/docker-network
docker
네트워킹 구성(예: MTU)/etc/sysconfig/docker-storage
docker
스토리지 구성(container-storage-setup
으로 생성)/etc/dnsmasq.conf
dnsmasq
의 기본 구성 파일/etc/dnsmasq.d/*
다른
dnsmasq
구성 파일/etc/sysconfig/flanneld
flannel
구성 파일(사용된 경우)/etc/pki/ca-trust/source/anchors/
시스템에 추가된 인증서(예: 외부 레지스트리용)
이러한 파일을 생성하려면 다음을 수행하십시오.
$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo mkdir -p ${MYBACKUPDIR}/etc/sysconfig $ sudo mkdir -p ${MYBACKUPDIR}/etc/pki/ca-trust/source/anchors $ sudo cp -aR /etc/sysconfig/{iptables,docker-*,flanneld} \ ${MYBACKUPDIR}/etc/sysconfig/ $ sudo cp -aR /etc/dnsmasq* /etc/cni ${MYBACKUPDIR}/etc/ $ sudo cp -aR /etc/pki/ca-trust/source/anchors/* \ ${MYBACKUPDIR}/etc/pki/ca-trust/source/anchors/
패키지를 실수로 제거했거나
rpm
패키지에 포함된 파일을 복원해야 하는 경우 시스템에rhel
패키지 목록이 설치되어 있으면 유용할 수 있습니다.참고콘텐츠 뷰 또는 사실 저장소와 같은 Red Hat Satellite 기능을 사용하는 경우 누락된 패키지 및 시스템에 설치된 패키지의 히스토리 데이터를 다시 설치하는 적절한 메커니즘을 제공하십시오.
시스템에 설치된 현재
rhel
패키지 목록을 작성하려면 다음을 수행하십시오.$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo mkdir -p ${MYBACKUPDIR} $ rpm -qa | sort | sudo tee $MYBACKUPDIR/packages.txt
이제 백업 디렉터리에 다음 파일이 있을 것입니다.
$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo find ${MYBACKUPDIR} -mindepth 1 -type f -printf '%P\n' etc/sysconfig/atomic-openshift-node etc/sysconfig/flanneld etc/sysconfig/iptables etc/sysconfig/docker-network etc/sysconfig/docker-storage etc/sysconfig/docker-storage-setup etc/sysconfig/docker-storage-setup.rpmnew etc/origin/node/system:node:app-node-0.example.com.crt etc/origin/node/system:node:app-node-0.example.com.key etc/origin/node/ca.crt etc/origin/node/system:node:app-node-0.example.com.kubeconfig etc/origin/node/server.crt etc/origin/node/server.key etc/origin/node/node-dnsmasq.conf etc/origin/node/resolv.conf etc/origin/node/node-config.yaml etc/origin/node/flannel.etcd-client.key etc/origin/node/flannel.etcd-client.csr etc/origin/node/flannel.etcd-client.crt etc/origin/node/flannel.etcd-ca.crt etc/origin/cloudprovider/openstack.conf etc/pki/ca-trust/source/anchors/openshift-ca.crt etc/pki/ca-trust/source/anchors/registry-ca.crt etc/dnsmasq.conf etc/dnsmasq.d/origin-dns.conf etc/dnsmasq.d/origin-upstream-dns.conf etc/dnsmasq.d/node-dnsmasq.conf packages.txt
필요한 경우 파일을 압축하여 공간을 절약할 수 있습니다.
$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo tar -zcvf /backup/$(hostname)-$(date +%Y%m%d).tar.gz $MYBACKUPDIR $ sudo rm -Rf ${MYBACKUPDIR}
이러한 파일을 처음부터 새로 생성할 수 있도록 openshift-ansible-contrib
리포지토리에는 이전 단계를 수행하는 backup_master_node.sh
스크립트가 포함되어 있습니다. 이 스크립트는 스크립트를 실행하는 호스트에 디렉터리를 생성하고 앞서 언급된 모든 파일을 복사합니다.
Openshift-ansible-contrib
스크립트는 Red Hat에서 지원되지 않지만, 코드가 정의된 대로 작동하고 안전한지 참조 아키텍처 팀에서 테스트합니다.
다음을 사용하여 모든 마스터 호스트에서 이 스크립트를 실행할 수 있습니다.
$ mkdir ~/git $ cd ~/git $ git clone https://github.com/openshift/openshift-ansible-contrib.git $ cd openshift-ansible-contrib/reference-architecture/day2ops/scripts $ ./backup_master_node.sh -h