由于项目要用到kubernets,最近学习了一下,有些问题不太理解,求大神指教1.kubernets在部署容器的时候,能否确保节点同一pod分散在不同node上,如果相同的pod在一台主机上,宕机了不就gg了2.数据库一类的组件是不是不应该用kubernets管理,感觉kubernets的负载均衡只适用于无状态组件3.pod之间如何通信,比如有两个微服务A、B在不同的pod上,A要向B发送请求,如何实现,程序并不知道对方IP,连接的时候怎么连,是用服务名吗,需要指定端口吗,还是说要先做域名解析,如果需要自己做域名解析,那么DNS地址怎么配,看流程是kube-proxy代理的,需要程序主动连代理的吗4.RC可以检测pod数量,有pod挂掉会再拉一个,这一点我有点疑惑,为什么pod会挂,是kubernets不稳定吗,还有,kubernets应该检测不到docker内程序有没有的吧,是不是还是要自己写守护进程
解决方案 »
- Cinder创建的Volume,Attach后虚拟机内没有/dev/vdc
- openstack nova scheduler中的问题
- nutch1.8 问题
- cloudfoundry上的应用重启时出现de问题求解
- 自己搭建视频服务器后,外网用户访问卡
- 如何使用百度云API接口
- /etc/hosts无法commit
- docker用同一个mysql镜像创建多个容器只有一个容器可以使用
- kubernets相关的一些疑惑,求大佬解答
- [求助]zookeeper服务在服务器重启后无法二次成功启动
- vmware 6 上两个虚拟机访问共享存储问题
- 【华为云社区18年6月刊】社区“直播”栏目上线,“云视界”系列回放大派送 全球公有云编排服务哪家强?大比拼走一波
2 有状态的服务不是不能用k8s,只是自动调度和节点漂移,可能会丢失磁盘映射和持久化文件。如果要用k8s管理,也只能通过指定固定部署节点的方式解决。
3 pod间的通信,k8s提供了基于dns的服务发现方式,可以使用使用服务名称调用。不使用dns的情况下,k8s启动的时候会把service的访问ip和端口以环境变量的形式注入到其它容器中,可以在容器中拿到访问地址。但这有个缺陷,就是如果你要访问的服务在你之后启动,则你的容器中不会存在该环境变量,也就无法访问。
4 rc会保证pod的数量,为什么pod会挂掉?内存溢出啊、资源不足啊,物理节点宕机啊,等等。这时候k8s会自动调度,保证副本数。k8s提供探针检测容器内应用存活,以便pod是否需要重启,需要自己实现脚本在k8s部署时。
5 为什么没人理,估计这地方人少吧~
6 k8s官方文档写得很详细,我谷歌翻译的都能看明白,但是还是很多需要碰到了才能理解。