Kubernets二进制安装(14)之flannel之SNAT规则优化
flannel之SNAT规则优化的目的是由于在K8S中的容器内,访问不同宿主机中的容器的资源的时候,日志文件会记录为宿主机的IP地址,而不是记录为容器本身自己的IP地址,建议在不同的宿主机上的容器互访的时候,在日志文件中查询到的IP地址均为容器的真实的IP地址。如下图所示,是为宿主机或进入宿主机的容器中进行curl访问另外node节点的容器,都会被记录成宿主机的IP地址,这样就会导致不同宿主机的容器互访,会经过一次SNAT转换,而实际上,不同宿主机容器之间的访问,应该会被记录为容器的实际IP地址而非宿主机的IP地址

分别查询mfyxw30和mfyxw40主机是否安装iptables-services,如果未安装请先安装
安装iptables-service方法:yum -y install iptables-service

分别查看下mfyxw30和mfyxw40主机的iptables的POSTROUTING规则

-A POSTROUTING -s 10.10.30.0/24 ! -o docker0 -j MASQUERADE 这条规则中可以看出来,源地址为10.10.30.0/24的网段的IP地址,不从docker0网口出去的都需要做SNAT转发。这样就会导致在开头所看到的。在一台宿主机的容器要访问另外一台宿主机的容器,查询到的访问日志是被SNAT的。而在实际生产环境中,我们需要的是容器间互访,查看日志文件得到的IP地址应该是容器本身的IP地址而非宿主机的IP地址
1.先把原来的规则删除
分别在mfyxw30和mfyxw40主机上,删除-A POSTROUTING -s 10.10.30.0/24 ! -o docker0 -j MASQUERADE此规则,添加一条新的规则如下所示:

2.添加一条新的规则
再次登录到mfyxw30主机上的容器访问mfyxw40主机上的容器,并让mfyxw40主机上的容器一直监视着logs。会发现已经容器间互访的IP变成了容器的实际的IP地址

在mfyxw30宿主机上执行curl 10.10.40.2来访问mfyxw40宿主机上的容器的IP地址

在mfyxw40主机上的容器上可以看到日志输出如下

3.保存iptables
分别在mfyxw30和mfyxw40主机上执行iptables-save > /etc/sysconfig/iptables命令来保存所修改的

Kubernets二进制安装(14)之flannel之SNAT规则优化的更多相关文章
- Kubernets二进制安装(13)之部署Flannel
Flannel简介 Flannel是CoreDNS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址 ...
- Kubernets二进制安装(6)之部署主控节点服务--etcd
Etcd是Kubernetes集群中的一个十分重要的组件,用于保存集群所有的网络配置和对象的状态信息. 整个kubernetes系统中一共有两个服务需要用到etcd用来协同和存储配置,分别是 网络插件 ...
- Kubernets二进制安装(7)之部署主控节点服务--apiserver二进制安装
kube-apiserver集群规划 主机名 角色 IP地址 mfyxw30.mfxyw.com kube-apiserver主 192.168.80.30 mfyxw40.mfyxw.com kub ...
- Kubernets二进制安装(5)之私有仓库harbor搭建
在IP地址为192.168.80.50,机器名为mfyxw50上搭建私有仓库harbor harbor下载地址: harbor下载连接地址:https://github.com/goharbor/ha ...
- Kubernets二进制安装(2)之Bind9安装
1.修改主机名 hostnamectl set-hostname mfyxw10 hostnamectl set-hostname mfyxw20 hostnamectl set-hostname m ...
- Kubernets二进制安装(19)之集群平滑升级
在实际生产环境中,部署好的集群稳定就行了,但是,如果需要使用到新的功能或当前版本出现了严重的漏洞,都建议做升级,本教程是将node节点从v1.15.10版本平滑升级到v1.15.12版本,如果升级到相 ...
- Kubernets二进制安装(17)之安装部署Dashboard
1.下载dashboard镜像 在运维主机(mfyxw50.mfyxw.com)上执行命令 [root@mfyxw50 ~]# docker pull registry.cn-hangzhou.ali ...
- Kubernets二进制安装(12)之部署Node节点服务的kube-Proxy
kube-proxy是Kubernetes的核心组件,部署在每个Node节点上,它是实现Kubernetes Service的通信与负载均衡机制的重要组件; kube-proxy负责为Pod创建代理服 ...
- Kubernets二进制安装(11)之部署Node节点服务的kubelet
集群规划 主机名 角色 IP地址 mfyxw30.mfyxw.com kubelet 192.168.80.30 mfyxw40.mfyxw.com kubelet 192.168.80.40 注意: ...
随机推荐
- 深入解析vue响应式原理
摘要:本文主要通过结合vue官方文档及源码,对vue响应式原理进行深入分析. 1.定义 作为vue最独特的特性,响应式可以说是vue的灵魂了,表面上看就是数据发生变化后,对应的界面会重新渲染,那么响应 ...
- 小试牛刀ElasticSearch大数据聚合统计
ElasticSearch相信有不少朋友都了解,即使没有了解过它那相信对ELK也有所认识E即是ElasticSearch.ElasticSearch最开始更多用于检索,作为一搜索的集群产品简单易用绝对 ...
- Ice系列--基于IceGrid的部署方案
前言 前一篇文章介绍了IceGrid的简单应用.这篇文章来介绍一下它的高端玩法-如何将模板,复制组,知名对象应用于部署方案及其作用. 基于模板的部署方案 之前介绍了xml格式的配置文件通过各种描述符如 ...
- 大数据谢列3:Hdfs的HA实现
在之前的文章:大数据系列:一文初识Hdfs , 大数据系列2:Hdfs的读写操作 中Hdfs的组成.读写有简单的介绍. 在里面介绍Secondary NameNode和Hdfs读写的流程. 并且在文章 ...
- Mybatis总结(一)
Mybatis总结(一) 一.Mybatis启动流程(代码层面) 关于config.xml <?xml version="1.0" encoding="UTF-8& ...
- WPF权限控制——【1】界面布局
本来就不怎么喜欢写博客,好不容易申请了博客园的账号,迈出了先前没有跨越的第一步:转眼间几年的时间就过去了,还是空空如也.今天的心境是这样的,发现wpf相关的资料及源码实在不多,就想写下随笔:一方面是自 ...
- WPF排版布局经验总结(干货)简短不疲倦
本文不过多讲述wpf的基础布局控件,本文只记录WPF排版的技巧,这是个人的总结,不能符合所有情况,如果有何不对的地方,请评论指正,谢谢. 1.区域划分 在接手一个界面的时候,先纵观全局,将眼见的区域划 ...
- P5858 Golden Swold
写在前面 简单的单调队列优化 DP 处理略微有点恶心,于是乎,用来取 \(\max\) 的极小值直接开到了 long long 的最小极限,了 define int long long /cy 算法思 ...
- 洛谷 p3391
题目背景 这是一道经典的Splay模板题--文艺平衡树. 题目描述 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1, ...
- 从零搭建一个IdentityServer——初识OpenIDConnect
上一篇文章实现了IdentityServer4与Asp.net core Identity的集成,可以使用通过identity注册功能添加的用户,以Password的方式获取Access token, ...