本次openshift安装使用最简单便捷的单节点安装,适用于本地开发及测试
OpenShift是红帽公司2015年开始推出的一个开源容器应用平台,是一款Paas(平台即服务)平台的产品,底层以docker为容器引擎,kubernetes来做编排,部署快捷,功能丰富。
本文包含了openshift的安装及openshift如何开机自启和openshift常用命令等内容!下面就直接开始一系列的安装操作!
基础环境:
系统:Centos7.6.1810
内存:8G(勉强够用)
[root@cpe-172-250-210-30 opt]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
关闭防火墙和selinux
$ sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
$ systemctl stop firewalld
$ systemctl disable firewalld
安装docker
$ yum install -y yum-utils
$ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
$ yum -y install docker-ce
docker的安装过程就不详细说了,如果有需要,看之前写的笔记吧,这个就不单独写博客了
文档:docker-yum安装详解
配置docker私有仓库地址
因为openshift安装成功后,会自行启动一个registry的私有仓库镜像以便使用,为了之后不用重新配置后还要重启docker,所以在此先行配置
集群自动启动的registry仓库地址就是172.30.x.x,所以如下配置
$ cat /etc/docker/daemon.json
{
"insecure-registries": ["172.30.0.0/16"]
}
$ systemctl daemon-reload
$ systemctl start docker
$ systemctl enable docker
下载openshift
命令下载即可,如果要下载其他版本,可以去openshift的GitHub项目中下载:https://github.com/openshift/origin/releases
$ cd /opt/
$ wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-server-v3.11.0-0cbc58b-linux-64bit.tar.gz
解压及修改目录名称
$ tar -zxvf openshift-origin-server-v3.11.0-0cbc58b-linux-64bit.tar.gz
$ mv openshift-origin-server-v3.11.0-0cbc58b-linux-64bit /opt/openshift-server-v3.11.0
修改/etc/profile,加入环境变量
PATH=$PATH:/opt/openshift-server-v3.11.0/
$ source /etc/profile
这里有一点需要注意:启动集群会在当前目录下创建集群配置文件等信息,所以要确保执行启动命令时,所在目录是你想要的目录(相当于安装目录了)
$ cd /opt/
$ oc cluster up --skip-registry-check=true --public-hostname="172.250.210.30" --no-proxy="172.250.210.30"
参数介绍:
openshift默认用户:
- system:admin 使用密钥,无密码
- developer/developer
- admin/admin
到这里一个简单的openshift集群已经完成了!
命令行登录集群:
$ oc login -u system:admin 系统管理员用户,可以查询到所有信息
$ oc login -u admin -p admin 普通用户登录方式
查看环境services等信息
[root@cpe-172-250-210-30 ~]# oc get all
NAME READY STATUS RESTARTS AGE
pod/docker-registry-1-q74b8 1/1 Running 1 1d
pod/persistent-volume-setup-mzc8n 0/1 Completed 0 1d
pod/router-1-hnrpc 1/1 Running 1 1d
NAME DESIRED CURRENT READY AGE
replicationcontroller/docker-registry-1 1 1 1 1d
replicationcontroller/router-1 1 1 1 1d
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/docker-registry ClusterIP 172.30.1.1 <none> 5000/TCP 1d
service/kubernetes ClusterIP 172.30.0.1 <none> 443/TCP 1d
service/router ClusterIP 172.30.119.137 <none> 80/TCP,443/TCP,1936/TCP 1d
NAME DESIRED SUCCESSFUL AGE
job.batch/persistent-volume-setup 1 1 1d
NAME REVISION DESIRED CURRENT TRIGGERED BY
deploymentconfig.apps.openshift.io/docker-registry 1 1 1 config
deploymentconfig.apps.openshift.io/router 1 1 1 config
从输出的信息中可以查看到配置的有私有仓库replicationcontroller/docker-registry-1
查看镜像
-n 代表命名空间
看起来这些镜像应该也都是现从openshift的仓库中拉下来的,本地的这个相当于转发仓库
$ oc get all -n openshift
获取镜像测试
[root@cpe-172-250-210-30 ~]# docker pull 172.30.1.1:5000/openshift/nginx
Using default tag: latest
Error response from daemon: unauthorized: authentication required
这样直接去获取镜像,输出Error response from daemon: unauthorized: authentication required
,由此可见,获取镜像还需要用户验证,故:
获取用户token(任一用户均可)
[root@cpe-172-250-210-30 ~]# oc login -u system -p admin
Login successful.
You don't have any projects. You can try to create a new project, by running
oc new-project <projectname>
[root@cpe-172-250-210-30 ~]# oc whoami -t
8zDcvQGrS-zy0A9Q-ugXGZ6kIr8zkuKNsLWf5l73iQk
登录docker-registry仓库
[root@cpe-172-250-210-30 ~]# docker login 172.30.1.1:5000
Username: system
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
重新获取测试
[root@cpe-172-250-210-30 ~]# docker pull 172.30.1.1:5000/openshift/nginx
Using default tag: latest
latest: Pulling from openshift/nginx
ab5ef0e58194: Extracting [> ] 557.1kB/75.78MB
b04f3cd8f5dc: Download complete
………………
获取成功
如果需要开机自启,则可以在/etc/rc.d/rc.local中添加上面集群启动时的命令,就可以实现了
(注意不同环境下需要修改oc命令所在路径和服务器IP)
/opt/openshift-server-v3.11.0/oc cluster up --skip-registry-check=true --public-hostname="172.250.210.30" --no-proxy="172.250.210.30"
用户相关命令
oc login -u 用户-p 密码 登陆集群
oc logout 登出集群
oc login -u system:admin 系统管理员登录
oc create user admin 创建用户
oc adm policy add-cluster-role-to-user cluster-admin admin 赋予普通用户系统管理员权限
oc whoami 查看当前用户(-t 查看token)
oc get users 查看集群用户
集群状态相关命令
oc cluster up 启动集群
oc cluster down 停止集群
oc status 查看集群状态
oc get all 获取环境所有信息
oc get pod 列出集群pod
oc get images 列出集群docker镜像
oc logs -f podname 查看pod日志
oc get project 查询项目列表
oc project <project_name> 切换到项目
oc rsh <project_name> 到容器中执行命令(相当于docker exec -ti)