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都能启动?需要做什么配置吗?

...全文
2575 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
搞什么哦 2016-10-07
  • 打赏
  • 举报
回复
试了下问题原因是因为单独建pod的情况下,多pod绑定到同一宿主端口。 多pod的访问通过k8s的service实现,一个servicer包含多个pod。 外界访问通过service提供的ip和端口,不关心内部pods的信息。同一service下的pods通过kube-proxy做负载和反代理。
请特别注意本课程的最后更新时间与当前考试版本是否一致!!!!2021年3月最后更新,当前K8S考试版本为 v1.20 5天上机实操培训 + 1天考前辅导:模块课程内容Container与Kubernetes概述√    容器的概述√  容器与虚拟化的关系√  容器与Docker关系√  容器技术的发展历程√  容器编排技术概述√  Kubernetes概述√  Container和Kubernetes的关系Docker的安装和管理√  Docker安装√  Docker基础操作√  docker存储机制√  构建docker网络√  Namespace和Cgroup√  容器资源限制实战:√  为企业部署Docker√  秒级搭建HTTP服务√  实现容器的持久化存储Kubernetes架构介绍√  Kubernetes架构√  主要组件介绍√  基本概念与术语√  Kubernetes管理对象Kubernetes 安装和配置√  设计Kubernetes集群√  基于centos平台的安装配置√  安装Kubernetes   Masters和Nodes√  安装并使用kubeadm来安装,配置和管理Kubernetes集群√  选择网络解决方案√  部署后的测试实战:√  为企业构建Kubernetes集群Kubernetes API   及集群访问√  Yaml文件对API资源结构的定义√  使用Kubectl对API资源做访问√  NameSpaces介绍√  NameSpace管理实战:√  编写yaml文件√  构建Kubernetes的命名空间Pod管理与使用√  Pod介绍与原理讲解√  Pod创建与删除√  Pod生命周期管理√  Static Pods√  Init Containers实战:√  创建多容器pod√  pod生命周期管理√  设置POD容器启动顺序Label与Label   Selector√  标签(Label)√  标签选择器(Label Selector)√  使用标签选择器来安排Pod√  使用标签选择器来管理Node实战:√  让Pod运行到指定的节点√  批量管理指定标签的PodKubernetes常用的控制器√  ReplicaSet√  Deployment√  DaemonSet√  Job√  CronJob√  Statefulset实战:√  在每一个节点部署nginx服务√  实现nginx服务的弹性伸缩√  快速实现企业nginx服务的滚动升级√  创建一次性和周期性任务Kubernetes网络及服务√  Kubernetes网络模型√  Pod网络实现方式√  Calico 网络插件及部署√  Service的作用√  通过服务发现的服务访问流程实战:√  实现PODPOD通信√  实现POD与NODE通信√  实现nginx和http服务外部访问Kubernetes 负载均衡√  IPTABLES模式实现原理√  IPVS模式实现原理√  Ingress的原理讲解和使用实战:√  实现HTTP的负载均衡√  创建IngressKubernetes存储√  EmptyDir√  hostPath√  NFS√  PV和PVC√  StorageClass√  ConfigMap介绍√  Secret介绍实战:√  实现POD间的共享存储√  向POD分发机密信息√  创建使用StorageClassKubernetes资源调度√  Kubernetes资源管理√  Kubernetes调度器√  Kubernetes调度策略√  Kubernetes调度优先级和抢占机制√  Node策略和pod策略√  Taints和Toleration实战:√  为企业设置POD亲和性√  设置Kubernetes调度优先级√  将服务器设置为污点Kubernetes 安全√  访问API√  身份的验证与授权√  基于角色访问权限配置√  网络安全策略配置实战:√  为企业创建Kubernetes帐号√  设置帐号的权限√  验证权限√    配置Network Policy日志、监控、Troubleshooting和维护√  Kubernetes的日志方案√  Troubleshooting的方法论√  常见的场景排错√  维护模式(Cordon)√  疏散POD(Drain)实战:√  排查Kubernetes常见故障√  设置维护模式Helm包管理工具√  Helm简介√  使用Helm√  Chart简介√  Chart模板的使用实战:√  通过helm为企业部署Web√  通过helm构建WordPress博客平台√  使用Helm实现企业应用的升级与回滚 考前辅导:√  考试卷购买√  考试预约流程√  考试环境介绍√  考前辅导,真题讲解

1,163

社区成员

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

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