kubernetes单节点pod副本数为2,只会启动一个容器,按我想象中应该起2个

搞什么哦 2016-10-07 01:12:36
master-slave 1对1环境
想看看副本数为多份时docker怎么运行,按自己想的来写了如下js文件:
{
"kind": "Deployment",
"apiVersion": "extensions/v1beta1",
"metadata": {
"name": "tomcat7-deployment"
},
"spec": {
"replicas": 2,
"template": {
"metadata": {
"name": "tomcat7-1",
"labels": {
"name": "tomcat7-1"
}
},
"spec": {
"containers": [
{
"name": "tomcat7",
"image": "192.168.136.135:5000/tomcat7:latest",
"imagePullPolicy": "IfNotPresent",
"ports": [
{
"containerPort": 8080,
"name": "tomcat-web",
"hostPort": 18080
}
]
}
],
"restartPolicy": "Always"
}
}
}
}

文件中replicas为2,get pods 可以看到两个pod,但是总有一个READY 0/1。
describe Deployment tomcat7-deployment状态显示为Replicas: 2 updated | 2 total | 1 available | 1 unavailable 表示有一个不可用。
describe pods 到不可用的pod状态显示Status:Pending,message显示pod (xxxxxx) failed to fit in any node fit failure on node (192.168.136.133): PodFitsHostPorts
按消息应该是端口被占用,难道两个同一个pod的两份副本不能映射到宿主机的同一个端口?我pod的两份副本都绑定宿主机的18080端口。但是只有一份pod启动了,docker中也只启动了一个容器!
单节点要怎么做,才能让replicas为2时,pods都能启动?需要做什么配置吗?

...全文
2566 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
搞什么哦 2016-10-07
  • 打赏
  • 举报
回复
试了下问题原因是因为单独建pod的情况下,多pod绑定到同一宿主端口。 多pod的访问通过k8s的service实现,一个servicer包含多个pod。 外界访问通过service提供的ip和端口,不关心内部pods的信息。同一service下的pods通过kube-proxy做负载和反代理。

1,163

社区成员

发帖
与我相关
我的任务
社区描述
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。
社区管理员
  • Docker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧