- 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 環境,需要擁有一個有效的 Red Hat 賬戶。由於 OpenShift 基於 Kubernetes 主節點和工作節點架構,我們需要在不同的機器上分別搭建主節點和工作節點,其中一臺機器作為主節點,其他機器作為工作節點。為了搭建兩者,需要滿足最低系統要求。
主節點配置
以下是主節點配置的最低系統要求。
一個基礎機器,可以是物理機、虛擬機器或雲環境中的任何一種。
至少 Linux 7 及其所需軟體包。
2 個 CPU 核心。
至少 8 GB RAM。
30 GB 內部硬碟空間。
工作節點配置
- 與主節點相同的物理機或虛擬機器映象。
- 機器上至少安裝 Linux 7。
- 安裝 Docker,版本不低於 1.6。
- 1 個 CPU 核心。
- 8 GB RAM。
- 15 GB 硬碟空間用於存放映象,15 GB 硬碟空間用於儲存映象。
OpenShift 搭建步驟
在下面的描述中,我們將搭建一個 OpenShift 實驗環境,之後可以擴充套件到更大的叢集。由於 OpenShift 需要主節點和工作節點,我們需要至少兩臺機器,可以是雲伺服器、物理機或虛擬機器。
步驟 1 - 首先在兩臺機器上安裝 Linux,最低版本應為 Linux 7。如果擁有有效的 Red Hat 訂閱,可以使用以下命令進行安裝。
# subscription-manager repos --disable = "*"
# subscription-manager repos --enable = "rhel-7-server-rpms"
# subscription-manager repos --enable = "rhel-7-server-extras-rpms"
# subscription-manager repos --enable = "rhel-7-server-optional-rpms"
# subscription-manager repos --enable = "rhel-7-server-ose-3.0-rpms"
# yum install wget git net-tools bind-utils iptables-services bridge-utils
# yum install wget git net-tools bind-utils iptables-services bridge-utils
# yum install python-virtualenv
# yum install gcc
# yum install httpd-tools
# yum install docker
# yum update
在兩臺機器上安裝完上述基本軟體包後,下一步是在各自的機器上安裝 Docker。
步驟 2 - 配置 Docker,使其僅允許在本地網路上進行不安全的通訊。為此,編輯 `/etc/sysconfig` 目錄下的 Docker 檔案。如果該檔案不存在,則需要手動建立。
# vi /etc/sysconfig/docker OPTIONS = --selinux-enabled --insecure-registry 192.168.122.0/24
在主節點上配置 Docker 後,我們需要在兩臺機器之間建立免密碼通訊。為此,我們將使用公鑰和私鑰認證。
步驟 3 - 在主節點上生成金鑰,然後將 `id_rsa.pub` 金鑰複製到工作節點的授權金鑰檔案,可以使用以下命令完成。
# ssh-keygen
# ssh-copy-id -i .ssh/id_rsa.pub root@ose3-node.test.com
完成上述設定後,下一步是在主節點上安裝 OpenShift 版本 3。
步驟 4 - 在主節點上執行以下 curl 命令。
# sh <(curl -s https://install.openshift.com/ose)
以上命令將完成 OSV3 的安裝。下一步是在機器上配置 OpenShift V3。
如果無法直接從網際網路下載,則可以從 https://install.openshift.com/portable/oo-install-ose.tgz 下載為 tar 包,然後在本地主節點上執行安裝程式。
準備就緒後,我們需要開始在機器上實際配置 OSV3。此設定非常適用於測試實際生產環境,我們已準備好 LDAP 等其他內容。
步驟 5 - 在主節點上,配置 `/etc/openshift/master/master-config.yaml` 下面的程式碼。
# vi /etc/openshift/master/master-config.yaml identityProviders: - name: my_htpasswd_provider challenge: true login: true provider: apiVersion: v1 kind: HTPasswdPasswordIdentityProvider file: /root/users.htpasswd routingConfig: subdomain: testing.com
接下來,建立一個標準使用者作為預設管理員。
# htpasswd -c /root/users.htpasswd admin
步驟 6 - 由於 OpenShift 使用 Docker 映象倉庫來配置映象,我們需要配置 Docker 映象倉庫。這用於在構建後建立和儲存 Docker 映象。
使用以下命令在 OpenShift 工作節點上建立一個目錄。
# mkdir /images
接下來,使用預設的管理員憑據登入主節點,這些憑據在設定映象倉庫時建立。
# oc login Username: system:admin
切換到預設建立的專案。
# oc project default
步驟 7 - 建立一個 Docker 映象倉庫。
#echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"registry"}}' | oc create -f -
編輯使用者許可權。
#oc edit scc privileged users: - system:serviceaccount:openshift-infra:build-controller - system:serviceaccount:default:registry
建立和編輯映象倉庫。
#oadm registry --service-account = registry --
config = /etc/openshift/master/admin.kubeconfig --
credentials = /etc/openshift/master/openshift-registry.kubeconfig --
images = 'registry.access.redhat.com/openshift3/ose-${component}:${version}' --
mount-host = /images
步驟 8 - 建立預設路由。
預設情況下,OpenShift 使用 OpenVswitch 作為軟體網路。使用以下命令建立預設路由。這用於負載均衡和代理路由。路由器類似於 Docker 映象倉庫,也執行在映象倉庫中。
# echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f -
接下來,編輯使用者的許可權。
#oc edit scc privileged
users:
- system:serviceaccount:openshift-infra:build-controller
- system:serviceaccount:default:registry
- system:serviceaccount:default:router
#oadm router router-1 --replicas = 1 --
credentials = '/etc/openshift/master/openshift-router.kubeconfig' --
images = 'registry.access.redhat.com/openshift3/ose-${component}:${version}'
步驟 9 - 配置 DNS。
為了處理 URL 請求,OpenShift 需要一個可用的 DNS 環境。此 DNS 配置需要建立一個萬用字元,這需要建立一個指向路由器的 DNS 萬用字元。
# yum install bind-utils bind
# systemctl start named
# systemctl enable named
vi /etc/named.conf
options {listen-on port 53 { 10.123.55.111; };
forwarders {
10.38.55.13;
;
};
zone "lab.com" IN {
type master;
file "/var/named/dynamic/test.com.zone";
allow-update { none; };
};
步驟 10 - 最後一步是在 OpenShift V3 主節點上設定 github 伺服器,這是可選的。這可以使用以下命令序列輕鬆完成。
#yum install curl openssh-server
#systemctl enable sshd
# systemctl start sshd
# firewall-cmd --permanent --add-service = http
# systemctl reload firewalld
#curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-
#yum install gitlab-ce
# gitlab-ctl reconfigure
完成上述設定後,您可以透過測試和部署應用程式進行驗證,我們將在後續章節中詳細瞭解。