OpenShift 集群搭建指南
v1.0
-
搭建Hyper-v虚拟机或物理机
-
配置物理机静态IP,启用Hyper-v服务。
-
规划服务器节点
节点 |
说明 |
主机名 |
IP |
Master |
主控制节点 |
openshiftmaster.dynastech.com |
192.168.30.95 |
Etcd |
协调服务节点 |
openshiftetcd.dynastech.com |
192.168.30.96 |
Node1 |
计算节点1 |
openshiftnode1.dynsatech.com |
192.168.30.102 |
Node2 |
计算节点2 |
openshiftnode2.dynastech.com |
192.168.30.98 |
Node3 |
计算节点3 |
openshiftnode3.dynastech.com |
192.168.30.110 |
-
新建虚拟机master节点1个
-
新建Etcd节点1或3个(奇数个),负责分布式协调
-
新建Node节点若干,这里示例为3台
-
为每台虚拟机配置 旧版网络适配器
-
启动各个虚拟机安装Centos7系统
校验并安装centos linux 7系统
等待校验完成
-
选择安装语言
-
选择安装功能
-
软件选择
(这里可以选择桌面版,如下图,服务器建议最小安装)
-
安装位置
-
-
配置网络和主机名
-
下一步,开始安装
-
配置root密码
-
启动其他节点执行同样的安装,配置不同的主机名和网络地址。
-
安装完毕
-
配置虚拟机基础环境
-
我本机是windows安装Xshell5.
-
配置域名解析
-
修改DNS服务器指向 或者b
-
修改节点本地/etc/hosts文件
这里我为了测试方便,直接修改各个节点hosts文件
用xshell5连接各个节点
进入编辑vi /etc/hosts
开始编辑按insert
编辑完成esc,
保存并退出:wq
强制退出不保存!q
-
-
配置OpenShift 环境依赖软件
-
所有节点执行:
[root@所有节点 ~]# yum install -y lrzsz git wget net-tools bind-utils iptables-services bridge-utils bash-completion
[root@所有节点 ~]# yum install -y docker
-
检查安装情况
-
iptables网络
[root@openshiftectd ~]# systemctl start iptables
[root@openshiftectd ~]# systemctl enable iptables
-
docker 安装情况
-
-
软件安装完毕后,关闭虚拟机,为每个节点增加一块硬盘作为docker数据存储位置
-
增加硬盘完毕,重新启动所有节点,配置docker存储位置
-
查看硬盘信息
命令: fdisk -l
如图所示,添加的数据盘挂载在/dev/sdb目录下
-
docker配置
-
编辑docker存储配置位置
[root@所有节点 ~]# vi /etc/sysconfig/docker-storage-setup
-
[root@所有节点 ~]# docker-storage-setup
-
每个节点修改docker镜像站点
vi /etc/sysconfig/docker
追加参数:
--registry-mirror=https://docker.mirrors.ustc.edu.cn
-
增加docker开机启动服务
systemctl enable docker
-
启动docker
systemctl start docker
-
查看docker服务情况
systemctl status docker
-
-
配置OpenShift Etcd节点
[root@openshiftectd ~]# yum install -y etcd
[root@openshiftectd ~]# systemctl enable etcd
[root@openshiftectd ~]# systemctl start etcd
-
配置OpenShift Master节点
-
安装EPEL仓库
下载安装包
http://mirrors.neusoft.edu.cn/epel/7/x86_64/e/
上传到master
[root@openshiftmaster ~]# yum install -y epel-release-7-10.noarch.rpm
-
安装ansible pyOpenSSL
[root@openshiftmaster ~]# yum install -y --enablerepo=epel ansible pyOpenSSL
-
配置各个节点和master节点的互信
-
生成密钥
[root@openshiftmaster ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''
-
配置ssh验证
[root@openshiftmaster ~]# vi /etc/ssh/ssh_config
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftmaster.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftetcd.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftnode1.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftnode2.dynastech.com
[root@openshiftmaster ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub openshiftnode3.dynastech.com
-
-
下载openshift-ansible源码
[root@openshiftmaster ~]# git clone https://github.com/openshift/openshift-ansible
-
配置ansible
- 备份hosts
- 编辑hosts
参考:https://docs.openshift.org/latest/install_config/install/advanced_install.html
[root@openshiftmaster ~]# vi /etc/ansible/hosts
添加如下内容
# Create an OSEv3 group that contains the masters and nodes groups
[OSEv3:children]
masters
nodes
etcd
# Set variables common for all OSEv3 hosts
[OSEv3:vars]
# SSH user, this user should allow ssh based auth without requiring a password
ansible_ssh_user=root
# If ansible_ssh_user is not root, ansible_become must be set to true
#ansible_become=true
openshift_deployment_type=origin
# uncomment the following to enable htpasswd authentication; defaults to DenyAllPasswordIdentityProvider
openshift_master_identity_providers=[{'name': 'htpasswd_auth', 'login': 'true', 'challenge': 'true', 'kind': 'HTPasswdPasswordIdentityProvider', 'filename': '/etc/origin/master/htpasswd'}]
# host group for masters
[masters]
openshiftmaster.dynastech.com
# host group for etcd
[etcd]
openshiftetcd.dynastech.com
# host group for nodes, includes region info
[nodes]
openshiftmaster.dynastech.com
openshiftnode1.dynastech.com
openshiftnode2.dynastech.com
openshiftnode3.dynsatech.com
-
开始安装集群
-
运行openshift-ansible
[root@openshiftmaster ~]# ansible-playbook openshift-ansible/playbooks/byo/config.yml
等待运行完成,正常情况已经配置完成。
硬件配置太低会有如下错误:
解决此错误的方法是编辑/etc/ansible/hosts
加入如下配置,跳过检查项
由于是运行在pc机上的,硬件配置不够,我在这里同时将etcd合并到了master节点(即将ectd安装到master节点并启动),在配置hosts时,将etcd指向master节点,停用了node3,配置变成如下图所示
(如果参考者的运行环境,硬件配置可以,这里不必要删减节点)
再次运行
[root@openshiftmaster ~]# ansible-playbook openshift-ansible/playbooks/byo/config.yml
即成功通过安装。
安装成功的汇总信息如下图
-
检查运行情况
[root@openshiftmaster ~]# oc get nodes
-
集群账户管理
[root@openshiftmaster ~]# htpasswd -b /etc/origin/master/htpasswd admin admin
-
登录web站点
配置本机hosts文件,将master节点ip指向其主机名
用admin登录web站点
至此OpenShift集群搭建完毕!开始探索吧………
后记:
此文档不详尽处:
- docker在linux中的配置
-
没有详细介绍多样化集群部署,想知道更多参考官方文档
https://docs.openshift.org/latest/install_config/install/advanced_install.html