本节书摘来自华章出版社《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一书中的第2章,第2.1节,作者 陈耿 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看
第2章 初探OpenShift容器云
在前面的章节我们一起探讨了容器云的概念以及OpenShift容器云项目的情况。理论联系实际,为了对OpenShift容器云有更直接的认识,本章将会帮助你快速地在自己的个人电脑上搭建一个可用的OpenShift环境,并在这个环境上运行我们的第一个容器应用。这里假设你对Linux及Docker已经有了基本的了解,并掌握了基本的使用命令。对Docker不熟悉的读者,请参考dockone.io的Docker入门教程(http://dockone.io/article/111)。
2.1 启动OpenShift Origin
OpenShift支持运行在基础架构之上,同时支持多种安装方式。
手工安装。用户下载OpenShift的二进制包,手动进行配置和启动。
快速安装。通过OpenShift提供的交互式Installer进行安装。
高级安装。在多节点集群的环境中,OpenShift可通过Ansible对多台集群主机进行自动化安装和配置。
Docker镜像。通过运行OpenShift的Docker镜像启动一个All-in-One的OpenShift容器实例。这适合开发测试人员快速部署和验证。
OpenShf?it Origin 1.3.0提供了一个全新的命令oc cluster up帮助开发用户快速启动一个可用的OpenShift集群。
为了尽可能了解OpenShift的细节,这里使用手动安装方式快速启动一个可用的Open-Shift Origin实例,这个方法也适用于开发和测试。在实际的多节点集群环境中,OpenShift的安装一般会通过高级安装完成,即通过Ansible完成。关于安装的更多信息可以参考OpenShift Origin的安装文档。
OpenShift Origin的安装文档:https://docs.openshift.org/latest/install_conf?ig/index.html。
2.1.1 准备主机
为了运行OpenShift Origin,需要一台运行Linux操作系统的主机,可以是物理机或是虚拟机。为了试验方便,推荐使用虚拟机。KVM、VMWare或VirtualBox的虚拟机均可。表2-1是推荐的最低配置。
2.1.2 准备操作系统
请至CentOS Linux主页下载CentOS Linux 7.2的ISO镜像。如果镜像下载的网速太慢,也可从中国科技大学提供的开源镜像站点下载。
CentOS主页:https://www.centos.org/download/。
中国科技大学镜像站点:https://mirrors.ustc.edu.cn/centos/7.2.1511/isos/x86_64/。
按提示为主机安装CentOS操作系统。安装时选择最小安装模式(Minimal模式)。
2.1.3 操作系统配置
操作系统安装完毕后,以root用户登录系统。请确认主机已经获取了IP地址。本例中,笔者使用的主机的IP地址为192.168.172.167。
[root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP>mtu 65536 qdiscnoqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdiscpfifo_fast state UP qlen 1000
link/ether 00:0c:29:df:3e:cb brdff:ff:ff:ff:ff:ff
inet 192.168.172.167/24 brd 192.168.172.255 scope global dynamic eno16777736
valid_lft 1286sec preferred_lft 1286sec
inet6 fe80::20c:29ff:fedf:3ecb/64 scope link
OpenShift集群的正常运行需要一个可被解析的主机名。本例配置的主机名为master.example.com。
[root@master ~]# hostnamectl set-hostname master.example.com
确认主机名是否能被正常解析。如不能解析,请修改/etc/hosts文件添加主机名的解析,将主机名指向实验主机的IP地址。
2.1.4 安装Docker
OpenShift平台使用的容器引擎为Docker,因此需要安装Docker软件包。
[root@master ~]# yum install -y docker
安装完毕后启动Docker服务,并配置为开机自启动。
[root@master ~]# systemctl start docker
[root@master ~]# systemctl enable docker
由于国内访问DockerHub下载镜像的速度过于缓慢,可以使用中国科技大学的Docker-Hub镜像服务器进行加速。编辑/etc/sysconfig/docker文件,为DOCKER_OPTS变量追加参数--registry-mirror=https://docker.mirrors.ustc.edu.cn。修改后变量值大致如下:
OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://docker.mirrors.ustc.edu.cn'
修改完Docker配置文件后,重启Docker进程使修改的配置生效。
[root@master ~]# systemctl restart docker
此时可以尝试运行一个DockerHub上的镜像,测试Docker是否正常工作。在下面的例子里,笔者运行了一个名为hello-openshift的镜像。这个镜像中运行了一个用go语言编写的小程序。如果一切正常,容器将成功启动,并监听8080及8888端口。
[root@master ~]# docker run -it openshift/hello-openshift
Unable to find image 'openshift/hello-openshift:latest' locally
Trying to pull repository docker.io/openshift/hello-openshift ...
latest: Pulling from docker.io/openshift/hello-openshift
a3ed95caeb02: Pull complete
a8a87b6280f5: Pull complete
Digest: sha256:fe89d47f566947617019a15eef50d97c8c20d6c9a5aba0d3cb45f84d2085e4e3
Status: Downloaded newer image for docker.io/openshift/hello-openshift:latest
serving on 8888
serving on 8080
测试完毕后,按Ctrl+c组合键停止运行中的容器。如果Docker无法找到容器镜像或者出现了其他错误,则检查前序执行的安装配置步骤。
2.1.5 下载OpenShift Origin安装包
从OpenShift Origin的GitHub仓库中下载OpenShift Origin的二进制执行文件。本书示例所用的OpenShift Origin版本为1.3.0,文件为
openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit.tar.gz
将下载好的OpenShift二进制包拷贝到主机的/opt目录下。
本例中使用的OpenShift Origin二进制执行文件包的下载地址如下:https://github.com/
openshift/origin/releases/download/v1.3.0/openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit.tar.gz。
2.1.6 安装及启动OpenShift Origin
进入/opt目录,解压下载好的OpenShift Origin二进制安装包。
[root@master /]# cd /opt/
[root@master opt]# tar zxvf openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit.tar.gz
[root@master opt]# ln -s openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit /opt/openshift
将OpenShift的相关命令追加至系统的PATH环境变量中。编辑/etc/prof?ile文件,添加如下文本内容至文件末尾。
PATH=$PATH:/opt/openshift/
执行source命令使修改的配置生效。
[root@master opt]# source /etc/profile
修改完毕后,可以测试Shell能否找到openshift命令。执行openshift version命令查看当前OpenShf?it的版本。通过下面的输出可以看到当前使用的OpenShift版本是1.3.0,搭配的Kubernetes的版本为1.3.0,etcd为2.3.0。
[root@masteropenshift]# openshift version
openshift v1.3.0
kubernetes v1.3.0+52492b4
etcd 2.3.0+git
进入/opt/openshift目录。执行openshift start命令启动OpenShift Origin。
[root@master opt]# cd /opt/openshift
[root@masteropenshift]# openshift start
命令执行后控制台将有日志输出,当日志输出停止后即表示OpenShift服务启动完毕。
2.1.7 登录OpenShift Origin控制台
OpenShift Origin启动完毕后,在浏览器中访问网址https://master.example.com:8443,即可看见OpenShift的Web控制台,如图2-1所示。
如浏览器提示证书不可信,请忽略此告警并继续。推荐使用FireFox及Chrome浏览器访问Web控制台。
请使用系统用户dev登录,用户密码为dev。成功登录后将可以看到OpenShift的欢迎页面,如图2-2所示。
恭喜您!您已经成功踏入了容器云的世界!