- OpenShift 教程
- OpenShift - 首頁
- OpenShift - 概述
- OpenShift - 型別
- OpenShift - 架構
- OpenShift - 環境設定
- OpenShift - 基本概念
- OpenShift - 快速入門
- OpenShift - 自動構建
- OpenShift - 命令列介面 (CLI)
- OpenShift - CLI 操作
- OpenShift - 叢集
- OpenShift - 應用伸縮
- OpenShift - 管理
- OpenShift - Docker 和 Kubernetes
- OpenShift - 安全性
- OpenShift 有用資源
- OpenShift - 快速指南
- OpenShift - 有用資源
- OpenShift - 討論
OpenShift - 叢集
OpenShift 使用兩種安裝方法來設定 OpenShift 叢集。
- 快速安裝方法
- 高階配置方法
設定叢集
快速安裝方法
此方法用於執行快速無人值守的叢集設定配置。要使用此方法,我們需要首先安裝安裝程式。這可以透過執行以下命令來完成。
互動式方法
$ atomic-openshift-installer install
當用戶希望執行互動式設定時,此方法非常有用。
無人值守安裝方法
當用戶希望設定無人值守的安裝方法時,可以使用此方法,使用者可以在~/.config/openshift/下定義一個配置檔案 yaml 檔案,並將其命名為 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 hosts 檔案中,新增關於新節點的變數詳細資訊,如下所示。
[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 日誌等等。有多種技術和應用程式可用於容器日誌管理。
列出了一些可以用於日誌管理的工具。
- Fluentd
- ELK
- Kabana
- Nagios
- Splunk
ELK 堆疊 - 此堆疊在嘗試從所有節點收集日誌並以系統化格式呈現它們時非常有用。ELK 堆疊主要分為三大類。
ElasticSearch - 主要負責從所有容器收集資訊並將其放入中心位置。
Fluentd - 用於將收集的日誌饋送到 Elasticsearch 容器引擎。
Kibana - 用於將收集的資料作為有用的資訊以圖形介面的形式呈現的圖形介面。
需要注意的是,當此系統部署在叢集上時,它會開始從所有節點收集日誌。
日誌診斷
OpenShift 具有一個內建的oc adm diagnostics命令,可用於分析多種錯誤情況。叢集管理員可以從主節點使用此工具。此實用程式在故障排除和診斷已知問題方面非常有用。它在主客戶端和節點上執行。
如果沒有任何引數或標誌執行,它將查詢客戶端、伺服器和節點機器的配置檔案,並將其用於診斷。可以透過傳遞以下引數來單獨執行診斷:
- 聚合日誌記錄
- 分析日誌
- 叢集登錄檔
- 叢集角色繫結
- 叢集角色
- 叢集路由器
- 配置上下文
- 診斷 Pod
- 主節點配置檢查
- 主節點
- 指標 API 代理
- 網路檢查
- 節點配置檢查
- 節點定義
- 服務外部 IP
- 單元狀態
可以使用以下命令簡單地執行它們。
$ oc adm diagnostics <DiagnosticName>
升級叢集
叢集升級涉及升級叢集中的多個內容,並使叢集更新為新的元件和升級。這包括:
- 主元件升級
- 節點元件升級
- 策略升級
- 路由升級
- 映象流升級
為了執行所有這些升級,我們需要首先準備好快速安裝程式或實用程式。為此,我們需要更新以下實用程式:
- atomic-openshift-utils
- atomic-openshift-excluder
- atomic-openshift-docker-excluder
- etcd 包
在開始升級之前,我們需要備份主機器上的 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 主節點中,我們透過更新 etcd 檔案然後轉向 Docker 來啟動升級。最後,我們執行自動化執行器以將叢集置於所需位置。但是,在開始升級之前,我們需要首先在每個主節點上啟用 atomic 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 排除列表中。
$ atomic-openshift-excluder exclude
沒有必要升級策略,只有在推薦時才需要升級,可以使用以下命令檢查。
$ oadm policy reconcile-cluster-roles
在大多數情況下,我們不需要更新策略定義。
節點元件升級
主節點更新完成後,我們可以開始升級節點。需要注意的是,升級時間應較短,以避免叢集出現任何問題。
步驟 1 - 從您希望執行升級的所有節點中刪除所有 atomic 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 executer 將 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