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

简介: Centos7中单节点openshift_3.11安装及配置开机自启
在这里插入图片描述
OpenShift是红帽的云开发平台即服务(PaaS)。自由和开放源码的云计算平台使开发人员能够创建、测试和运行他们的应用程序,并且可以把它们部署到云中。OpenShift广泛支持多种编程语言和框架,如Java,Ruby和PHP等。另外它还提供了多种集成开发工具如Eclipse integration,JBoss Developer Studio和 Jenkins等。OpenShift 基于一个开源生态系统为移动应用,数据库服务等,提供支持。
OpenShift Online服务构建在Red Hat Enterprise Linux上。Red Hat Enterprise Linux提供集成应用程序,运行库和一个配置可伸缩的多用户单实例的操作系统,以满足企业级应用的各种需求。

①环境准备

IP 版本 运行内存 CPU
192.168.1.10 CentOS Linux release 7.6.1810 (Core) 8G 4

关闭防火墙和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私有仓库地址

因为openshift安装成功后,会自行启动一个registry的私有仓库镜像以便使用,为了之后不用重新配置后还要重启docker,所以在此先行配置

集群自动启动的registry仓库地址就是172.30.x.x,所以如下配置

 systemctl start docker
 vim/etc/docker/daemon.json
{
  "insecure-registries": ["172.30.0.0/16"]
}
 systemctl daemon-reload
 systemctl restart docker
 systemctl enable docker

②开始安装

OpenShift下载地址
建议直接去官网下载这样速度会很快

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="192.168.1.10" --no-proxy="192.168.1.10"

参数介绍:

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

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

le-templates/dancer quickstart" "sample-templates/django quickstart" "sample-templates/railstart" "sample-templates/nodejs quickstart" "sample-templates/jenkins pipeline ephemeral" "samplates/sample pipeline" "sample-templates/mariadb" "sample-templates/mysql" "sample-templatgresql" "sample-templates/cakephp quickstart"
I1116 14:40:22.358695   10834 interface.go:41] Finished installing "centos-imagestreams" "op-image-registry" "openshift-router" "sample-templates" "openshift-web-console-operator" "per-volumes"
Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.

The server is accessible via web console at:
    https://192.168.1.10:8443

You are logged in as:
    User:     developer
    Password: <any value>

To login as administrator:
    oc login -u system:admin

④测试

登录web界面
https://192.168.1.10:8443

openshift默认用户:
system:admin 使用密钥,无密码
developer/developer
admin/admin

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

在这里插入图片描述
在这里插入图片描述

⑤扩展内容

(一)集群docker-registry测试
命令行登录集群:

oc login -u system:admin     系统管理员用户,可以查询到所有信息
oc login -u admin -p admin      普通用户登录方式

查看环境services等信息

[root@localhost openshift-server-v3.11.0]# oc get pods --all-namespaces 
NAMESPACE                       NAME                                                      READY     STATUS      RESTARTS   AGE
default                         docker-registry-1-tjkpn                                   1/1       Running     0          41m
default                         persistent-volume-setup-dktgk                             1/1       Running     0          41m
default                         router-1-2vcbk                                            1/1       Running     0          41m
kube-dns                        kube-dns-j9vv4                                            1/1       Running     0          44m
kube-proxy                      kube-proxy-mqhd7                                          1/1       Running     0          44m
kube-system                     kube-controller-manager-localhost                         1/1       Running     0          45m
kube-system                     kube-scheduler-localhost                                  1/1       Running     0          44m
kube-system                     master-api-localhost                                      1/1       Running     0          43m
kube-system                     master-etcd-localhost                                     1/1       Running     0          44m
openshift-apiserver             openshift-apiserver-m24bf                                 1/1       Running     0          44m
openshift-controller-manager    openshift-controller-manager-bgk75                        1/1       Running     0          41m
openshift-core-operators        openshift-service-cert-signer-operator-6d477f986b-9977s   1/1       Running     0          45m
openshift-core-operators        openshift-web-console-operator-664b974ff5-948dt           1/1       Running     0          41m
openshift-service-cert-signer   apiservice-cabundle-injector-8ffbbb6dc-snt4l              1/1       Running     0          42m
openshift-service-cert-signer   service-serving-cert-signer-668c45d5f-wxn6v               1/1       Running     0          42m
openshift-web-console           webconsole-547fd977ff-p7rqm                               1/1       Running     0          37m
[root@localhost openshift-server-v3.11.0]# oc get all
NAME                                READY     STATUS      RESTARTS   AGE
pod/docker-registry-1-tjkpn         1/1       Running     0          43m
pod/persistent-volume-setup-dktgk   1/1       Running     0          44m
pod/router-1-2vcbk                  1/1       Running     0          43m

NAME                                      DESIRED   CURRENT   READY     AGE
replicationcontroller/docker-registry-1   1         1         1         44m
replicationcontroller/router-1            1         1         1         44m

NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                   AGE
service/docker-registry   ClusterIP   172.30.1.1       <none>        5000/TCP                  44m
service/kubernetes        ClusterIP   172.30.0.1       <none>        443/TCP                   47m
service/router            ClusterIP   172.30.255.146   <none>        80/TCP,443/TCP,1936/TCP   44m

NAME                                DESIRED   SUCCESSFUL   AGE
job.batch/persistent-volume-setup   1         1            44m

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@localhost openshift-server-v3.11.0]# oc get all -n openshift
NAME                                        DOCKER REPO                            TAGS                              UPDATED
imagestream.image.openshift.io/dotnet       172.30.1.1:5000/openshift/dotnet       2.0,latest                        44 minutes ago
imagestream.image.openshift.io/httpd        172.30.1.1:5000/openshift/httpd        2.4,latest                        44 minutes ago
imagestream.image.openshift.io/jenkins      172.30.1.1:5000/openshift/jenkins      latest,1,2                        44 minutes ago
imagestream.image.openshift.io/mariadb      172.30.1.1:5000/openshift/mariadb      latest,10.1,10.2                  44 minutes ago
imagestream.image.openshift.io/mongodb      172.30.1.1:5000/openshift/mongodb      3.4,3.6,latest + 3 more...        44 minutes ago
imagestream.image.openshift.io/mysql        172.30.1.1:5000/openshift/mysql        5.5,5.6,5.7 + 1 more...           44 minutes ago
imagestream.image.openshift.io/nginx        172.30.1.1:5000/openshift/nginx        1.10,1.12,1.8 + 1 more...         44 minutes ago
imagestream.image.openshift.io/nodejs       172.30.1.1:5000/openshift/nodejs       8-RHOAR,latest,0.10 + 4 more...   44 minutes ago
imagestream.image.openshift.io/perl         172.30.1.1:5000/openshift/perl         latest,5.16,5.20 + 2 more...      44 minutes ago
imagestream.image.openshift.io/php          172.30.1.1:5000/openshift/php          7.1,latest,5.5 + 2 more...        44 minutes ago
imagestream.image.openshift.io/postgresql   172.30.1.1:5000/openshift/postgresql   10,9.2,9.4 + 3 more...            44 minutes ago
imagestream.image.openshift.io/python       172.30.1.1:5000/openshift/python       3.4,3.5,3.6 + 3 more...           44 minutes ago
imagestream.image.openshift.io/redis        172.30.1.1:5000/openshift/redis        3.2,latest                        44 minutes ago
imagestream.image.openshift.io/ruby         172.30.1.1:5000/openshift/ruby         2.0,2.2,2.3 + 3 more...           44 minutes ago
imagestream.image.openshift.io/wildfly      172.30.1.1:5000/openshift/wildfly      10.1,11.0,12.0 + 5 more...        44 minutes ago

获取镜像测试

[root@localhost openshift-server-v3.11.0]# 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@localhost openshift-server-v3.11.0]# 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@localhost openshift-server-v3.11.0]# oc whoami -t
8zDcvQGrS-zy0A9Q-ugXGZ6kIr8zkuKNsLWf5l73iQk

登录docker-registry仓库

[root@localhost openshift-server-v3.11.0]# docker login 172.30.1.1:5000
Username: system
Password: 刚才获取的token
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@localhost openshift-server-v3.11.0]# docker pull 172.30.1.1:5000/openshift/nginx
Using default tag: latest
latest: Pulling from openshift/nginx
ab5ef0e58194: Pull complete 
b04f3cd8f5dc: Pull complete 
4bb32ba4aeb6: Pull complete 
0c1ab5ee9c31: Pull complete 
41395b31da21: Pull complete 
7464432c3f01: Pull complete 
0de1e67a7118: Pull complete 
209c879d58e3: Pull complete 
Digest: sha256:af171c38298e64664a9f999194480ce7e392858e773904df22f7585a1731ad0d
Status: Downloaded newer image for 172.30.1.1:5000/openshift/nginx:latest
172.30.1.1:5000/openshift/nginx:latest

(二)配置openshift开机自启
如果需要开机自启,则可以在/etc/rc.d/rc.local中添加上面集群启动时的命令,就可以实现了
(注意不同环境下需要修改oc命令所在路径和服务器IP)

/opt/openshift-server-v3.11.0/oc cluster up --skip-registry-check=true --public-hostname="192.168.1.10" --no-proxy="192.168.1.10"

在这里插入图片描述
(三)集群常用命令
用户相关命令

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)
相关文章
|
2天前
|
Oracle Java 关系型数据库
2022 年超详细过程步骤讲解 CentOS 7 安装Maven。以及Mavne配置文件的修改
这篇文章提供了在CentOS 7上安装Maven的详细步骤,包括从官网下载Maven、创建文件夹、上传和解压Maven安装包、配置环境变量、设置Maven源为阿里云、指定jar包仓库位置、配置JDK版本,并验证安装是否成功。
2022 年超详细过程步骤讲解 CentOS 7 安装Maven。以及Mavne配置文件的修改
|
2天前
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
|
2天前
|
Oracle Java 关系型数据库
2022 年超详细过程步骤讲解 CentOS 7 安装jdk1.8
这篇文章提供了在CentOS 7系统上安装JDK 1.8的详细步骤,包括卸载系统自带的JDK、下载Oracle官网的JDK安装包、上传至虚拟机、解压安装包、配置环境变量,并验证安装是否成功。
2022 年超详细过程步骤讲解 CentOS 7 安装jdk1.8
|
2天前
|
NoSQL 数据可视化 Linux
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
这篇文章提供了在CentOS 7上安装Redis的详细步骤,包括上传Redis安装包、解压安装、编译、安装、备份配置文件、修改配置以支持后台运行和设置密码、启动Redis服务、使用客户端连接Redis、关闭Redis服务、解决Redis Desktop Manager图形化工具连接失败的问题、设置Redis开机自启动,以及Redis服务的启动和停止命令。
2022 年超详细步骤讲解 CentOS 7 安装Redis 。解决Redis Desktop Manager 图形化工具连接失败解决 ;connection failed处理。开机自启Redis
|
2天前
|
应用服务中间件 Linux 网络安全
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
这篇文章提供了在CentOS 7系统上通过源码安装Nginx的详细步骤,包括从官网下载Nginx源码包、上传至虚拟机、解压、删除压缩包、编译安装前的配置、安装PCRE库(因为Nginx使用PCRE库解析正则表达式)、安装zlib和OpenSSL库(用于支持HTTPS协议)、重新编译Nginx、安装后启动Nginx服务、关闭服务、修改默认端口、以及重启服务测试等步骤。文章还提供了相关命令和操作截图,帮助用户更好地理解和执行安装过程。
2022年超详细在CentOS 7上安装Nginx方法(源码安装)
|
1天前
|
Linux Docker 容器
在CentOS上安装Docker的指南:
【8月更文挑战第19天】介绍在CentOS上安装Docker的过程:首先确认CentOS版本兼容,建议使用7或更高版本,并通过`yum update -y`更新系统。安装Docker时推荐使用官方仓库方法,需安装`yum-utils`等工具,设置Docker仓库简化安装流程。可选配置国内镜像源(如阿里云)提升下载速度。亦可通过RPM包离线安装。安装后启动Docker服务并通过`systemctl enable docker`设为开机启动。最后,运行`docker run hello-world`验证安装。如遇问题,使用`sudo journalctl -u docker`查看日志排错。
44 0
|
2天前
|
JavaScript Linux
2022年超详细在CentOS 7上安装Node.js方法(源码安装)
这篇文章介绍了在CentOS 7系统上通过源码安装Node.js的详细步骤,包括从官网下载Node.js源码包、将安装包上传至虚拟机、解压安装包、删除压缩文件、编译安装Node.js、检查Node.js和npm版本,以及切换npm源到淘宝镜像以加速下载。此外,还提供了一个获取Linux下Node.js离线安装包的微信公众号搜索方式。
|
NoSQL Linux 数据库
CentOS 6.5下Redis开机启动配置记录
上篇“CentOS 6.5下Redis安装记录”,只是安装了,可以运行可以用了,但是系统重启之后并不会随系统自动启动,用起来很不方便,这里就把CentOS 6.5下Redis开机启动配置记录说一下。
1013 0