OpenShift是基于Docker和Kubernetes的开源容器云平台,其开源社区版本为OpenShift Origin。 OpenShift的安装方式有很多种:
- 使用二进制包手工安装
- 使用Openshift Installer快速安装
- 使用ansible进行多节点集群安装
- 使用All in One的Docker镜像启动一个OpenShift实例
本文作为我的OpenShift学习笔记的开篇,将首先学习使用二进制手动安装的方式快速启动一个OpenShift Origin实例用于学习和测试。
环境准备和Docker安装
准备一台CentOS 7.3主机,并在其上安装Docker。 这里安装是Docker 17.03.2的版本。
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum makecache fast
yum install -y --setopt=obsoletes=0 \
docker-ce-17.03.2.ce-1.el7.centos \
docker-ce-selinux-17.03.2.ce-1.el7.centos
systemctl start docker
systemctl enable docker修改docker的cgroup驱动为systemd, 即修改或创建/etc/docker/daemon.json,加入下面的内容:
{
"exec-opts": ["native.cgroupdriver=systemd"]
}重启docker:
systemctl restart docker安装OpenShift Origin
首先下载OpenShift Origin的二进制文件:
cd /opt
wget https://github.com/openshift/origin/releases/download/v3.6.1/openshift-origin-server-v3.6.1-008f2d5-linux-64bit.tar.gz
tar -zxvf openshift-origin-server-v3.6.1-008f2d5-linux-64bit.tar.gz
mv openshift-origin-server-v3.6.1-008f2d5-linux-64bit openshift先看一下下载的二进制文件:
cd /opt/openshift
ls
kube-apiserver kubectl kubelet kube-scheduler oadm openshift
kube-controller-manager kubefed kube-proxy LICENSE oc README.md一般以上的二进制文件是我们所熟悉,即Kubernetes的二级制文件,另外还有oadm, openshift, oc 3个二进制可执行文件。
将/opt/openshift加入到PATH环境变量。
vi /etc/profile
PATH=$PATH:/opt/openshift执行source /etc/profile使环境变量生效。
查看一下openshift的版本:
openshift version
openshift v3.6.1+008f2d5
kubernetes v1.6.1+5115d708d7
etcd 3.2.1可以看出openshift 3.6.1使用的Kubernetes的版本为1.6.1,etcd的版本为3.2.1。
启动openshift:
cd /opt/openshift
./openshift start --public-master=https://<ip>:8443控制台会打印很多log,另起一个终端会看到本地监听了8443端口。
浏览器打开http://<ip>:8443,打开登录页面后使用默认的用户名/密码 dev/dev登录即可。

OpenShift的项目
从登录到OpenShift的首页可以看出,首先要做的就是创建一个项目。 项目是OpenShift组织资源的方式。 OpenShift的用户可以将不同类型的相关资源放到一个项目中进行管理。 Openshift的管理员可以以项目为单位进行配额管理和网络隔离。
接下来我们创建一个名称为prj的项目后,prj项目的主页如下:

可以看一下左侧的菜单和Kubernetes的Dashboard的菜单挺像的,是Deployment, StatefulSet, Pod, Service这些Kubernetes中的资源对象。
当点击Add to Prject并在Tab菜单Deploy Image的image name输入框中直接输入nginx,尝试部署docker hub中最新的nginx时报了下面的错误:
Image nginx runs as the root user which might not be permitted by your cluster administrator.这是因为OpenShift对容器的安全要求更加严格,OpenShift默认在启动容器时使用的是非root用户,docker hub中的nginx镜像默认是以root用户的身份执行容器内的程序的。