在Mac OS上用Minishift本地安装OpenShift 3.11
发布日期:2021-06-29 15:53:44 浏览次数:2 分类:技术文章

本文共 7201 字,大约阅读时间需要 24 分钟。

文章目录

在Mac OS上用Minishift本地安装OpenShift 3.11

前言

本文描述了在Mac OS上用Minishift本地安装OpenShift单节点集群。

OpenShift单节点集群只能用于开发测试环境。

部署说明:

  • Mac OS 10.12

  • Homebrew

  • Minishift v1.34.3

  • Minishift VM driver:hyperkit

  • OpenShift v3.11.0

官方文档

安装虚拟化环境

在Mac OS上Minishift VM 3.11默认使用hyperkit,也可以使用Virtualbox作为Minishift VM driver。

如果已经安装Docker Desktop for Mac则不再需要再安装hyperkit,只需要修改文件权限:

sudo chmod u+s,+x /usr/local/bin/hyperkit

安装hyperkit:

# 安装hyperkitbrew install hyperkit# 修改hyperkit文件所有者和权限sudo chown root:wheel /usr/local/opt/hyperkit/bin/hyperkitsudo chmod u+s,+x /usr/local/opt/hyperkit/bin/hyperkit# 验证hyperkit -hhyperkit -v

安装docker-machine-driver-hyperkit:

# 安装docker-machine-driver-hyperkitbrew install docker-machine-driver-hyperkit# 修改docker-machine-driver-hyperkit文件所有者和权限sudo chown root:wheel /usr/local/opt/docker-machine-driver-hyperkit/bin/docker-machine-driver-hyperkitsudo chmod u+s,+x /usr/local/opt/docker-machine-driver-hyperkit/bin/docker-machine-driver-hyperkit

安装Minishift

# 安装Minishiftbrew cask install minishift

查看Minishift版本:

minishift version

(可选)更新Minishift到最新版本:

# 如果不是最新版本,可更新Minishift到最新版本brew cask install --force minishift

创建Minishift虚拟机和部署OpenShift集群

配置Minishift参数:

# 查看Minishift配置minishift config view# 配置Minishift参数# 跳过OpenShift版本检查minishift config set skip-check-openshift-release true

如果使用Virtualbox,可以先minishift config set vm-driver virtualbox

创建Minishift虚拟机并在Minishift虚拟机上部署OpenShift集群:

minishift start \--registry-mirror=https://5twf62k1.mirror.aliyuncs.com \--show-libmachine-logs \-v 5

说明:

  • --registry-mirror 可使用阿里云镜像加速器加快拉取OpenShift镜像速度
  • --show-libmachine-logs 打印libmachine日志
  • -v 5 日志级别为5,打印更详细的日志信息

可运行minishift start --help查看详细参数说明。

查看Minishift状态:

minishift status

访问OpenShift集群

创建集群管理员账号

创建名为admin的集群管理员账号:

oc login -u system:adminoc adm policy add-cluster-role-to-user cluster-admin admin

访问OpenShift Web Console

运行minishift console,将会自动打开浏览器来访问OpenShift Web Console。也可以运行minishift console --url来获取OpenShift Web Console地址。

登录信息:

  • 集群管理员:admin / admin
  • 开发人员:developer / developer

用oc命令行方式访问OpenShift

运行minishift oc-env来获取将oc添加到PATH环境变量中的指令。

~/.bash_profile 中添加该指令,并运行source ~/.bash_profile让环境变量生效。

如果使用的是zsh,则需要在~/.zshrc 中添加该指令,并运行source ~/.zshrc让环境变量生效。

可运行echo $SHELL查看使用的Shell。

打开一个新的terminal,运行oc version 来查看oc版本。

用oc来访问Openshift:

# 以集群管理员登录oc login -u system:adminoc login -u admin -p admin# 以开发人员登录oc login -u developer -p developer

停止OpenShift集群

停止OpenShift集群:

minishift stop

再次启动集群:

minishift start

更多Minishift命令参见:

Troubleshooting

Homebrew相关问题

参见:

Checking if requested OpenShift version ‘v3.11.0’ is valid … v3.11.0 is not a valid OpenShift versionFAIL

跳过检查OpenShift版本:

minishift config set skip-check-openshift-release true

Checking for setuid bit … FAIL

需要按照文档先设置好虚拟机环境。

参见:

# 修改hyperkit的文件所有者和权限sudo chown root:wheel /usr/local/opt/hyperkit/bin/hyperkitsudo chmod u+s,+x /usr/local/opt/hyperkit/bin/hyperkit# 修改docker-machine-driver-hyperkit文件所有者和权限sudo chown root:wheel /usr/local/opt/docker-machine-driver-hyperkit/bin/docker-machine-driver-hyperkitsudo chmod u+s,+x /usr/local/opt/docker-machine-driver-hyperkit/bin/docker-machine-driver-hyperkit

具体的hyperkit的路径以minishift start 日志为准。

Error starting the cluster: Error attempting to download and cache ‘oc’: Cannot get the OpenShift release version v3.11.0: Get “https://api.github.com/repos/openshift/origin/releases/tags/v3.11.0”: dial tcp 13.250.168.23:443: connect: connection refused

确保可以连接外网,且网速较快,最好有正确上网方式。

如果切换了网络,需要重新开一个Terminal,有时候切换网络后原Terminal没有生效。

下载oc和iso很慢

可以提前下载好oc (OpenShift Client)和iso(minishift-centos7.iso)上传到minishift的cache目录。

以Mac OS为例:

mkdir -p ~/.minishift/cache/iso/centos/v1.17.0/cp minishift-centos7.iso ~/.minishift/cache/iso/centos/v1.17.0/mkdir -p ~/.minishift/cache/oc/v3.11.0/darwin/cp oc ~/.minishift/cache/oc/v3.11.0/darwin/

oc:

下载oc:

minishift的cache目录:

# Mac OS~/.minishift/cache/oc/v3.11.0/darwin/# CentOS~/.minishift/cache/oc/v3.11.0/linux/# Windows~/.minishift/cache/oc/v3.11.0/windows/

ISO

下载iso:

minishift的cache目录:

~/.minishift/cache/iso/centos/v1.17.0/

拉取OpenShift镜像很慢

第一次用minishift start部署OpenShift集群时,会从Docker Hub拉取以下OpenShift镜像:

docker.io/openshift/origin-cli:v3.11.0docker.io/openshift/origin-control-plane:v3.11.0docker.io/openshift/origin-deployer:v3.11.0docker.io/openshift/origin-docker-registry:v3.11.0docker.io/openshift/origin-haproxy-router:v3.11.0docker.io/openshift/origin-hyperkube:v3.11.0docker.io/openshift/origin-hypershift:v3.11.0docker.io/openshift/origin-node:v3.11.0docker.io/openshift/origin-pod:v3.11.0docker.io/openshift/origin-service-serving-cert-signer:v3.11docker.io/openshift/origin-web-console:v3.11.0

这些镜像比较大,因此需要一段时间才可以拉取完成。

可以在另外一个terminal运行minishift image list --vm来查看已经拉取了哪些镜像。也可以通过minishift ssh进入Minishift虚拟机后,运行docker images查看拉取的镜像。

可在minishift start中使用--registry-mirror 来使用阿里云镜像加速器来加快拉取镜像速度。

Minishift start失败

如果minishift start 失败中断,可以先运行minishift stop停止集群,再重新运行minishift start

重新安装Minishift虚拟机和部署OpenShift集群

先删除Minishift虚拟机和OpenShift集群,并清除缓存:

minishift delete --force --clear-cache

再重新运行minishift start安装和部署。

Temporary Error: Could not find an IP address

从Mac OS 10.12 升级到 10.15 后出现该问题。

参见:

尝试了上面连接提到的方法,重新安装有时候可以,但是有时候又不行;退出代理,不行。

最后采用安装,然后用Virtualbox作为Minishift VM driver。

# 先删除Minishift VMminishift delete --force --clear-cacherm -r ~/.kube# 重新创建Minishift VM和部署OpenShift集群minishift start \--vm-driver=virtualbox \--registry-mirror=https://5twf62k1.mirror.aliyuncs.com \--show-libmachine-logs \-v 5

打开Mac上的系统偏好设置,打开“安全性与隐私”,允许运行oc程序。

oc login -u system:admin 需要密码

参见:

# 进入Minishift VMminishift ssh# 在Minishift VM上# 默认为docker用户,切换到root用户sudo su -# 以root用户运行export KUBECONFIG=/var/lib/minishift/base/openshift-apiserver/admin.kubeconfig PATH="$PATH:/var/lib/minishift/bin"# 创建一个admin用户,角色为集群管理员cluster-adminoc adm policy add-cluster-role-to-user cluster-admin admin# 退出rootexit# 退出Minishift VMexit# 在宿主机上# 也可以不输入admin用户的密码oc login -u admin -p admin# 查看nodes(集群管理员才有该权限)oc get nodes# 查看projects(集群管理员才能看到系统projects)oc projects

删除Minishift VM后再次启动很慢

删除Minishift VM后,再次启动Minishift VM Docker daemon需要再次拉取OpenShift镜像,所以很慢。

可以导出相应的OpenShift镜像在宿主机的~/.minishift/cache/images中,再次启动Minishift VM时会自动导入这些缓存的镜像,以加快速度。

参见:

# enable image cachingminishift config set image-caching true# export images from Minishift VM to hostminishift image export docker.io/openshift/origin-cli:v3.11.0 \  docker.io/openshift/origin-control-plane:v3.11.0 \  docker.io/openshift/origin-deployer:v3.11.0 \  docker.io/openshift/origin-docker-registry:v3.11.0 \  docker.io/openshift/origin-haproxy-router:v3.11.0 \  docker.io/openshift/origin-hyperkube:v3.11.0 \  docker.io/openshift/origin-hypershift:v3.11.0 \  docker.io/openshift/origin-node:v3.11.0 \  docker.io/openshift/origin-pod:v3.11.0 \  docker.io/openshift/origin-service-serving-cert-signer:v3.11 \  docker.io/openshift/origin-web-console:v3.11.0 \  openshift/origin-control-plane:v3.11.0 \  openshift/origin-docker-registry:v3.11.0 \  openshift/origin-haproxy-router:v3.11.0

Minishift Web Console打不开

在资源不够时OpenShift API server会退出,导致Minishift web console打不开,即使运行minishift status查看集群状态仍然为Running,但是运行oc get nodes已获取不到信息。

解决方法:加大Minishift VM的内存和CPU,默认为2核4GB,再重启Minishift。

minishift config set cpus 4minishift config set memory 8GB

如果仍然有问题,只能在有问题时再重启Minishift。因为Minishift是单节点集群,跑的Pod一多,资源就不够了,就会导致API server退出。

参考文档

转载地址:https://cookcode.blog.csdn.net/article/details/109689243 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:OpenShift学习资料(持续更新)
下一篇:用Prometheus和Grafana监控Kubenetes集群

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月18日 17时35分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章