在AWS中部署OpenShift平台

2022-02-20 02:36:24 字數 1998 閱讀 8215

openshift是redhat出品的paas平台。openshift做為paas平台最大的特點是它是完全容器化的paas平台,底層封裝了docker和kubernetes,上層暴露了對開發者友好的介面來完成對應用程式的整合、部署、彈性伸縮等任務。

docker提供了對打包和建立基於linux的輕量級容器的抽象。而kubernetes提供了多主機集群管理和docker容器編排。openshift基於docker和kubernetes加入了新的功能:

openshift直接提供支援的應用程式映象有:

openshift直接提供支援的資料庫映象有:

除此之外,openshift還讓你通過一鍵點選便生成相應的應用,比如幾秒之內搭建好乙個jenkins服務。包括以下:

從上圖可以看出,openshift的典型使用者分為兩種,開發人員和運維人員。開發人員可以通過現有的**管理工具和持續整合、交付工具利用openshift完成對應用程式的打包、部署、擴容操作。而運維人員可以利用現有的自動化工具實現對openshift平台的維護。

openshift中的kubernetes用來管理跨宿主機(或容器)的容器化應用程式,並提供部署、維護和應用程式擴容機制。對於乙個kubernetes集群來說,它包括乙個或多個master以及一組node。

master主機託管了api伺服器、controller manager伺服器以及etcd例項。master管理kubernetes集群中的節點並控制執行在節點上的pod。

node則提供了容器的執行時環境。kubernetes節點中的每個node會執行受master管理的服務,當然也包括docker、kubelet及serverice proxy服務。node可以為雲機器、物理系統或者虛擬系統。kubelet用來更新node上的執行的容器狀態。service proxy用於執行乙個簡單的網路**,來反映定義在node的api中的服務,從而使node可以跨後端進行簡單的tcp和udp流**。

如果想自己架設openshift平台作為商業用途,必須要獲取openshift enterprise的付費訂閱。目前openshift enterprise的最新版本為3.6版。對於master和node節點的系統要求如下。

master:

node:

需要乙個git server和能夠訪問該server的賬號。

下圖是乙個在aws中的openshift集群的示例。

在aws中部署openshift集群包括三個階段:

關於整個部署活動絕大多數都是可以自動化的。redhat提供了乙個github repo:openshift-ansible-contrib。openshift-ansible-contrib提供了將openshift集群部署到不同的cloud**商的解決方案,當然也包括了aws。裡面包含了相應的文件、**以及指令碼。redhat提供了乙個叫做openshift-ansible-playbooks的rpm包,openshift-ansible-contrib利用該rpm包來完成階段1和階段2,在階段3中我們可以利用一些現有的指令碼工具實現環境檢查和認證。

選擇部署的aws區域需要至少有三個可用區以及2個eip。該openshift平台需要新建三個公共子網和三個私有子網。

由於需要新建一大批的aws資源,所以必須要提供乙個有適當許可權的aws使用者,包括建立賬號、使用s3、route53、elb、ec2等。

六個子網需要在乙個vpc中。ansible指令碼會建立乙個nat gateway用來供內部的ec2例項訪問外網。同時也會建立8個security groups來限制不同的例項、elb和外部網路間的訪問。

openshift-ansible-contrib提供了部署基礎設施、安裝和配置openshift以及擴充套件router和registry的功能。執行ansible的機器必須是rhel7作業系統。具體的安裝過程可參見

安裝完畢後的環境檢查可以參見

vue在nginx中部署

本文主要介紹如何在nginx中部署vue前端。1 已經安裝好nginx,可以參考如下文章 2 已經打好vue的包,如果遇到問題,可以參考 好,下面上貨。1 首先把dist資料夾放在乙個路徑下,我放在這裡 2 修改nginx的配置檔案 新增如下server server root data xytes...

vue在nginx中部署

本文主要介紹如何在nginx中部署vue前端。本文閱讀前提 1 已經安裝好nginx,可以參考如下文章 2 已經打好vue的包,如果遇到問題,可以參考 好,下面上貨。1 首先把dist資料夾放在乙個路徑下,我放在這裡 2 修改nginx的配置檔案 新增如下server server root dat...

在docker中部署gitlab

docker pull gitlab gitlab ce 12.5.4 ce.0 2.在docker建立容器,讓gitlab跑起來 docker run d publish 8443 443 publish 10080 80 publish 1022 22 name gitlab restart a...