容器化应用: 在阿里云搭建多节点 Openshift 集群
2018-03-07 13:15
633 查看
概述
两节点集群做试验计算节点要配置的东西比较少, 建议先配置计算节点, 然后切换到 Master 节点慢慢搞.
在阿里云的美国区(硅谷)开了两个ECS(按量)Master: 2CPU, 16G内存, CentOS 7.4 64位
Node1: 1CPU, 8G内存, CentOS 7.4 64位
可是, 自定义镜像能在国内跨区复制, 但是总算借助米国的网络算是把整个流程跑通了, 国内的网络出国各种卡.
配置
配置计算节点和控制节点, 稍微有点区别, 如下计算节点
# 设置主机名 hostnamectl set-hostname node1.example.com # 安装依赖包 yum install -y docker wget git net-tools bind-utils iptables-services bridge-utils bash-completion # 启用, 启动 Docker 服务 systemctl enable docker; systemctl start docker # 启用, 启动网络管理器 systemctl enable NetworkManager; systemctl start NetworkManager # 停止, 禁用防火墙 systemctl stop firewalld ; systemctl diable firewalld # Ansible和系统自带的urllib3有冲突, 卸载之: Error unpacking rpm package python-urllib3-1.10.2-3.el7.noarch pip uninstall urllib3
Master 控制节点
# 设置主机名 hostnamectl set-hostname master.example.com # 本地域名解析 echo "172.20.62.195 master.example.com" >> /etc/hosts echo "172.20.62.196 node1.example.com" >> /etc/hosts # 安装依赖包 yum install -y docker wget git net-tools bind-utils iptables-services bridge-utils bash-completion # 启用, 启动 Docker 服务 systemctl enable docker; systemctl start docker # 启用, 启动网络管理器 systemctl enable NetworkManager; systemctl start NetworkManager # 停止, 禁用防火墙 systemctl stop firewalld ; systemctl diable firewalld # Ansible和系统自带的urllib3有冲突, 卸载之: Error unpacking rpm package python-urllib3-1.10.2-3.el7.noarch pip uninstall urllib3 # 安装, 启用, 启动ETCD分布式数据库 yum -y install etcd systemctl enable etcd; systemctl start etcd # 下载EPEL yum -y install https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-10.noarch.rpm # enable=0 sed -i -e "s/^enabled=1/enabled=0/" /etc/yum.repos.d/epel.repo # 安装 yum -y --enablerepo=epel install ansible pyOpenSSL # 生成秘钥 ssh-keygen -f /root/.ssh/id_rsa -N '' # 复制秘钥到集群中的所有节点, 实现无密码访问 for host in master.example.com node1.example.com; do ssh-copy-id -i ~/.ssh/id_rsa.pub $host; done # 下载 openshift-ansible wget https://github.com/openshift/openshift-ansible/archive/openshift-ansible-3.7.0-0.126.0.tar.gz tar zxvf openshift-ansible-3.7.0-0.126.0.tar.gz # 备份 cp /etc/ansible/hosts /etc/ansible/hosts.bak # 配置 /etc/ansible/hosts # /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 openshift_deployment_type=origin openshift_release=3.6.0 # 如果CPU内存满足条件, 可以注释掉 openshift_disable_check # Master 节点要求 2 CPU核心, 16G内存, 40G磁盘 # Node 节点要求 1 CPU核心, 8G内存, 20G磁盘 openshift_disable_check=disk_availability,docker_storage,memory_availability,docker_image_availability # 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] master.example.com # host group for nodes, includes region info [nodes] master.example.com node1.example.com node1.example.com openshift_node_labels="{'region': 'infra', 'zone': 'east'}" [etcd] master.example.com
开工, 坐等结果
ansible-playbook ~/openshift-ansible-openshift-ansible-3.7.0-0.126.0/playbooks/byo/config.yml
然后
如果有啥毛病, 把错误消息复制下来Google. 百度没有! 如果一切正常, 可以通过下面的一些命令查看集群的信息查看节点列表
oc get nodes
我是谁
当前登录用户是WHO?oc whoami
显示集群资源列表
oc get all -o wide
创建用户
htpasswd -b /etc/origin/master/htpasswd dev dev
以集群管理员登录
oc login -u system:admin
给DEV账号添加集群管理员角色
oc adm policy add-cluster-role-to-user cluster-admin dev
打洞
master.example.com,
node1.example.com, 是通过本地 /etc/hosts 文件解析的, 无法通过公网访问. 要公网访问, 可以使用DNS.在本机
/etc/hosts添加如下一行:
127.0.0.1 master.example.com执行如下命令打洞到远程Master
ssh -L 127.0.0.1:8443:master.example.com:8443 root@47.88.54.94
47.88.54.94是真实的IP, 但是后面谁用就不知道了!!!浏览器打开:
https://master.example.com:8443
参考资料
https://bugzilla.redhat.com/s...http://blog.csdn.net/huqigang...
https://docs.openshift.org/la...
http://blog.csdn.net/huqigang...
相关文章推荐
- Bind 搭建 DNS(应用:域名方式配置分布式集群,扩展方便)
- 阿里云搭建基于MatlabMPI的集群(一):阿里云连接基本操作
- 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.3.Oracle 集群节点间连通失败
- Elasticsearch5.2.1集群搭建,动态加入节点,并添加监控诊断插件
- 阿里云搭建基于MatlabMPI的集群(三):Ubuntu16.04安装MATLAB2014a
- 01-搭建一个4个节点的CentOS集群
- 5节点Hadoop分布式集群搭建-超详细文档
- openshift/origin学习记录(8)——基于镜像安装多节点集群(Containerized Installer)
- 【redis篇】redis的单节点/集群方式搭建及说明
- redis集群搭建(6节点单实例)
- Linux 下Weblogic集群搭建-04通过nodemanage进行节点的启动与关闭
- Flume-ng 多节点集群搭建
- k8s单节点集群部署应用
- 【配置】Hadoop单节点集群搭建
- Hadoop在百度的应用--4000个节点的分布式集群
- 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)
- docker应用-6(mysql+mycat 搭建数据库集群)
- Spark1.2集群环境搭建(Standalone+HA) 4G内存5个节点也是蛮拼的
- 5节点Hadoop分布式集群搭建-超详细文档