Centos7中openshift_3.11单节点安装及配置开机自启详解

本次openshift安装使用最简单便捷的单节点安装,适用于本地开发及测试

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"

参数介绍:

  • –skip-registry-check 代表是否跳过Docker守护进程注册表什么的检查
  • –public-hostname 代表暴露在外部供访问的地址
  • –no-proxy 代表哪些地址不需要转发(如果不加这个,有可能部署成功后访问地址会转发到 localhost 127.0.0.1)

启动成功的最后会有这个输出

访问测试

http://主机IP:8443

openshift默认用户:

  • system:admin 使用密钥,无密码
  • developer/developer
  • admin/admin

到这里一个简单的openshift集群已经完成了!

四、扩展内容

(一)集群docker-registry测试

命令行登录集群:

$ 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
………………

获取成功

(二)配置openshift开机自启

如果需要开机自启,则可以在/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)

猜你喜欢

转载自blog.csdn.net/weixin_43860781/article/details/109388365