OpenShift笔记(一):OpenShift手动安装
📅 2017-11-15 | 🖱️
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的版本。
1yum install -y yum-utils device-mapper-persistent-data lvm2
2yum-config-manager \
3 --add-repo \
4 https://download.docker.com/linux/centos/docker-ce.repo
5
6yum makecache fast
7
8yum install -y --setopt=obsoletes=0 \
9 docker-ce-17.03.2.ce-1.el7.centos \
10 docker-ce-selinux-17.03.2.ce-1.el7.centos
11
12systemctl start docker
13systemctl enable docker
修改docker的cgroup驱动为systemd, 即修改或创建/etc/docker/daemon.json,加入下面的内容:
1{
2 "exec-opts": ["native.cgroupdriver=systemd"]
3}
重启docker:
1systemctl restart docker
安装OpenShift Origin #
首先下载OpenShift Origin的二进制文件:
1cd /opt
2wget https://github.com/openshift/origin/releases/download/v3.6.1/openshift-origin-server-v3.6.1-008f2d5-linux-64bit.tar.gz
3tar -zxvf openshift-origin-server-v3.6.1-008f2d5-linux-64bit.tar.gz
4mv openshift-origin-server-v3.6.1-008f2d5-linux-64bit openshift
先看一下下载的二进制文件:
1cd /opt/openshift
2ls
3kube-apiserver kubectl kubelet kube-scheduler oadm openshift
4kube-controller-manager kubefed kube-proxy LICENSE oc README.md
一般以上的二进制文件是我们所熟悉,即Kubernetes的二级制文件,另外还有oadm, openshift, oc 3个二进制可执行文件。
将/opt/openshift加入到PATH环境变量。
1vi /etc/profile
2
3PATH=$PATH:/opt/openshift
执行source /etc/profile
使环境变量生效。
查看一下openshift的版本:
1openshift version
2openshift v3.6.1+008f2d5
3kubernetes v1.6.1+5115d708d7
4etcd 3.2.1
可以看出openshift 3.6.1使用的Kubernetes的版本为1.6.1,etcd的版本为3.2.1。
启动openshift:
1cd /opt/openshift
2./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时报了下面的错误:
1Image nginx runs as the root user which might not be permitted by your cluster administrator.
这是因为OpenShift对容器的安全要求更加严格,OpenShift默认在启动容器时使用的是非root用户,docker hub中的nginx镜像默认是以root用户的身份执行容器内的程序的。