参考官方文档https://docs.okd.io/3.10/install/index.html,基于Ansible安装3.10版openshift集群。openshift origin已改名为openshift OKD。
特注:本文仅供初学者参考!生产环境请结合实际并参照官方文档!
遇到的坑以及未完善的地方总结
由于我是在自己笔记本上建了两台虚机,资源有限,这里就拿双节点模拟一下集群,其中master节点也是计算节点、infra节点,运行etcd和nfs。node节点运行etcd和lb。
官网推荐使用GlusterFS作为存储,我直接用的nfs。有关GlusterFS作为存储的做法,官网写的很清楚,想用GlusterFS可以参考官网https://docs.okd.io/3.10/install/configuring_inventory_file.html#advanced-install-glusterfs-persistent-storage。
如果lb和master在一个节点上,会有8443端口已被占用的问题,尝试在Inventory文件中修改API 8443端口为3443端口,安装还是有问题,故选择把lb不放在master节点上。建议安装时lb不要放在master节点上
如果etcd放在master节点上,会以静态pod形式启动。如果放在node节点上,会以系统服务的形式启动。我在安装过程中,一个etcd放在了master上,另一个放在了node上,导致etcd启动失败。解决方案是在master节点上yum安装了一个etcd(这个etcd实际并没有使用,不确定是否是这个原因解决了),最终仍是以静态pod起的etcd。建议安装时etcd要么全放在master节点上,要么全放在node节点上。
我在安装过程中,直接安装了带有nfs持久存储的监控,需要提前安装java-1.8.0-openjdk-headless python-passlib,这一点官网没有提及,不提前装安装会报错。
系统与环境要求
系统要求
以下部分确定了集群所有主机的硬件规格和系统级要求。
master系统要求
- 最低操作系统版本:Fedora 21、CentOS 7.4、RHEL 7.4、RHEL Atomic Host 7.4.5。
- 最低4 vCPU。
- 最小16GB RAM。
- 包含/var/的文件系统最小40GB硬盘空间。
- 包含/usr/local/bin/的文件系统最小1GB硬盘空间。
- 包含系统临时目录的文件系统最小1GB硬盘空间。
Etcd和Master在同一节点的,需要至少4核,2核系统将无法工作。
node系统要求
- 最低操作系统版本:Fedora 21、CentOS 7.4、RHEL 7.4、RHEL Atomic Host 7.4.5。
- NetworkManager 1.0或更新。
- 最低1 vCPU。
- 最小8GB RAM。
- 包含/var/的文件系统最小15GB硬盘空间。
- 包含/usr/local/bin/的文件系统最小1GB硬盘空间。
- 包含系统临时目录的文件系统最小1GB硬盘空间。
- 额外至少15GB未分配空间,用于Docker存储。
etcd系统要求
- 最小20GB硬盘空间存储etcd数据。
SELinux要求
在安装OKD之前,必须在所有服务器上启用SELinux,否则安装程序将失败。
/etc/selinux/config配置如下: