我对k8s比较陌生。现在,我已经多次建立集群,以确保我理解该过程。我在联网方面有些挣扎。我目前正在初始化,如下所示:
kubeadm init --apiserver-advertise-address=10.93.98.204 --pod-network-cidr=10.244.0.0/16
对此,我看到以下警告:
[WARNING HTTPProxyCIDR]: connection to "10.96.0.0/12" uses proxy "http://proxy.corp.sensis. com:3128". This may lead to malfunctional cluster setup. Make sure that Pod and Services IP ranges specified correctly as exceptions in proxy configuration
除其他事项外,我正在尝试确保正确配置群集和覆盖网络(法兰)。
我试图建立no_proxy环境变量(centos 7)。
我尝试如下的方法是如下更新/etc/profile.d/proxy.sh:
printf -v lan '%s,' "10.93.98.204","10.93.98.23","10.93.98.36","10.93.103.236","10.93.97.123","10.93.97.202"
printf -v service '%s,' 10.244.{1..255}.{1..255}
export no_proxy="${lan%,},${service%,},127.0.0.1";
#export no_proxy="${lan%,},10.244.0.0/16,127.0.0.1";
export NO_PROXY=$no_proxy
但是,这种方法会导致一个巨大的字符串($ no_proxy)远远超过Linux环境中的最大长度。
我还尝试在no_proxy中使用pod-network-cidr(10.244.0.0/16
-在上面已注释掉)
两个问题: -处理此警告的正确方法是什么(警告HTTPProxyCIDR)? -如何设置no_proxy以使绒布网络覆盖层正常工作并且群集可以工作
答案 0 :(得分:1)
应该使用no_proxy/NO_PROXY
环境变量。但是,您不需要将每个IP添加到字符串中,只需添加整个子网即可。另外,您似乎从列表中丢失了10.96.0.0/12
。
例如(假设10.93.98.0/24
是您的LAN子网):
export no_proxy="10.96.0.0/12,10.93.98.0/24,10.244.0.0/16,127.0.0.1"
此外,如果您使用的是Docker,请确保已配置Docker
noProxy。
答案 1 :(得分:1)
在许多环境/应用程序中,CIDR / IP范围不适用于no_proxy。
我们可以合理地假设我们不会通过IP地址访问Web代理之外的网络节点。换句话说,我们使用FQDN来访问python.com,google.com,github.com,但不直接使用其IP地址。
基于这种假设,我们可以绕过网络代理进行所有直接IP地址访问。
export no_proxy=localhost,.svc
printf -v allip '%s,' .{0..255}
export no_proxy="$no_proxy,${allip%,}"
这会将.0,.1,.2,...,.255
添加到no_proxy env变量。这里没有魔术。我们仅将IP地址视为FQDN,因此后缀匹配作为FQDN no_proxy设置。假设.120与所有IP地址x.x.x.120匹配。