本地部署OpenShift后oc命令报x509证书错误及连接超时求助
我来帮你拆解这两个问题的原因和解决办法,都是本地Minishift使用oc命令时常见的场景:
一、启动Minishift后报x509: certificate signed by unknown authority
这个错误的核心原因是:你的oc客户端当前配置还是指向之前的OpenShift Online集群,没有导入本地Minishift集群的CA证书,所以无法信任Minishift的API服务器证书。
解决步骤很简单,只需同步oc的配置到本地Minishift:
首先确保Minishift处于运行状态,执行以下命令让oc客户端关联到Minishift的本地实例:
- Windows系统:
@FOR /f "tokens=*" %i IN ('minishift oc-env') DO @%i - Linux/macOS系统:
eval $(minishift oc-env)
- Windows系统:
接着登录Minishift集群,默认账号可以用
developer(密码也是developer)或者admin(密码admin):oc login https://192.168.x.y:8443登录时会提示你是否接受未知证书,输入
y确认即可——这一步会自动把Minishift的CA证书添加到oc的信任列表里,之后再执行oc project这类命令就不会再报证书错误了。如果你不想通过登录来导入证书,也可以手动配置:
# 设置Minishift集群的CA证书 oc config set-cluster minishift --certificate-authority=$(minishift ca-cert) # 切换到Minishift的上下文 oc config use-context minishift
二、未启动Minishift时报连接超时错误
这个错误逻辑很清晰:Minishift没启动的话,本地的OpenShift集群API服务器(就是https://192.168.x.y:8443这个地址)根本没在运行,oc命令自然连不上。
解决办法就是先启动Minishift:
minishift start
等控制台提示Minishift启动完成(一般会显示控制台地址和登录信息),再执行oc命令就可以正常连接了。
补充说明
之前你用OpenShift Online时,oc的配置文件(路径是~/.kube/config,Windows下是%USERPROFILE%/.kube/config)里保存的是Online集群的上下文信息。切换到本地Minishift后,需要通过上述步骤更新这个配置文件,让oc指向本地的集群实例。
内容的提问来源于stack exchange,提问作者tm1701

