OpenShift 本地开发环境配置(基于 Minishift)

本文要做什么?
很多为了验证应用在 OpenShift 平台的行为是否正常,或者组成一个简单的开发环境,直接搭建一个 OpenShift/Origin 环境可能太重了,而且运行在本机可能占用内存也太多。此时使用 MiniShift 来组成自己的开发环境就比较合适了。
本文就简单介绍下如何配置 MiniShift 环境,无论是 Windows/Linux/MacOS都是可以安装的,前提是你需要安装个虚拟机软件 virtualbox。此处将以笔者 Linux 开发环境进行演示,操作大同小异可供参考。
安装 Minishift
官方 Github Relese Page https://github.com/minishift/minishift/releases,
cd ~/Downloads
#下载v1.34.3 minishift
wget https://github.com/minishift/minishift/releases/download/v1.34.3/minishift-1.34.3-linux-amd64.tgz
#解压到/usr/bin目录下
sudo tar zxvf minishift-1.34.3-linux-amd64.tgz -C /usr/bin
#验证是否能执行,有版本输出即正常
minishift version
#添加自动补全,重开shell自动提示即正常
sudo minishift completion bash > /etc/bash_completion.d/minishift
对于 Win 环境,将下载的 zip 包解压到任意目录,然后将minishift.exe添加环境变量Path中即可,Win下自动补全功能好像没有。
安装 virtualbox
官方下载地址 https://www.virtualbox.org/wiki/Downloads
根据自己的平台下载安装即可。
简易搭建docker registry
注意,请提前规划好docker registry端口号,配置到docker上再重启docker服务。
docker run --name myRegistry --restart=always -d -p 5000:5000 registry
webUI 可以参考 CSDN 胡了了 的博客 https://blog.csdn.net/huqigang/article/details/76655854
搭建 Gitea
基于 docker-compose 搭建 Gitea 用于 Minishift 上传代码构建镜像。
gitea/docker-compose.yml
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:1.15.6
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
启动 Gitea
cd gitea
docker-compose up -d
启动完成后,访问 3000 新建用户即可使用。
配置与启动 Minishift
以下命令依次执行,内存、CPU、硬盘、非安全docker仓库按需配置即可。
#设置虚拟机驱动
minishift config set vm-driver virtualbox
#设置openshift版本
minishift config set openshift-version 3.11.0
#设置虚拟机cpu核数
minishift config set cpus 2
#设置虚拟机内存
minishift config set memory 9GB
#设置虚拟机磁盘大小
minishift config set disk-size 20GB
#设置docker registry仓库地址,刚才创建的那个
minishift config set insecure-registry 192.168.99.1:5000
#设置镜像缓存,方便删除集群后再创建,不需要再重新拉镜像(不开以后再拉较慢)
minishift config set image-caching true
#启用管理员用户插件
minishift addon enable admin-user
#启用任意用户uid,不设置会导致自定义镜像部署时用户设置不正常
minishift addon enable anyuid
#设置静态ip,也可以不设置
minishift ip --set-static
启动 Minishift
#启动minishift,等待初始化完成,首次初始化较慢
hellxz@debian:~/WorkSpace/openshift$ minishift start
-- Starting profile 'minishift'
-- Check if deprecated options are used ... OK
-- Checking if https://github.com is reachable ... FAIL
-- Checking if requested OpenShift version 'v3.11.0' is valid ... SKIP
-- Checking if requested OpenShift version 'v3.11.0' is supported ... OK
-- Checking if requested hypervisor 'virtualbox' is supported on this platform ... OK
-- Checking if VirtualBox is installed ... OK
-- Checking the ISO URL ... OK
-- Checking if provided oc flags are supported ... OK
-- Starting the OpenShift cluster using 'virtualbox' hypervisor ...
-- Starting Minishift VM ..................... OK
-- Checking for IP address ... OK
-- Checking for nameservers ... OK
-- Checking if external host is reachable from the Minishift VM ...
Pinging 8.8.8.8 ... OK
-- Checking HTTP connectivity from the VM ...
Retrieving http://minishift.io/index.html ... OK
-- Checking if persistent storage volume is mounted ... OK
-- Checking available disk space ... 19% used OK
-- Writing current configuration for static assignment of IP address ... OK
-- OpenShift cluster will be configured with ...
Version: v3.11.0
-- Copying oc binary from the OpenShift container image to VM ... OK
-- Starting OpenShift cluster ...............................
Getting a Docker client ...
Checking if image openshift/origin-control-plane:v3.11.0 is available ...
Checking type of volume mount ...
Determining server IP ...
Using public hostname IP 192.168.99.115 as the host IP
Checking if OpenShift is already running ...
Checking for supported Docker version (=>1.22) ...
Checking if insecured registry is configured properly in Docker ...
Checking if required ports are available ...
Checking if OpenShift client is configured properly ...
Checking if image openshift/origin-control-plane:v3.11.0 is available ...
Starting OpenShift using openshift/origin-control-plane:v3.11.0 ...
I1121 10:47:29.719658 2437 flags.go:30] Running "create-kubelet-flags"
I1121 10:47:30.136043 2437 run_kubelet.go:49] Running "start-kubelet"
I1121 10:47:30.373865 2437 run_self_hosted.go:181] Waiting for the kube-apiserver to be ready ...
I1121 10:48:00.400822 2437 interface.go:26] Installing "kube-proxy" ...
I1121 10:48:00.401522 2437 interface.go:26] Installing "kube-dns" ...
I1121 10:48:00.401530 2437 interface.go:26] Installing "openshift-service-cert-signer-operator" ...
I1121 10:48:00.401535 2437 interface.go:26] Installing "openshift-apiserver" ...
I1121 10:48:00.401559 2437 apply_template.go:81] Installing "openshift-apiserver"
I1121 10:48:00.402465 2437 apply_template.go:81] Installing "kube-proxy"
I1121 10:48:00.403006 2437 apply_template.go:81] Installing "kube-dns"
I1121 10:48:00.403118 2437 apply_template.go:81] Installing "openshift-service-cert-signer-operator"
I1121 10:48:35.202811 2437 interface.go:41] Finished installing "kube-proxy" "kube-dns" "openshift-service-cert-signer-operator" "openshift-apiserver"
I1121 10:48:45.237092 2437 run_self_hosted.go:242] openshift-apiserver available
I1121 10:48:45.237114 2437 interface.go:26] Installing "openshift-controller-manager" ...
I1121 10:48:45.237133 2437 apply_template.go:81] Installing "openshift-controller-manager"
I1121 10:48:47.120838 2437 interface.go:41] Finished installing "openshift-controller-manager"
Adding default OAuthClient redirect URIs ...
Adding centos-imagestreams ...
Adding registry ...
Adding router ...
Adding persistent-volumes ...
Adding web-console ...
Adding sample-templates ...
I1121 10:48:47.161522 2437 interface.go:26] Installing "centos-imagestreams" ...
I1121 10:48:47.161533 2437 interface.go:26] Installing "openshift-image-registry" ...
I1121 10:48:47.161541 2437 interface.go:26] Installing "openshift-router" ...
I1121 10:48:47.161546 2437 interface.go:26] Installing "persistent-volumes" ...
I1121 10:48:47.161554 2437 interface.go:26] Installing "openshift-web-console-operator" ...
I1121 10:48:47.161560 2437 interface.go:26] Installing "sample-templates" ...
I1121 10:48:47.161607 2437 interface.go:26] Installing "sample-templates/postgresql" ...
I1121 10:48:47.161614 2437 interface.go:26] Installing "sample-templates/nodejs quickstart" ...
I1121 10:48:47.161620 2437 interface.go:26] Installing "sample-templates/rails quickstart" ...
I1121 10:48:47.161626 2437 interface.go:26] Installing "sample-templates/jenkins pipeline ephemeral" ...
I1121 10:48:47.161632 2437 interface.go:26] Installing "sample-templates/mongodb" ...
I1121 10:48:47.161637 2437 interface.go:26] Installing "sample-templates/mysql" ...
I1121 10:48:47.161647 2437 interface.go:26] Installing "sample-templates/cakephp quickstart" ...
I1121 10:48:47.161653 2437 interface.go:26] Installing "sample-templates/dancer quickstart" ...
I1121 10:48:47.161662 2437 interface.go:26] Installing "sample-templates/django quickstart" ...
I1121 10:48:47.161684 2437 interface.go:26] Installing "sample-templates/sample pipeline" ...
I1121 10:48:47.161724 2437 interface.go:26] Installing "sample-templates/mariadb" ...
I1121 10:48:47.161772 2437 apply_list.go:67] Installing "sample-templates/mariadb"
W1121 10:48:47.162234 2437 create_secret.go:78] Error reading $HOME/.docker/config.json: open /home/docker/.docker/config.json: no such file or directory, imagestream import credentials will not be setup
I1121 10:48:47.162270 2437 apply_list.go:67] Installing "centos-imagestreams"
I1121 10:48:47.162982 2437 apply_list.go:67] Installing "sample-templates/mongodb"
I1121 10:48:47.163194 2437 apply_list.go:67] Installing "sample-templates/mysql"
I1121 10:48:47.163346 2437 apply_list.go:67] Installing "sample-templates/cakephp quickstart"
I1121 10:48:47.163459 2437 apply_list.go:67] Installing "sample-templates/dancer quickstart"
I1121 10:48:47.163564 2437 apply_list.go:67] Installing "sample-templates/django quickstart"
I1121 10:48:47.163670 2437 apply_list.go:67] Installing "sample-templates/sample pipeline"
I1121 10:48:47.163706 2437 apply_template.go:81] Installing "openshift-web-console-operator"
I1121 10:48:47.163904 2437 apply_list.go:67] Installing "sample-templates/postgresql"
I1121 10:48:47.163958 2437 apply_list.go:67] Installing "sample-templates/nodejs quickstart"
I1121 10:48:47.164070 2437 apply_list.go:67] Installing "sample-templates/rails quickstart"
I1121 10:48:47.164091 2437 apply_list.go:67] Installing "sample-templates/jenkins pipeline ephemeral"
I1121 10:48:55.790359 2437 interface.go:41] Finished installing "sample-templates/postgresql" "sample-templates/nodejs quickstart" "sample-templates/rails quickstart" "sample-templates/jenkins pipeline ephemeral" "sample-templates/mongodb" "sample-templates/mysql" "sample-templates/cakephp quickstart" "sample-templates/dancer quickstart" "sample-templates/django quickstart" "sample-templates/sample pipeline" "sample-templates/mariadb"
I1121 10:48:59.606507 2437 interface.go:41] Finished installing "centos-imagestreams" "openshift-image-registry" "openshift-router" "persistent-volumes" "openshift-web-console-operator" "sample-templates"
Server Information ...
OpenShift server started.
The server is accessible via web console at:
https://192.168.99.115:8443/console
此时直接访问输出的地址就能访问平台了,最好先执行下边的命令再进平台。
启动后配置命令:
#启用admin用户
minishift addons apply admin-user
#启用任意用户uid,允许pod使用root用户运行(便于调试)
minishift addons apply anyuid
访问 Minishift WebUI,那个 console 地址(本例中为https://192.168.99.115:8443/console),使用 developer 和任意密码即可登录。


可以使用默认的 My Project 也可以自己新建,这里使用默认的就行。

到这个熟悉的 OpenShift 界面就可以了。除了 logo 不大一样,其余功能都差不多。
马上更新自定义OpenShift镜像,静请期待!
本文同步发布以下两个地址,未经许可禁止转载。
OpenShift 本地开发环境配置(基于 Minishift)的更多相关文章
- UPUPW Apache5.5系列本地开发环境配置
UPUPW Apache5.5系列 1. 在官网下载 Apache5.5系列,选择云端下载. 官网地址: http://www.upupw.net/aphp55/n110.html 2. 下载后,将压 ...
- IIS+PHP本地开发环境配置
打开Win7系统自带IIS.如图只要点击两下,CGI一定要勾选上!完成后打开浏览器输入127.0.0.1测试一下,如果能打开页面说明iis开启成功. 安装PHP.不同版本的PHP会有所不同,这里使用的 ...
- Sentry 监控 - Snuba 数据中台本地开发环境配置实战
系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...
- vue-router History 本地开发环境和nginx配置
vue-router mode=history本地开发环境配置 解决方法1.修改webpack的的devServer配置项(devServe存在于,rvue-cli2在webapck.config.j ...
- 基于Eclipse的Hadoop应用开发环境配置
基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...
- 基于webpack4的react开发环境配置
一.基础配置 1.init项目 mkdir react-webpack4-cook cd react-webpack4-cook mkdir src mkdir dist npm init -y 复制 ...
- 配置https and http2 local本地开发环境
今天,几乎所有你访问的网站都是受HTTPS保护的.如果你还没有这样做,是时候这样做了.使用HTTPS保护您的服务器也就意味着您无法从非HTTPS的服务器发送请求到此服务器.这对使用本地开发环境的开发人 ...
- spark-windows(含eclipse配置)下本地开发环境搭建
spark-windows(含eclipse配置)下本地开发环境搭建 >>>>>>注意:这里忽略JDK的安装,JDK要求是1.8及以上版本,请通过 java ...
- 基于 Laravel 开发博客应用系列 —— 设置 Windows 本地开发环境
1.安装原生PHP 下载/解压 PHP 到 PHP 下载页下载最新版本的 PHP(如果使用 Laravel 5.1 的话需要 PHP 5.5.9+ 版本),解压下载的zip格式压缩文件到本地目录,比如 ...
随机推荐
- [AGC023D] Go Home 题解
题目传送门 Solution 首先排除掉特殊情况:若 \(S\) 在两侧,肯定会顺序/逆序直接走完,答案就是边界减去出发点. 考虑到若 \(P_1\geq P_n\),那么显然 \(1\) 不到家 \ ...
- 洛谷3163 CQOI2014危桥 (最大流)
一开始想了一发费用流做法然后直接出负环了 首先,比较显然的思路就是对于原图中没有限制的边,对应的流量就是\(inf\),如果是危桥,那么流量就应该是\(2\). 由于存在两个起始点,我们考虑直接\(s ...
- 微软 SqlHelper代码、功能、用法介绍:高效的组件
数据访问组件SqlHelper数据访问组件是一组通用的访问数据库的代码,在所有项目中都可以用,一般不需要修改.本节使用的是Microsoft提供的数据访问助手,其封装很严密,且应用简单. 首先要先添加 ...
- suricata的模块和插槽
参考资料 suricata官方文档https://suricata.readthedocs.io/en/latest/performance/runmodes.html#different-runmo ...
- UltraSoft - Beta - Postmortem事后分析
UltraSoft - Beta - PostMORTEM 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 解决的问题和定义都在[软软软]功能规格说明书 ...
- Beta阶段第八次会议
Beta阶段第八次会议 时间:2020.5.24 完成工作 姓名 工作 难度 完成度 ltx 1.修改一下小程序游客模式的风格 轻 80% xyq 1.针对昨天提出的意见对场地申请表格进行修改 中 9 ...
- PM技术分享——《构建之法》初步实践
软件理论 软件=程序+软件工程:软件开发活动(构建管理.源代码管理.软件设计.软件测试.项目管理)相关的内容的完成,才能完成把整个程序转化成为一个可用的软件的过程. 软件企业=软件+商业模式 软件开发 ...
- 第32篇-解析interfacevirtual字节码指令
在前面介绍invokevirtual指令时,如果判断出ConstantPoolCacheEntry中的_indices字段的_f2属性的值为空,则认为调用的目标方法没有连接,也就是没有向Constan ...
- Vagrant 搭建开发环境实践
介绍 Development Environments Made Easy -官网标题 vagrant是一个命令行的虚拟机管理程序.用于简化搭建开发环境. vagrant使用ruby语言基于Chef ...
- HBase的安装与部署
一.部署前置环境 先部署分布式的高可用版的Hadoop,即ZooKeeper+Hadoop. https://www.cnblogs.com/live41/p/15483192.html * 部署的服 ...