5.2.2. 创建 master 主机备份
在对 OpenShift Container Platform 基础架构进行任何更改之前执行此备份过程,如系统更新、升级或其他显著修改。定期备份数据,以确保在出错时有最新的数据可用。
OpenShift Container Platform 文件
主(master)实例运行重要的服务,如 API 和控制器。/etc/origin/master
目录存储很多重要文件:
- 配置、API、控制器、服务等
- 安装生成的证书
- 所有与云供应商相关的配置
-
密钥及其他身份验证文件,例如,如果使用 htpasswd 时为
htpasswd
- 更多
您可以自定义 OpenShift Container Platform 服务,如增加日志级别或使用代理。配置文件存储在 /etc/sysconfig
目录中。
因为 master 也是节点,所以备份整个 /etc/origin
目录。
流程
您必须在每个 master 节点上执行以下步骤。
- 创建 pod 定义备份(在此)。.
创建 master 主机配置文件的备份:
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/
$ 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/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意master 配置文件为/etc/origin/master/master-config.yaml。
警告/etc/origin/master/ca.serial.txt
文件仅对 Ansible 主机清单中列出的第一个 master 生成。如果您弃用了第一个 master 主机,请在进程前将/etc/origin/master/ca.serial.txt
文件复制到其余 master 主机中。重要在运行多个 master 的 OpenShift Container Platform 3.11 集群中,其中一个 master 节点在
/etc/origin/master
、/etc/etcd/ca
和/etc/etcd/generated_certs
中包括额外的 CA 证书。这些是应用程序节点和 etcd 节点扩展操作所必需的,且需要在另一个 master 节点上恢复,它应该永久不可用。这些目录默认包含在此处的备份过程中。在规划备份时需要考虑的其他重要文件包括:
Expand File
描述
/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/
添加到系统的证书(例如,外部 registry)
创建这些文件的备份:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果软件包被意外删除,或者您需要重新整合
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 mkdir -p ${MYBACKUPDIR} $ rpm -qa | sort | sudo tee $MYBACKUPDIR/packages.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用前面的步骤,则备份目录中存在以下文件:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果需要,您可以压缩文件以节省空间:
MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) sudo tar -zcvf /backup/$(hostname)-$(date +%Y%m%d).tar.gz $MYBACKUPDIR sudo rm -Rf ${MYBACKUPDIR}
$ MYBACKUPDIR=/backup/$(hostname)/$(date +%Y%m%d) $ sudo tar -zcvf /backup/$(hostname)-$(date +%Y%m%d).tar.gz $MYBACKUPDIR $ sudo rm -Rf ${MYBACKUPDIR}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
要从头开始创建任何这些文件,openshift-ansible-contrib
存储库包含 backup_master_node.sh
脚本,它将执行前面的步骤。该脚本在运行 脚本的主机上创建一个目录,并复制前面提到的所有文件。
红帽不支持 openshift-ansible-contrib
脚本,但可以在架构团队执行测试以确保代码运行正常且安全时作为参考。
您可以使用以下方法在每个 master 主机上运行该脚本:
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
$ 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