如何在CentOS 7上设置OpenShift Origin
OpenShift Origin是开源上游项目,可为OpenShift提供OpenShift,Red Hat的Docker应用程序平台。
它为Python,PHP,Perl,Node.js,Ruby和Java提供了支持,并且可以扩展,以便用户可以为其他语言添加支持。
根据所需的情况,可以自动或者手动缩放分配用于应用的资源,以便随着需求的增加,没有劣化的性能。
OpenShift通过Deltacloud API提供可移植性,因此客户可以将部署迁移到其他云计算供应商环境。
OpenShift通过利用Docker和Kubernetes提供,为我们提供具有自定义,可重用的应用程序镜像的能力。
OpenShift设计为高可用性可扩展的应用平台。
正确配置时,大型OpenShift部署可以在需求增加时提供一种简单的方法来扩展应用程序,同时提供零停机时间。
通过多个数据中心位置的OpenShift主机集群,我们可以在整个数据中心存活下来。
在本文中,我们将在其上将其安装和配置显示其安装和配置,其中包含最少的软件包。
准备工作
在具有外部ETCD的高度可用的OpenShift Origin集群中,主主机应具有1个CPU内核,每个1000个POD都需要1.5 GB内存。
因此,除了2 CPU核心主机和16 GB的内存的主机主机的最低要求外,2000个POD的OpenShift Origin集群中建议大小为2 CPU核心和3 GB的内存。
OpenShift Origin需要在环境中完成功能齐全的DNS服务器。
这是一个独立的主机运行DNS软件,可以为在平台上运行的主机和容器提供名称分辨率。
让我们设置DNS来解析主机并使用VM上的域设置FQDN。
配置在"/etc/selinux/config"文件中定位的selinuxtype =如果尚未完成,因为必须在安装OpenShift OUSION之前在所有服务器上启用安全增强的Linux(SELinux),因为安装将失败。
# vi /etc/selinux/config
确保使用以下命令使用最新的更新和安全修补程序更新系统。
# yum update -y
安装Docker.
我们有三个选项来安装OpenShift,该选项是卷曲到shell,便携式安装程序或者从源安装。
在本文中,我们将使用Docker从源安装OpenShift源。
运行以下命令以安装Docker,以及如果尚未安装在系统上,则执行此设置,如"Vim"编辑器和"Wget"实用程序所需的其他依赖项。
# yum install docker wget vim -y
安装完成后,我们需要将其配置为信任注册表,通过在命令行编辑器中打开"/etc/sysconfig/docker"文件,我们将使用OpenShift镜像。
# vim /etc/sysconfig/docker
# INSECURE_REGISTRY='--insecure-registry' NSECURE_REGISTRY='--insecure-registry 192.168.0.0/16'
使用以下命令保存并关闭配置文件,然后重新启动Docker服务。
# systemctl restart docker.service
安装和配置OpenShift
一旦我们有一个Docker服务,现在我们将要安装OpenShift以运行作为由SystemD管理的独立过程。
让我们在"/TMP"目录中运行以下命令以从Github下载OpenShift二进制文件。
# cd /tmp
# wget https://github.com/openshift/origin/releases/download/v1.4.1/openshift-origin-server-v1.4.1-3f9807a-linux-64bit.tar.gz
然后将包和将目录提取到提取的文件夹中以将所有二进制文件移动到"/usr/local/sbin"目录中。
# tar -zxf openshift-origin-server-*.tar.gz
# cd openshift-origin-server-v1.4.1+3f9807a-linux-64bit/
# mv k* o* /usr/local/sbin/
接下来,我们将通过放置公共和私有IP地址来创建一个启动脚本和系统文件。
# vim /usr/local/bin/start_openshift.sh
#!/bin/bash cd /opt/openshift/ openshift start --public-master='https://:8443' --master='https://:8443'
保存并关闭文件,然后将以下内容放在systemd中的新创建的文件中。
# vim /etc/systemd/system/openshift.service
[Unit] Description=OpenShift Origin Server [Service] Type=simple ExecStart=/usr/local/bin/start_openshift.sh
就是这样,现在保存文件并更改此文件的权限以使其可执行,然后加载新单元文件,以便它可以是功能性的。
# chmod u+x /usr/local/bin/start_openshift.sh
# mkdir /opt/openshift/
# systemctl daemon-reload
重新加载守护程序后,使用下面的命令启动OpenShift服务,并确认其状态是否处于活动状态。
# systemctl start openshift
# systemctl status openshift
现在,OpenShift服务已启动并运行,以远程管理OpenShift安装,并访问其应用程序,TCP端口80,443和8443需要在防火墙中打开。
# firewall-cmd --zone=public --add-port=80/tcp
# firewall-cmd --zone=public --add-port=443/tcp
# firewall-cmd --zone=public --add-port=8443/tcp
添加OpenShift路由器和注册表
现在我们需要安装OpenShift路由器,以便它可以通过公共IP地址提供应用程序。
OpenShift使用Docker注册表存储Docker镜像以便更容易管理应用程序生命周期,路由器将根据其域名路由到特定应用程序的请求。
因此,首先,我们需要告诉CLI工具,其中我们的设置和CA证书,验证我们的新OpenShift集群。
让我们将以下行添加到"/Root/.bashrc",以便在切换到root用户时它们将加载。
# export KUBECONFIG=/opt/openshift/openshift.local.config/master/admin.kubeconfig
# export CURL_CA_BUNDLE=/opt/openshift/openshift.local.config/master/ca.crt
重新加载".bashrc"以更新设置。
# source /root/.bashrc
然后使用以下命令登录群集。
# oc login -u system:admin
Logged into "https://YOUR_SERVER_IP:8443" as "system:admin" using existing credentials. You have access to the following projects and can switch between them with 'oc project ': * default kube-system openshift openshift-infra Using project "default".
我们已成功添加路由器,现在添加注册表,使用如下所示的命令。
# oadm policy add-scc-to-user hostnetwork -z router
# oadm router
info: password for stats user admin has been set to s0iOOpIcnW --> Creating router router ... serviceaccount "router" created clusterrolebinding "router-router-role" created deploymentconfig "router" created service "router" created --> Success
# oadm registry
--> Creating registry registry ... serviceaccount "registry" created clusterrolebinding "registry-registry-role" created deploymentconfig "docker-registry" created service "docker-registry" created --> Success
访问OpenShift Origin.
OpenShift安装现已完成。
我们可以通过访问Web浏览器中的以下URL来测试OpenShift部署。
https://your_servers_ip:8443
系统将提示我们使用OpenShift登录屏幕。
默认情况下,OpenShift允许我们使用任何用户名和密码组合登录,并自动为我们创建帐户。
然后,我们可以访问创建项目和应用程序。
我们将使用用户名的"ks"创建一个帐户,如图所示。
在OpenShift中创建新项目
成功登录后,系统将提示我们创建一个新项目。
项目包含一个或者多个相关的应用程序。
让我们创建一个测试项目,以便我们可以部署我们的第一个应用程序。
接下来将名称提供给新项目,其中显示名称和简短说明。
创建新项目后,下一个屏幕将看到我们可以看到"添加到项目"屏幕,我们可以将我们的应用程序镜像添加到OpenShift以使其准备好部署。
在这种情况下,我们将通过单击"部署镜像"选项卡部署现有镜像。
由于OpenShift使用Docker,这将允许我们直接从Docker集线器或者任何其他注册表中提取镜像。
要测试,我们将通过将"OpenShift/Hello-OpenShift"镜像输入到"镜像名称"字段中使用,如下图所示。
单击"搜索"图标,右侧到镜像名称,然后单击底部的"创建"按钮,其中默认选项具有基本镜像,无需任何另外的配置。
单击"项目概述",查看应用程序的状态。
创造新路线
现在我们将创建新的路线以使我们通过先前创建的OpenShift路由器访问的应用程序。
为此,请单击左侧的"应用程序"菜单,然后转到路由。
路由是一种使应用程序公开可见的方法。
单击"创建路由"按钮后,我们需要输入以下信息,其中包含唯一名称的路由器手表向服务路由流量的项目,主机名和路径。
在此之后,OpenShift将生成要用于访问应用程序的主机名。
我们需要在DNS中创建一个通配符的一个记录,以便在制作中将所有应用程序自动路由到OpenShift集群。
*.openshift.yourtheitroad.com A
将生成的主机名添加到本地主机文件中,以在Windows'C:\Windows \ System32 \ drivers \ etc \ hosts上的Linux'/etc/hosts'中测试。
将新应用程序添加到OpenShift Origin
OpenShift Origin提供了通过源到镜像工具链中运行构建的工具以及从预定义的构建器镜像中构建源代码。
要创建一个新的应用程序,该应用程序将构建器镜像与example源代码组合以创建新的可部署节点.js镜像在连接管理用户后运行以下命令并将其更改为默认项目。
# oc new-app openshift/nodejs-010-centos7~https://github.com/openshift/nodejs-ex.git
--> Found Docker image b3b1ce7 (3 months old) from Docker Hub for "openshift/nodejs-010-centos7" Node.js 0.10 ----------- Platform for building and running Node.js 0.10 applications Tags: builder, nodejs, nodejs010 * An image stream will be created as "nodejs-010-centos7:latest" that will track the source image * A source build using source code from https://github.com/openshift/nodejs-ex.git will be created * The resulting image will be pushed to image stream "nodejs-ex:latest" * Every time "nodejs-010-centos7:latest" changes a new build will be triggered * This image will be deployed in deployment config "nodejs-ex" * Port 8080/tcp will be load balanced by service "nodejs-ex" * Other containers can access this service through the hostname "nodejs-ex" --> Creating resources ... imagestream "nodejs-010-centos7" created imagestream "nodejs-ex" created buildconfig "nodejs-ex" created deploymentconfig "nodejs-ex" created service "nodejs-ex" created --> Success Build scheduled, use 'oc logs -f bc/nodejs-ex' to track its progress. Run 'oc status' to view your app.
将使用提供的镜像和提供的GIT存储库的主分支自动触发构建。
要获取构建状态,请运行以下命令。
# oc status
我们可以了解有关CLI中可用的命令的更多信息。
#oc help
现在,我们应该通过打开Web浏览器中的OpenShift生成的链接来查看测试应用程序。
我们还可以从OpenShift Web控制台查看新已部署的应用程序的状态。
单击任何已安装的应用程序,以检查有关IP,路由和服务端口的更多详细信息。