[转]OpenShift 集群搭建指南
转自:http://www.cnblogs.com/zhangning/p/7251810.html
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
[转]OpenShift 集群搭建指南的更多相关文章
- 超详细的 Redis Cluster 官方集群搭建指南
今天从 0 开始搭建 Redis Cluster 官方集群,解决搭建过程中遇到的问题,超详细. 安装ruby环境 因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,rub ...
- Redis Cluster 官方集群搭建指南
安装ruby环境因为官方提供的创建集群的工具是用ruby写的,需要ruby2.2.2+版本支持,ruby安装需要指定openssl. 安装openssl $ wget https://www.open ...
- ZooKeeper集群-搭建指南
第一步: 上传安装程序到Linux 这一步很简单就不在这过多说明了! 第二步: 在Linux上使用命令行安装 第三步: 修改配置文件 1.修改zoo.cfg文件 2.修改集群中各台主机的名称 1).如 ...
- k8s集群搭建指南
一.简介 Ansible Docker Docker compose,docker swarm,docker machine Mesos,marathon Kubernetes(占据80%的市场) D ...
- 【转】kafka&zookeeper集群搭建指南
[转自]:http://www.cnblogs.com/luotianshuai/p/5206662.html 待续...
- Redis 集群搭建详细指南
先有鸡还是先有蛋? 最近有朋友问了一个问题,说毕业后去大城市还是小城市?去大公司还是小公司?我的回答都是大城市!大公司! 为什么这么说呢,你想一下,无论女孩男孩找朋友都喜欢找个子高胸大的.同样的道理嘛 ...
- RabbitMQ高级指南:从配置、使用到高可用集群搭建
本文大纲: 1. RabbitMQ简介 2. RabbitMQ安装与配置 3. C# 如何使用RabbitMQ 4. 几种Exchange模式 5. RPC 远程过程调用 6. RabbitMQ高可用 ...
- Spark —— 高可用集群搭建
一.集群规划 这里搭建一个3节点的Spark集群,其中三台主机上均部署Worker服务.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002和hadoop00 ...
- mongodb集群搭建过程记录
mongodb集群搭建花费比较长的时间,在此记录下过程,方便以后使用 一 软件环境 系统:ubuntu 18.04,mongodb 社区版4.2 https://docs.mongodb.com/ma ...
随机推荐
- 如何在linux环境上挂载磁盘
1.1 fdisk -l 命令 查看可用的磁盘信息(如果没有显示可用的磁盘,可重启一下主机:reboot) 1.2 df –h 命令 可查看已挂的磁盘情况 1.3 pvs ...
- ubuntu16.04运行ros的时候编译工作空间catkin_make出现的一个问题Could not find a package configuration file provided by
最近在进行ros里面的gazebo仿真之前需要对自己创建的工作空间进行编译,但是进行编译的时候输入catkin_make出现如下错误提示 查阅ROS问答社区之后发现两个比较有用的链接,如下 https ...
- RabbitMQ中声明交换器,队列时的,autoDelete=true自动删除的条件
在声明交换器和队列时,有一个属性叫autoDelete,表示是否自动删除. 如果autoDelete=true,表示自动删除.此处我们要理解,自动删除的条件是什么? 这里的关键是,自动删除的条件是向后 ...
- Labview多列列表框
前面板创建多列列表框 如何写入数据: 右键 创建属性节点 项名 创建属性节点 项符号 创造自定义项符号: 右键 创建调用节点 自定义项符号 设置为自定义符号 然后添加索引号 利用图片与声音 ...
- DevOps 开源工具
1. 开发工具 版本控制&协作开发 版本控制系统 Git Git 是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.开源中国 Git 代码托管平台:http:/ ...
- TCP长连接与短连接、心跳机制
1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时它们可以释放这个连接,连接的建立是需要三次 ...
- 继承 in her it
''' in her it 继承 de rive 派生 python2 (经典类|新式类) python3 (新式类) 1. What is inheritance? 什么是继承? 继承是一种新建类的 ...
- postman的安装和使用
在后端开发的过程中,没有前端代码可以配合测试已完成的代码是否有问题,这个时候就需要postman来帮忙解决.对于后端人员来说,postman是很好的测试工具,下面具体讲下怎么安装postman,本次安 ...
- 常见的javascript知识点
1.js获取标签.class.id 获取id: document.getElementById("name") 获取标签:document.getElementsByTagName ...
- vue生命周期中created和mounted的区别
created在渲染页面之前使用,通常是用来渲染页面 mounted通常是在渲染页面之后,用来操作dom节点 通常情况下使用created比较多,使用mounted相对少一些,一些情况使用mounte ...