Openshift教程

OpenShift 集群

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:
      <variable_name1>: "<value1>"
      <variable_name2>: "<value2>"
   node:
      <variable_name1>: "<value1>"
这里,我们有角色特定的变量,如果你想设置一些特定的变量,可以定义它。
完成后,我们可以使用以下命令验证安装。
$ 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 </path/to/file> 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 集群日志只不过是从集群的 master 和 node 机器生成的日志。这些可以管理任何类型的日志,从服务器日志、主日志、容器日志、pod 日志等开始。容器日志管理有多种技术和应用。
列出的工具很少,可以实现日志管理。
流利 麋鹿 卡布纳 Nagios Splunk
ELK 堆栈-此堆栈在尝试从所有节点收集日志并以系统格式呈现它们时很有用。 ELK stack 主要分为三大类。
ElasticSearch-主要负责从所有容器中收集信息并将其放入中央位置。
Fluentd-用于将收集的日志提供给 elasticsearch 容器引擎。
Kibana-一个图形界面,用于将收集到的数据显示为图形界面中的有用信息。
需要注意的一个关键点是,当这个系统部署在集群上时,它开始从所有节点收集日志。

日志诊断

OpenShift 有一个带有 OC 的内置 oc adm dignostics 命令,可用于分析多种错误情况。这个工具可以作为集群管理员从 master 使用。此实用程序对于排除故障和诊断已知问题非常有用。这在主客户端和节点上运行。
如果在没有任何参数或标志的情况下运行,它将查找客户端、服务器和节点机器的配置文件,并将它们用于诊断。可以通过传递以下参数来单独运行诊断-
聚合日志 分析日志 集群注册表 ClusterRoleBindings 集群角色 集群路由器 配置上下文 DiagnosticPod MasterConfigCheck 主节点 MetricsApiProxy 网络检查 节点配置检查 节点定义 ServiceExternalIPs 单位状态
您可以使用以下命令简单地运行它们。
$ oc adm diagnostics <DiagnosticName>

升级集群

集群升级涉及升级集群内的多项内容,并使用新组件和升级来更新集群。这涉及-
主组件的升级 节点组件升级 政策升级 路线升级 图像流的升级
为了执行所有这些升级,我们需要首先准备好快速安装程序或实用程序。为此,我们需要更新以下实用程序-
atomic-openshift-utils atomic-openshift-excluder atomic-openshift-docker-excluder etcd 包
在开始升级之前,我们需要在 master 机器上备份 etcd,这可以使用以下命令来完成。
$ ETCD_DATA_DIR = /var/lib/origin/openshift.local.etcd
$ etcdctl backup \
  --data-dir $ETCD_DATA_DIR \
  --backup-dir $ETCD_DATA_DIR.bak.<date>

主组件升级

在 OpenShift master 中,我们通过更新 etcd 文件开始升级,然后转到 Docker。最后,我们运行自动执行器,使集群进入所需的位置。但是,在开始升级之前,我们需要首先激活每个 master 上的原子 openshift 包。这可以使用以下命令完成。
步骤 1-删除 atomic-openshift 包
$ atomic-openshift-excluder unexclude
第 2 步-在所有 master 上升级 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 排除列表中。
$ 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
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4