关于kubernetes使用的几个疑问。??


搭建测试kubernetes+flannel(1台master+etcd,2台minion)有几星期了,感觉确实比我之前单纯的当虚拟机使用高大尚多了,但在使用过程中也遇到几个问题,望大师们帮忙解答一下,谢谢.
1.我创建服务之后。比如nginx,他会随机在一台机器上启动服务。即使是集群也是如此,这样的话,是否存在单点故障
2. flannel使用的是私有网络,怎么做到外面的网络也能访问,难道是NAT吗???
3. pod,集群,server。之间是什么关系,怎么关联起来的,在yaml文件中没有找到,?
4. 集群中删掉服务之后,在节点上任然存在关闭的容器,而没有删掉,是怎么会是。谢谢
已邀请:

分别回复:
1. 启动多replica的nginx,其中一个挂了,另一个还可以继续服务。另外,如果nginx的pod挂了,Kubernetes帮助你重新启动这个pod。
2. flannel解决的是不同节点之间容器的互相访问。外网为何要访问flannel网络,没这个需求。外网需要访问的是Kubernetes的service
3. pod 集群 service 之间靠label关联起来。耦合很松。
4. 删除动作只是被schedule,需要等一会儿才能被删除。

wulonghui - PaaS工程师

赞同来自: hello_liuyi

  1. 集群中删掉服务之后,在节点上任然存在关闭的容器,而没有删掉,是怎么会是。


是这样,建议写个程序定时清理,可以参考
https://github.com/wulonghui/docker-cleaner

与柚什_lovelife

赞同来自:


1 这个可以在service后面绑定RC,设置replica数量
4 这个是问为啥只是停了容器,而不是把他删干净的意思么?这个回收可以定义规则的。

--maximum-dead-containers=100:
Maximum number of old instances of containers to retain globally. Each container takes up some disk space. Default: 100.
--maximum-dead-containers-per-container=2:
Maximum number of old instances to retain per container. Each container takes up some disk space. Default: 2.

迁徙

赞同来自:


我也尝试回答一下你的问题:
1.replication可以解决,k8s提供的scheduler可以将pod安装至集群的不同node中
2. 外面的网络想访问集群中的服务,如楼上所说,是使用k8s提供的service做的,实际实现上应该是k8s的proxy,通过iptables的NAT方式。你可以看看NAT表中新增的那些条目。
3. 如楼上所说,他们是靠label关联起来
4. 这个我也不知道咋回事,我也遇到了。kubetl delete之后,容器只是处于exited状态,并没有删掉。大神可以详细解释下删除的时机吗?@xue777hua

ggggqh666

赞同来自:


关于第四点,k8s在删除pod的时候并不会把容器删除,是出于可能需要在以后查看日志的考虑。
可以参考
http://qinghua.github.io/kuber ... u5BB9

https://github.com/kubernetes/ ... /1148

要回复问题请先登录注册