OpenShift使用两种安装方法来设置OpenShift集群.
快速安装方法
高级配置方法
设置群集
快速安装方法
此方法用于运行快速无法获取的群集设置配置.要使用此方法,我们需要先安装安装程序.这可以通过运行以下命令来完成.
交互式方法
$ atomic-openshift-installer install
当希望运行交互式设置时,这很有用.
无人参与安装方法
当希望设置无人值守的安装方法时,使用此方法,其中用户可以定义配置yaml文件并将其置于〜/.config/openshift/,名称为installer.cfg.yml.然后,可以运行以下命令来安装 -u标记.
$ atomic-openshift-installer –u install
默认情况下,它使用位于〜/.config/openshift/下的配置文件.另一方面,Ansible用作安装的备份.
version: v2variant: openshift-enterprisevariant_version: 3.1ansible_log_path: /tmp/ansible.logdeployment: 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.3roles: master:: " " : " " node: : " "
这里,我们有特定于角色的变量,如果想要设置某个特定变量,可以定义该变量.
完成后,我们可以使用以下命令验证安装.
$ oc get nodesNAME STATUS AGEmaster.example.com Ready 10dnode1.example.com Ready 10dnode2.example.com Ready 10d
高级安装
高级安装完全基于Ansible配置,其中存在关于主配置和节点配置的完整主机配置和变量定义.这包含有关配置的所有详细信息.
一旦我们完成设置并且playbook准备就绪,我们就可以运行以下命令来设置集群.
$ ansible-playbook -i inventry/hosts~/openshift-ansible/playbooks/byo/config.yml
将主机添加到群集
我们可以使用 :
将主机添加到群集b
快速安装工具
高级配置方法
快速安装工具适用于交互式和非交互式模式.使用以下命令.
$ 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
Kabna
Nagios
Splunk
ELK堆栈 : 尝试从所有节点收集日志并以系统格式显示时,此堆栈非常有用. ELK堆栈主要分为三大类.
ElasticSearch : 主要负责从所有集装箱收集信息并将其放入中央位置.
流利 : 用于将收集的日志提供给elasticsearch容器引擎.
Kibana : 用于在图形界面中将收集的数据显示为有用信息的图形界面.
需要注意的一个关键点是,当在集群上部署此系统时,它开始从所有系统收集日志节点.
日志诊断
OpenShift有一个内置的 oc adm dignostics 命令,可以用来分析多种错误情况.可以从master作为集群管理员使用此工具.此实用程序非常有用,可以排除故障并确定已知问题.它在主客户端和节点上运行.
如果在没有任何agruments或标志的情况下运行,它将查找客户端,服务器和节点机制的配置文件,并将它们用于诊断.可以通过传递以下参数单独运行诊断 :
AggregatedLogging
AnalyzeLogs
ClusterRegistry
ClusterRoleBindings
ClusterRoles
ClusterRouter
ConfigContexts
DiagnosticPod
MasterConfigCheck
MasterNode
MetricsApiProxy
NetworkCheck
NodeConfigCheck
NodeDefinitions
ServiceExternalIPs
UnitStatus
可以使用以下命令运行它们.
$ oc adm diagnostics< DiagnosticName>
升级群集
群集的升级涉及升级群集中的多个内容并使用new更新群集的基础组件和upgrdes.这涉及 :
主组件的升级
节点组件的升级
政策升级
路线升级
图像流升级
为了执行所有这些升级,我们需要先安装快速安装程序或工具.为此,我们需要更新以下实用程序 :
atomic-openshift-utils
atomic-openshift-excluder
atomic-openshift-docker-excluder
etcd package
在开始升级之前,我们需要在主机上备份etcd,这可以使用以下命令完成.
$ ETCD_DATA_DIR = /var/lib/origin/openshift.local.etcd$ etcdctl backup \ --data-dir $ETCD_DATA_DIR \ --backup-dir $ETCD_DATA_DIR.bak.
升级主要组件
在OpenShift master中,我们通过更新etcd文件开始升级,然后继续到Docker.最后,我们运行自动执行器以使集群进入所需位置.但是,在开始升级之前,我们需要首先激活每个主服务器上的原子openshift软件包.这可以使用以下命令完成.
步骤1 : 删除atomic-openshift包
$ atomic-openshift-excluder unexclude
第2步 : 在所有主人身上升级等.
$ 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排除列表.
$ atomic-openshift-excluder exclude
升级策略没有这种强制性,只有在推荐时才需要升级,可以使用以下命令进行检查.
$ oadm policy reconcile-cluster-roles
在大多数情况下,我们不会需要更新策略定义.
节点组件的升级
主更新完成后,我们可以开始升级节点.需要记住的一点是,升级期应该很短,以避免群集中的任何问题.
第1步 : 从要执行升级的所有节点中删除所有原子OpenShift软件包.
$ atomic-openshift-excluder unexclude
第2步 : 接下来,在升级之前禁用节点调度.
$ oadm manage-node< node name> --schedulable = false
第3步 : 将所有节点从当前主机复制到另一个主机.
$ oadm drain< node name> --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< 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