本文要做什么?

很多为了验证应用在 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)的更多相关文章

  1. UPUPW Apache5.5系列本地开发环境配置

    UPUPW Apache5.5系列 1. 在官网下载 Apache5.5系列,选择云端下载. 官网地址: http://www.upupw.net/aphp55/n110.html 2. 下载后,将压 ...

  2. IIS+PHP本地开发环境配置

    打开Win7系统自带IIS.如图只要点击两下,CGI一定要勾选上!完成后打开浏览器输入127.0.0.1测试一下,如果能打开页面说明iis开启成功. 安装PHP.不同版本的PHP会有所不同,这里使用的 ...

  3. Sentry 监控 - Snuba 数据中台本地开发环境配置实战

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  4. vue-router History 本地开发环境和nginx配置

    vue-router mode=history本地开发环境配置 解决方法1.修改webpack的的devServer配置项(devServe存在于,rvue-cli2在webapck.config.j ...

  5. 基于Eclipse的Hadoop应用开发环境配置

    基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...

  6. 基于webpack4的react开发环境配置

    一.基础配置 1.init项目 mkdir react-webpack4-cook cd react-webpack4-cook mkdir src mkdir dist npm init -y 复制 ...

  7. 配置https and http2 local本地开发环境

    今天,几乎所有你访问的网站都是受HTTPS保护的.如果你还没有这样做,是时候这样做了.使用HTTPS保护您的服务器也就意味着您无法从非HTTPS的服务器发送请求到此服务器.这对使用本地开发环境的开发人 ...

  8. spark-windows(含eclipse配置)下本地开发环境搭建

    spark-windows(含eclipse配置)下本地开发环境搭建   >>>>>>注意:这里忽略JDK的安装,JDK要求是1.8及以上版本,请通过 java  ...

  9. 基于 Laravel 开发博客应用系列 —— 设置 Windows 本地开发环境

    1.安装原生PHP 下载/解压 PHP 到 PHP 下载页下载最新版本的 PHP(如果使用 Laravel 5.1 的话需要 PHP 5.5.9+ 版本),解压下载的zip格式压缩文件到本地目录,比如 ...

随机推荐

  1. 迁移appseting.json创建自定义配置中心

    创建一个自定义的配置中心,将框架中各类配置,迁移至数据库,支持切换数据库,热重载. 说在前面的话 自使用.net Core框架以来,配置大多存在json文件中: [框架默认加载配置]文件为appset ...

  2. SQL SERVER数据库权限分配

    1,新建 只能访问某一个表的只读用户. --添加只允许访问指定表的用户:         exec     sp_addlogin     '用户名','密码','默认数据库名'           ...

  3. python 注册 gin consul

    import requests headers = { "contentType": "application/json" } def register(nam ...

  4. WPF之资源专题

    1.一般程序的资源可以分为四个等级: 数据库中的数据相当于放在仓库里 资源文件里的数据相当于放在旅行箱里 WPF对象资源里的数据相当于携带在背包里 变量中的数据相当于拿在手里 2.资源的查找顺序是沿着 ...

  5. Markdown数学公式

    1. 显示位置与大小 正文(inline)中的LaTeX公式用$...$定义, 显示在当前行内. $\sum_{i=0}^N\int_{a}^{b}g(t,i)\text{d}t$ \(\sum_{i ...

  6. PAT (Basic Level) Practice (中文)1061 判断题 (15分)

    1061 判断题 (15分) 判断题的评判很简单,本题就要求你写个简单的程序帮助老师判题并统计学生们判断题的得分. 输入格式: 输入在第一行给出两个不超过 100 的正整数 N 和 M,分别是学生人数 ...

  7. NX Open,怎样取到面的环LOOP

    在封装的ufun .NET库里面,对UF_MODL_ask_face_loops这个函数并没有封装,导致我们很多不便,那我们在.NET下怎样才能使用这个函数呢??当然是手动处理一下 Public Fu ...

  8. 命名空间、作用域、LEGB法则、垃圾回收机制

    一.命名空间.作用域.LEGB法则. 1.命名空间和作用域 : 命名空间:变量名称与值的映射关系 作用域:变量作用的区域,即范围. 注意:class/def/模块会产生作用域:分支语句,循环语句,异常 ...

  9. linux系统(centos)下su和sudo命令的区别

    linux系统(centos)下su和sudo命令的区别 区别 我们在日常使用过程中,这2个命令很多时候能达到相同的效果,对细节区别十分模糊,这里进行简单的解释和区分.希望大家能够正确使用这2个命令, ...

  10. 【UE4 设计模式】观察者模式 Observer Pattern

    概述 描述 定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新.观察者模式又叫做 发布-订阅(Publish/Subscribe)模式 模型-视图(M ...