开篇之前如果没有安装openshift环境可以参考我的博文:centos7下安装openshift
本系列博客学习笔记参考《开源容器云openshift》一书:下载连接:https://download.youkuaiyun.com/download/u012371097/10745382
Router是openshift集群中的一个重要组件,它是外部访问集群内容器应用的入口。 集群外部的请求都会到达Router,由Router分发到具体的容器中。
Router组件需要读取集群的信息,所以它需要关联一个系统账号Service Account,并为这个账号授权。
以下操作基于oc(命令行客户端)指令实现。
- 以管理员登录,并切换到default工程。
oc login -u system:admin
切换到default工程
oc project default
创建Router。
oc adm policy add-scc-to-user privileged system:serviceaccount:default:router
oc adm 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容器实例。