《OpenShift 4.x HOL教程汇总》
注意:请参见最新的说明配置文档:《OpenShift 4 - 运行单机版 OpenShift 运行环境》。
OpenShift 4 单机版 - CodeReady Container
什么是CodeReady Container?
在生产环境Red Hat OpenShift通常是多机集群部署,个人环境通常没有什么高的硬件配置,为此Red Hat提供了个人单机版的OpenShift环境。在OpenShift 3.11时代,此环境叫minishift,而到了OpenShift 4时代,这个单机OpenShift运行环境被统一到面向Dev的CodeReady系列中:CodeReady Container(简称CRC)。之所以叫CodeReady系列,是因为除了提供OpenShift运行环境的CodeReady Container外,还提供面向本地应用开发的IDE:CodeReady Studio、面向Kubernetes云原生应用开发的WebIDE:CodeReady Workspaces。
CRC的安装运行环境
- 空余内存8G(越大越好)/硬盘35GB/可上网
- Windows-可使用Hyperv或Virtualbox
- Linux-可使用KVM或Virtualbox
- MAC-可使用HyperKit或Virtualbox
官方有说法,VirtualBox可能以后不被支持了,不过在CRC现在还支持。
下载文件
- 进入https://cloud.redhat.com/openshift/install/crc/installer-provisioned,下载对应OS的CRC软件包和secret文件
- 如果使用Virtualbox,进入https://mirror.openshift.com/pub/openshift-v4/clients/crc/latest/下载virtualbox版的crc_virtualbox_4.x.x.crcbundle文件
Setup CRC环境
- 运行以下命令,确认运行环境所支持的虚拟化,见“-d”参数说明。
crc setup -h
- 执行命令,创建CRC运行环境(以virtualbox为例)
crc setup -d virtualbox
- 运行命令,启动CRC(以virtualbox为例)。其中-m为内存参数,数值以m为单位,缺省为8192(即8GB)。根据部署的应用规模设置,但建议尽量设置大些。
crc start -c 4 -m 10240 -d virtualbox -p <YOUR_SECRET_FILE>
- 启动完成后会在terminal中显示kubeadmin用户的随机密码,记下以备后用。
登录
- 执行命令获取crc虚拟访问地址
crc ip
- 如果是Windows,需要将域名console-openshift-console.apps-crc.testing和api.crc.testing加到hosts文件中
- 访问https://console-openshift-console.apps-crc.testing,根据提示用kubeadmin和缺省密码登录即可。
- 执行以下命令,获取设置客户端oc路径
crc oc-env
eval $(crc oc-env)
- 执行命令,登录openshift
oc login -u kubeadmin -p <PASSWORD> https://api.crc.testing:6443
- 登录CRC虚拟机的coreos 执行命令,获得master的node名称
oc get nodes
NAME STATUS ROLES AGE VERSION
crc-shdl4-master-0 Ready master,worker 26d v1.14.6+7e13ab9a7
- 执行命令,根据master的node名称进入其coreos
oc debug node/crc-shdl4-master-0
常见错误
- CRC会定期出新版本升级。当CRC启动是会检查其有效性,如果显示以下错误,可以通过更新到最新版的CRC解决。
ERRO Failed to connect to the CRC VM with SSH
或者
INFO Verifying validity of the cluster certificates ...
ERRO Certs have expired, they were valid till: 30 Nov 19 03:22 +0000
- Virtualbox环境中,stop再start会出现“Could not find matching IP for MAC address
080027b62019”错误。解决方案:
mv ~\.crc\cache\crc_virtualbox_4.2.2\id_rsa_crc ~\.crc\cache\crc_virtualbox_4.2.2\id_rsa_crc.bak
cp ~\.crc\machines\crc\id_rsa ~\.crc\cache\crc_virtualbox_4.2.2\id_rsa_crc
- 在CRC第一次启动后如果直接部署Operator,有时会Pending在安装过程(一切看着正常,但就是不向下安装)。可以查看Operator Pod的日志,会提示没有用户登陆。因为kubeadmin是内部用户,OpenShift不认为是正常用户。此时只需要用CRC缺省自带的developer用户登陆即可让Operator安装过程往下走了。