5.2.2. 마스터 호스트 백업 생성


시스템 업데이트, 업그레이드 또는 기타 중요한 수정 등 OpenShift Container Platform 인프라를 변경하기 전에 이 백업 프로세스를 수행하십시오. 장애가 발생할 경우 최신 데이터를 사용할 수 있도록 데이터를 정기적으로 백업하십시오.

OpenShift Container Platform 파일

마스터 인스턴스는 API, 컨트롤러와 같은 중요한 서비스를 실행합니다. /etc/origin/master 디렉터리에서는 다음과 같은 여러 중요한 파일을 저장합니다.

  • 구성, API, 컨트롤러, 서비스 등
  • 설치를 통해 생성된 인증서
  • 모든 클라우드 공급자 관련 구성
  • 키 및 기타 인증 파일(예: htpasswd를 사용하는 경우 htpasswd)
  • 기타 등등

로그 레벨 증가 또는 프록시 사용과 같은 OpenShift Container Platform 서비스를 사용자 정의할 수 있습니다. 구성 파일은 /etc/sysconfig 디렉터리에 저장됩니다.

마스터도 노드이므로 전체 /etc/origin 디렉터리를 백업하십시오.

프로시저
중요

각 마스터 노드에서 다음 단계를 수행해야 합니다.

  1. 여기에 있는 포드 정의의 백업을 생성하십시오.
  2. 마스터 호스트 구성 파일의 백업을 생성하십시오.

    $ 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/ ${MYBACKUPDIR}/etc/sysconfig/
    참고

    마스터 구성 파일은 /etc/origin/master/master-config.yaml입니다.

    주의

    /etc/origin/master/ca.serial.txt 파일은 Ansible 호스트 인벤토리에 나열된 첫 번째 마스터에서만 생성됩니다. 첫 번째 마스터 호스트를 더 이상 사용하지 않는 경우 프로세스 전에 /etc/origin/master/ca.serial.txt 파일을 나머지 마스터 호스트에 복사하십시오.

    중요

    여러 마스터를 실행하는 OpenShift Container Platform 3.11 클러스터에서는 마스터 노드 중 하나의 /etc/origin/master, /etc/etcd/ca/etc/etcd/generated_certs에 추가 CA 인증서가 들어 있습니다. 이러한 인증서는 애플리케이션 노드와 etcd 노드 확장 작업에 필요하며, 원래 마스터를 영구적으로 사용할 수 없게 되는 경우 다른 마스터 노드에 복원해야 합니다. 이러한 디렉터리는 기본적으로 여기에 설명된 백업 프로시저에 포함됩니다.

  3. 백업을 계획할 때 고려해야 할 다른 중요한 파일은 다음과 같습니다.

    파일

    설명

    /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/
  4. 패키지가 실수로 제거되었거나 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
  5. 이전 단계를 수행했다면 백업 디렉터리에 다음 파일이 있습니다.

    $ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d)
    $ sudo find ${MYBACKUPDIR} -mindepth 1 -type f -printf '%P\n'
    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/master/ca.crt
    etc/origin/master/ca.key
    etc/origin/master/ca.serial.txt
    etc/origin/master/ca-bundle.crt
    etc/origin/master/master.proxy-client.crt
    etc/origin/master/master.proxy-client.key
    etc/origin/master/service-signer.crt
    etc/origin/master/service-signer.key
    etc/origin/master/serviceaccounts.private.key
    etc/origin/master/serviceaccounts.public.key
    etc/origin/master/openshift-master.crt
    etc/origin/master/openshift-master.key
    etc/origin/master/openshift-master.kubeconfig
    etc/origin/master/master.server.crt
    etc/origin/master/master.server.key
    etc/origin/master/master.kubelet-client.crt
    etc/origin/master/master.kubelet-client.key
    etc/origin/master/admin.crt
    etc/origin/master/admin.key
    etc/origin/master/admin.kubeconfig
    etc/origin/master/etcd.server.crt
    etc/origin/master/etcd.server.key
    etc/origin/master/master.etcd-client.key
    etc/origin/master/master.etcd-client.csr
    etc/origin/master/master.etcd-client.crt
    etc/origin/master/master.etcd-ca.crt
    etc/origin/master/policy.json
    etc/origin/master/scheduler.json
    etc/origin/master/htpasswd
    etc/origin/master/session-secrets.yaml
    etc/origin/master/openshift-router.crt
    etc/origin/master/openshift-router.key
    etc/origin/master/registry.crt
    etc/origin/master/registry.key
    etc/origin/master/master-config.yaml
    etc/origin/generated-configs/master-master-1.example.com/master.server.crt
    ...[OUTPUT OMITTED]...
    etc/origin/cloudprovider/openstack.conf
    etc/origin/node/system:node:master-0.example.com.crt
    etc/origin/node/system:node:master-0.example.com.key
    etc/origin/node/ca.crt
    etc/origin/node/system:node:master-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/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
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.