openshift/origin学习记录(2)——添加Router组件

来源:互联网 发布:部落战争手游源码下载 编辑:程序博客网 时间:2024/05/17 06:00
学习资料来源于官方英文文档与《开源容器云OpenShift》一书,因为刚开始学习,不确定博客的正确性,以下内容仅供参考。

本部分是在openshift/origin学习记录(1)——基于二进制文件的安装(单机版)的基础上进行。

Router是openshift集群中的一个重要组件,它是外部访问集群内容器应用的入口。集群外部的请求都会到达Router,由Router分发到具体的容器中。

Router组件需要读取集群的信息,所以它需要关联一个系统账号Service Account,并为这个账号授权。

以下操作基于oc(命令行客户端)指令实现。

  • 以管理员登录,并切换到default工程。
# oc login -u system:admin

这里写图片描述

# oc project default

这里写图片描述

  • 创建Router。
# oadm policy add-scc-to-user privileged system:serviceaccount:default:router# oadm router router --replicas=1 --service-account=router

这里写图片描述

在实际生产时,为了达到高可用的效果,可以通过设置--replicas创建夺个Router实例实现负载均衡并防止单点失效。

  • 查看Router状态。
# oc get pod -n default# ss -ltn|egrep -w "80|443"

这里写图片描述

通过检查实验主机上的端口监听状态,可以发现主机的端口80、443正在被Haproxy监听。

从技术上来说,Router就是一个运行在容器里的Haproxy

至此,Router组件部署已经完成。

之后,用户可以创建route对象,称为route规则,一个route规则会与一个service相关联,并且绑定一个域名。

route规则会被Router加载。当用户通过指定的域名访问应用时,域名会被解析并指向Router所在的计算节点上。Router获取这个请求后,会根据route规则定义转发给与这个域名对应的service后端相关联的Pod容器实例。

Router负责将集群外的请求转发到集群的容器。
Service负责将集群内的请求转发到指定的容器。
一个对外,一个对内。

阅读全文
2 0
原创粉丝点击