📅  最后修改于: 2020-10-31 13:55:08             🧑  作者: Mango
OpenShift使用两种安装方法来设置OpenShift集群。
此方法用于运行快速未完成的群集设置配置。为了使用此方法,我们需要首先安装安装程序。可以通过运行以下命令来完成。
互动方式
$ atomic-openshift-installer install
当您希望运行交互式设置时,这很有用。
无人值守安装方法
当需要设置一种无人值守的安装方法时,可以使用此方法,其中用户可以定义配置yaml文件,并将其放置在〜/ .config / openshift /下,名称为installer.cfg.yml。然后,可以运行以下命令来安装–u标签。
$ atomic-openshift-installer –u install
默认情况下,它使用〜/ .config / openshift /下的配置文件。另一方面,Ansible用作安装的备份。
version: v2
variant: openshift-enterprise
variant_version: 3.1
ansible_log_path: /tmp/ansible.log
deployment:
ansible_ssh_user: root
hosts:
- ip: 172.10.10.1
hostname: vklnld908.int.example.com
public_ip: 24.222.0.1
public_hostname: master.example.com
roles:
- master
- node
containerized: true
connect_to: 24.222.0.1
- ip: 172.10.10.2
hostname: vklnld1446.int.example.com
public_ip: 24.222.0.2
public_hostname: node1.example.com
roles:
- node
connect_to: 10.0.0.2
- ip: 172.10.10.3
hostname: vklnld1447.int.example.com
public_ip: 10..22.2.3
public_hostname: node2.example.com
roles:
- node
connect_to: 10.0.0.3
roles:
master:
: ""
: ""
node:
: ""
这里,我们有特定于角色的变量,如果希望设置某些特定变量,则可以定义该变量。
完成后,我们可以使用以下命令验证安装。
$ oc get nodes
NAME STATUS AGE
master.example.com Ready 10d
node1.example.com Ready 10d
node2.example.com Ready 10d
高级安装完全基于Ansible配置,其中提供了有关主机和节点配置的完整主机配置和变量定义。这包含有关配置的所有详细信息。
完成设置并准备好剧本后,我们只需运行以下命令即可设置集群。
$ ansible-playbook -i inventry/hosts ~/openshift-ansible/playbooks/byo/config.yml
我们可以使用-将主机添加到集群
快速安装工具可以在交互和非交互模式下工作。使用以下命令。
$ atomic-openshift-installer -u -c scaleup
缩放应用程序配置文件外观的格式可用于添加主节点和节点。
在这种方法中,我们更新Ansible的主机文件,然后在该文件中添加新的节点或服务器详细信息。配置文件如下所示。
[OSEv3:children]
masters
nodes
new_nodes
new_master
在相同的Ansible主机文件中,添加有关新节点的变量详细信息,如下所示。
[new_nodes]
vklnld1448.int.example.com openshift_node_labels = "{'region': 'primary', 'zone': 'east'}"
最后,使用更新的主机文件,运行新配置并调用配置文件以使用以下命令完成设置。
$ ansible-playbook -i /inventory/hosts /usr/share/ansible/openshift-ansible/playbooks/test/openshift-node/scaleup.yml
OpenShift群集日志不过是从群集的主计算机和节点计算机生成的日志。这些可以管理任何类型的日志,从服务器日志,主日志,容器日志,pod日志等开始。容器日志管理存在多种技术和应用程序。
列出的工具很少,可以将其用于日志管理。
ELK堆栈-该堆栈在尝试从所有节点收集日志并以系统格式显示它们时很有用。 ELK堆栈主要分为三大类。
ElasticSearch-主要用于从所有容器收集信息并将其放置在中央位置。
Fluentd-用于将收集的日志馈送到Elasticsearch容器引擎。
Kibana-图形界面,用于在图形界面中将收集的数据作为有用信息呈现。
要注意的一个关键点是,当将此系统部署在群集上时,它将开始从所有节点收集日志。
OpenShift具有内置的OC adm dignostics命令和OC,可用于分析多种错误情况。可以从主服务器上使用此工具作为集群管理员。该实用程序对故障排除和诊断已知问题非常有用。它在主客户端和节点上运行。
如果运行时没有任何异常或标志,它将查找客户端,服务器和节点的配置文件,并将其用于诊断。通过传递以下参数,可以单独运行诊断程序-
只需使用以下命令即可运行它们。
$ oc adm diagnostics
集群的升级涉及到集群中多个事物的升级,以及使集群获得新组件和新升级。这涉及-
为了执行所有这些升级,我们需要首先获得快速安装程序或实用程序。为此,我们需要更新以下实用程序-
在开始升级之前,我们需要在主计算机上备份etcd,这可以使用以下命令来完成。
$ ETCD_DATA_DIR = /var/lib/origin/openshift.local.etcd
$ etcdctl backup \
--data-dir $ETCD_DATA_DIR \
--backup-dir $ETCD_DATA_DIR.bak.
在OpenShift主站中,我们通过更新etcd文件然后升级到Docker开始升级。最后,我们运行自动执行程序以将集群放置到所需位置。但是,在开始升级之前,我们需要首先在每个主机上激活原子openshift软件包。可以使用以下命令来完成。
步骤1-删除atomic-openshift包
$ atomic-openshift-excluder unexclude
步骤2-升级所有主机上的etcd。
$ yum update etcd
步骤3-重新启动etcd的服务,并检查它是否已成功启动。
$ systemctl restart etcd
$ journalctl -r -u etcd
步骤4-升级Docker软件包。
$ yum update docker
步骤5-重新启动Docker服务并检查它是否正确启动。
$ systemctl restart docker
$ journalctl -r -u docker
步骤6-完成后,使用以下命令重新引导系统。
$ systemctl reboot
$ journalctl -r -u docker
步骤7-最后,运行atomic-executer将软件包返回到yum excludes列表。
$ atomic-openshift-excluder exclude
升级策略没有这种强制性,只有在建议时才需要升级,可以使用以下命令进行检查。
$ oadm policy reconcile-cluster-roles
在大多数情况下,我们不需要更新策略定义。
一旦主更新完成,我们就可以开始升级节点。要记住的一件事是,升级周期应该很短,以避免集群中出现任何问题。
步骤1-从要执行升级的所有节点上删除所有原子OpenShift软件包。
$ atomic-openshift-excluder unexclude
步骤2-接下来,在升级之前禁用节点调度。
$ oadm manage-node --schedulable = false
步骤3-将所有节点从当前主机复制到另一台主机。
$ oadm drain --force --delete-local-data --ignore-daemonsets
步骤4-升级主机上的Docker设置。
$ yum update docker
步骤5-重新启动Docker服务,然后启动Docker服务节点。
$systemctl restart docker
$ systemctl restart atomic-openshift-node
步骤6-检查它们是否都正确启动。
$ journalctl -r -u atomic-openshift-node
步骤7-升级完成后,重新启动节点计算机。
$ systemctl reboot
$ journalctl -r -u docker
步骤8-在节点上重新启用调度。
$ oadm manage-node --schedulable.
步骤9-运行atomic-openshift执行程序以将OpenShift程序包恢复到节点上。
$ atomic-openshift-excluder exclude
步骤10-最后,检查所有节点是否可用。
$ oc get nodes
NAME STATUS AGE
master.example.com Ready 12d
node1.example.com Ready 12d
node2.example.com Ready 12d