本文要做什么?

很多为了验证应用在 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. spring 创建Bean最全实现方法

    创建bean方式,spring创建bean的方式包含:自动注入方式和人工注入方式.分别为:1)xml 配置化方式  2)@bean注解注入方式3)@Component方式 4)接口注入方式 5)imp ...

  2. iOS实现XMPP通讯(二)XMPP编程

    项目概述 这是一个可以登录jabber账号,获取好友列表,并且能与好友进行聊天的项目. 使用的是第三方库XMPPFramework框架来实现XMPP通讯. 项目地址:XMPP-Project 项目准备 ...

  3. k8s学习笔记(1)- 简单部署springboot应用

    前言:k8s全称kubernetes,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,关于更多的k8s知识,可自行学习 1.k8 ...

  4. Java读取属性配置文件-properties

    在项目开发中,我们难免将一些可变的参数放在程序以外,作为一个单独的文件,即配置文件,这样方便项目在不同的使用环境部署时.或者说需要不同时,可以通过简单配置这些程序以外的文件来修改程序里的变量. 常用的 ...

  5. javaweb 入门

    java web 我们首先来看一下两种网络服务的常用架构. C/S([Client/Server])架构 B/S架构 (Browser/Server) (这是重点) 程序完全部署在服务器上,用户通过浏 ...

  6. 【Spring】IoC容器 - 依赖查找

    前言 上一篇文章已经学习了[IoC的主要实现策略]有2种: 1.依赖查找 2.依赖注入 这里稍加详细的介绍一下依赖查找 1.依赖查找的方式 依赖查找的方式可以以多种维度来划分: 1.按名称/类型/注解 ...

  7. Tekton+Argocd实现自动化流水线

    目录 什么是tekton 安装tekton 安装Dashboard Tekton提供的CRD 安装argocd 创建argocd 安装客户端 连接argocd server 创建App 集群中查看效果 ...

  8. 单片机STM32开发中常用库函数分析

    1.GPIO初始化函数 用法: voidGPIO_Configuration(void) { GPIO_InitTypeDefGPIO_InitStructure;//GPIO状态恢复默认参数 GPI ...

  9. 最容易出错的C语言指针

    C语言指针说难不难但是说容易又是最容易出错的地方,因此不管是你要做什么只要用到C指针你就跳不过,今天咱们就以 十九个例子来给大家简单的分析一下指针的应用,最后会有C语言视频资料提供给大家更加深入的参考 ...

  10. picGo+gitee搭建Obsidian图床,实现高效写作

    1 picGo安装 [picgo下载链接](https://molunerfinn.com/PicGo/) 选择安装目录,可以选择安装在D:\Program Files 然后点击安装即可 2. git ...