本文全部相关连接pdf:https://tungstenfabric.org.cn/assets/uploads/files/tf-ceg-case1.pdfweb
这是全部Kubernetes CNI插件所能提供的最基础和最根本的功能。应用程序Pods之间要能相互通讯,而Kubernetes Services是确保Pods随时间推移来实现应用程序规模性和可用性的一种方式。centos
全部主要的CNI插件都提供基本的Pod到Pod的连通性以及某些服务类型,例如ClusterIP。浏览器
除此以外,Tungsten Fabric原生支持LoadBalancer。在AWS上运行时,LoadBalancer在清单中使用Service建立面向公众的AWS ELB,从而使您的应用程序可从Internet一步访问。微信
这也意味着在本地和全部主要的公共云中,对全部集成Tungsten Fabric的Kubernetes,能够在应用程序中使用Kubernetes部署清单而无需更改。网络
建立部署时,CNI与Kubernetes协同工做,为每一个应用程序Pod分配网络IP地址,并将每一个Pod“链接”到集群网络。app
注意:大多数CNI经过建立一个overlay network来工做,这一网络在大多数状况下都包含在单个Kubernetes集群的边界内。因此,不一样集群中的Pod没法直接通讯。负载均衡
在本文档中咱们不会介绍多集群方案,可是Tungsten Fabric可以支持此类配置。一次安装Tungsten Fabric就能够同时服务于多个Kubernetes集群。在这种状况下,即便Kubernetes集群自己位于不一样的位置,来自不一样集群的Pod也能够直接相互通讯。less
Kubernetes中的服务是“公开运行在一组Pod上的应用程序的抽象方法”。在大多数状况下,服务是简单的Round-Robin负载均衡器。它具备用于接收网络请求的虚拟IP地址(“VIP”),以及接受这些请求转发的零个或多个端点的IP地址。webapp
在大多数状况下,服务会经过在运行的Pod上查找匹配的标签(称为“选择器”,Selectors)来自动发现属于应用程序Pod的端点IP地址。ide
确保您位于沙箱控制节点上,以root用户身份登陆,而且位于正确的目录中:
#确认您是root帐户
whoami | grep root || sudo -s
#切换到清单目录
cd /home/centos/yelb/deployments/platformdeployment/Kubernetes/yaml
查看cnawebapp-loadbalancer.yaml文件,查找以Kind: Deployment和 Kind: Service开头的部分
less cnawebapp-loadbalancer.yaml
(使用箭头/ PgUp / PgDn导航;按q退出)
注意:
接下来,部署咱们的示例应用程序,看看会发生什么:
kubectl create -f cnawebapp-loadbalancer.yaml
这将建立如下应用程序拓扑:
若是应用程序部署没有错误,咱们应该可以看到:
全部Pod都有本身的IP地址,而且正在各自的端口上监听:
全部服务都有VIP和正在监听的端口:
全部服务都发现了各自的端点:
因为Tungsten Fabric提供了对Kubernetes的LoadBalancer服务支持,所以如今应该可以从Internet链接到咱们的应用程序。咱们能够找出负载均衡器的公共DNS名称:
让咱们经过将网络浏览器指向该地址来进行检查,能够看到应用位于:
aa01af9988cc311e9badf06b57ebf630-1452353610.us-west-1.elb.amazonaws.com
成功了!
使用该应用程序后,能够随时取消部署:
kubectl delete -f cnawebapp-loadbalancer.yaml
在此用例中,咱们使用Tungsten Fabric Kubernetes CNI插件并与AWS的Elastic Load Balancing集成,部署了示例应用程序,而且它能够从互联网访问。
若是这就是咱们想要的,那么目的已经达到了。可是,若是咱们须要SSL卸载,或者想基于HTTP主机和/或路径将传入请求发送到不一样的应用程序组件,则须要使用Kubernetes Ingress。用例2涵盖了这一场景。(用例2的详细内容近期发布,敬请关注)
MORE
更多TF+K8s文章
关注微信:TF中文社区