之前使用docker-swarm,刚开始觉得还不错,但发现经过一段时间后,或者timeout,或者内存过高崩溃,总之,各种各样。
因此,这段时间,我一直使用的是传统的方式,开了一大堆端口号。
这两天又重新拾起了kurbernetes, 使用的环境是ubuntu 16.04, kubeadm的版本是1.7.4。
整个的安装也还是哗哗的,很顺利的结束了。
calico的安装也是哗哗的,很顺利的样子。
pod 同样的结果。
开测!!!
悲剧的挂了,测试静态的页面访问,无问题,一切正常。
但涉及到数据库/redis就timeout了。看了日志,无法连接上。
进入容器,发现无法连接上数据库,redis,过程略,总之,无法连接主机所在的局域网上的主机,当然,除了部署所在的主机除外。
数据库在局域网上,redis也在局域网上。
calico查了许久,不知道如何解决。
iptables 看了下,这个我没有研究过,更加不懂。
总之,经过了一天的研究,反复重装了N次,一直如此。最后没办法了,iptables转发吧,这总可以了吧。
iptables转发很快的配置好了,在主机上测试,竟然不通,该开的都开了啊。
最终发现,这个测试不能在开转发本机上测试,使用其他主机访问转发的端口就无问题,但主机自身不可,泪奔阿。
然后,发现pod中也可以访问数据库了,也可以访问redis了,一切正常了。
从理论上而言,可能要将指定的端口打开,但我将iptables的所有的INPUT, OUTPUT, FORWARD都接受了,还是不可以。只有使用iptables转发指定的端口内容才可以。
总之,目前都正常了。小测了一下,在相同的环境下,和docker bridge的效率几乎不相上下,甚至会更好些。剩下的就看能撑多久了。之前测试时发现网络经常连着连着就不通了。这次还有待时间检验