前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TKE 容器外网访问能力介绍

TKE 容器外网访问能力介绍

原创
作者头像
zhaoqiyuan
修改2020-03-16 10:38:55
4.2K0
修改2020-03-16 10:38:55
举报
文章被收录于专栏:容器网络容器网络

背景

云上有各种复杂的网络互通场景,例如:

1. 容器要能访问外网

2. 容器要能访问用户 IDC

3. 容器要能访问云上其他 VPC

本文将以外网访问为例介绍 TKE 当前的实现机制。

实现原理

数据面

当前的实现是让容器访问外网的数据包 SNAT 为节点 IP 出去,所以容器具备外网访问能力依赖于节点具备外网访问能力

可以通过给节点分配外网 IP,绑定了弹性公网 IP,绑定 NAT 网关等方式让节点具备外网访问能力。

控制面

当前的实现是容器访问集群网络和 VPC 网络的不走 SNAT,访问其他网段都走 SNAT

具体 iptables 规则的下发依赖于 ip-masq-agent

ip-masq-agent 配置

配置示例:

VPC 网络:10.0.0.0/16

集群网络:172.18.0.0/16

代码语言:javascript
复制
# kubectl get cm -n kube-system ip-masq-agent-config -o yaml
apiVersion: v1
data:
  config: '{"NonMasqueradeCIDRs":["172.18.0.0/16","10.0.0.0/16"],"MasqLinkLocal":true,"ResyncInterval":"1m0s"}'
kind: ConfigMap
metadata:
  name: ip-masq-agent-config
  namespace: kube-system
  ......

上述配置的意思是:访问目的网络 10.0.0.0/16 和 172.18.0.0/16 不做 SNAT,其他网段都做 SNAT,不对网段 169.254.0.0/16 做特殊处理,同步周期为1分钟。

iptables 具体规则

代码语言:javascript
复制
# iptables -t nat -L IP-MASQ-AGENT
Chain IP-MASQ-AGENT (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             172.18.0.0/16        /* ip-masq-agent: cluster-local traffic should not be subject to MASQUERADE */ ADDRTYPE match dst-type !LOCAL
RETURN     all  --  anywhere             10.0.0.0/16          /* ip-masq-agent: cluster-local traffic should not be subject to MASQUERADE */ ADDRTYPE match dst-type !LOCAL
MASQUERADE  all  --  anywhere             anywhere             /* ip-masq-agent: outbound traffic should be subject to MASQUERADE (this match must come after cluster-local CIDR matches) */ ADDRTYPE match dst-type !LOCAL

参考文献:

弹性公网 IP:https://cloud.tencent.com/document/product/213/5733

NAT 网关:https://cloud.tencent.com/document/product/215/20079

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

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

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

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

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 实现原理
    • 数据面
      • 控制面
        • ip-masq-agent 配置
        • iptables 具体规则
    • 参考文献:
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档