前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TF+K8s部署指南丨K8s更新及Tungsten Fabric功能支持

TF+K8s部署指南丨K8s更新及Tungsten Fabric功能支持

原创
作者头像
Tungsten Fabric
修改2020-12-14 11:03:59
6420
修改2020-12-14 11:03:59
举报

本文重点介绍Kubernetes的更新,以及Tungsten Fabric中相应支持的功能。

Kubernetes节点的TLS引导功能

从5.1版本开始,Tungsten Fabric支持Kubernetes节点的TLS引导(Bootstrapping)。TLS引导简化了Kubernetes从TF集群中添加和移除节点的能力。

基于优先权的多租户

从5.1版本开始,Tungsten Fabric通过ResourceQuotaScopeSelector功能支持各种资源配额的优先级。

改进的自动缩放功能

从5.1版本开始,Tungsten Fabric可以基于负载创建和删除pod,从而支持改进的pod自动缩放功能。

通过ip-fabric-forwarding功能实现Kubernetes Pod的可达性

Kubernetes pod是一组单个或多个容器(如Docker容器),这些容器共享的存储,以及如何运行容器的配置选项。由于pod处于overlay网络中,所以如果没有网关或vRouter,就无法从underlay网络直接到达。

从TF 5.0版本开始,ip-fabric-forwarding功能可以将虚拟网络作为underlay网络的一部分而创建,并消除了针对数据的封装和解封装需求。注意,ip-fabric-forwarding功能仅适用于pod网络。如果启用了ip-fabric-forwarding功能,pod-网络就会关联到ip-fabric-ipam,而不是pod-ipam,pod-ipam也是一个flat子网。

这里的ip-fabric-forwarding功能在全局级和命名空间级中被启用和禁用。默认情况下,全局级别的ip-fabric-forwarding功能是被禁用的。要在全局级别启用该功能,必须在/etc/contrail/contrail-kubernetes.conf文件的"[KUBERNETES]"部分将"ip_fabric_forwarding"设置为"true"。要在命名空间级别启用或禁用该功能,必须在命名空间注释中分别将"ip_fabric_forwarding"设置为"true"或"false"。例如,"opencontrail.org/ip_fabric_forwarding":"true"。该功能一旦启用,就不能被禁用。

更多信息,请参阅以下链接:

https://github.com/tungstenfabric/tf-specs/blob/master/gateway-less-forwarding.md

通过虚拟网络实现服务隔离

在隔离命名空间模式下,一个命名空间中的服务无法从其它命名空间访问,除非明确定义了安全组或网络策略以允许访问。如果任何Kubernetes服务是由隔离命名空间中的pod实现的,那么这些服务只能通过Kubernetes的service-ip对同一命名空间中的pod进行访问。

Kubernetes的service-ip虽然在一个隔离的命名空间中,但还是从集群网络中分配。因此,默认情况下,来自一个命名空间的服务可以到达另一个命名空间的服务。然而,隔离命名空间中的安全组会阻止从外部命名空间的访问,也会阻止从集群外部的访问。为了使外部命名空间能够访问,必须编辑安全组以允许访问所有命名空间,但这就违背了隔离的目的。

这里的ip-fabric-forwarding功能在全局级和命名空间级中被启用和禁用。默认情况下,全局级别的ip-fabric-forwarding功能是被禁用的。要在全局级别启用该功能,必须在/etc/contrail/contrail-kubernetes.conf文件的"[KUBERNETES]"部分将"ip_fabric_forwarding"设置为"true"。要在命名空间级别启用或禁用该功能,必须在命名空间注释中分别将"ip_fabric_forwarding"设置为"true"或"false"。例如,"opencontrail.org/ip_fabric_forwarding":"true"。该功能一旦启用,就不能被禁用。

更多信息,请参阅以下链接:

https://github.com/tungstenfabric/tf-specs/blob/master/gateway-less-forwarding.md

通过虚拟网络实现服务隔离

在隔离命名空间模式下,一个命名空间中的服务无法从其它命名空间访问,除非明确定义了安全组或网络策略以允许访问。如果任何Kubernetes服务是由隔离命名空间中的pod实现的,那么这些服务只能通过Kubernetes的service-ip对同一命名空间中的pod进行访问。

Kubernetes的service-ip虽然在一个隔离的命名空间中,但还是从集群网络中分配。因此,默认情况下,来自一个命名空间的服务可以到达另一个命名空间的服务。然而,隔离命名空间中的安全组会阻止从外部命名空间的访问,也会阻止从集群外部的访问。为了使外部命名空间能够访问,必须编辑安全组以允许访问所有命名空间,但这就违背了隔离的目的。

Kubernetes服务Node-Port是基于节点与pod的可达性。由于Tungsten Fabric通过网络策略提供了节点和pod之间的连接,所以支持Node Port。

Kubernetes网络策略支持

Tungsten Fabric支持以下Kubernetes 1.12版网络策略功能。

·网络策略的egress支持——每个 NetworkPolicy包括一个policyTypes列表(包括Ingress、Egress,或两者兼有)。policyTypes字段表示给定策略是否适用于所选pod的ingress流量,是否适用于所选pod的egress流量,或者两者都适用。从5.1版本开始,Tungsten Fabric支持podSelector&namespaceSelector egress规范。从5.0版本开始,Tungsten Fabric还支持podSelector、namespaceSelector和egress CIDR规范。

·无类别域间路由(CIDR)选择器支持egress和ingress网络策略。

·Contrail-ansible-deployer提供——Contrail-ansible-deployer更新以支持Kubernetes 1.12。

Tungsten Fabric支持Kubernetes 1.9.2版本,并能够在TF中使用防火墙安全策略框架实现Kubernetes网络策略。虽然Kubernetes网络策略可以使用TF中的其它安全对象(如安全组和TF网络策略)来实现,但TF防火墙安全策略对标签的支持,有助于工作负载的简化和抽象。

(注:原文出现Contrail或Contrail networking的地方,本文都以Tungsten Fabric替代,绝大多数情况下两者功能一致。)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Kubernetes节点的TLS引导功能
  • 基于优先权的多租户
  • 改进的自动缩放功能
  • 通过ip-fabric-forwarding功能实现Kubernetes Pod的可达性
  • 通过虚拟网络实现服务隔离
  • 通过虚拟网络实现服务隔离
  • Kubernetes网络策略支持
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档