现在我们已经将服务部署为具有多个副本的库伯内特斯部署。一旦服务器崩溃,库伯内特斯将其容器迁移到另一台可用的服务器,该服务器的任务约为3~5分钟。
迁移时,客户端可以访问部署服务,因为我们还有其他正在运行的副本。但有时请求会失败,因为负载均衡器重定向到死亡或迁移容器。
如果Kubernetes能够自动启动死副本,并在其他服务器上运行后添加它们,那就太好了。否则,我们需要像haproxy一样设置LB,以便在多个Deployment实例中执行相同的工作。
1、库伯莱
--node-statase-update-的持续时间指定kubalet发布节点状态以掌握的频率。注意:更改常量时要小心,它必须与node监测器中的node监测器格雷斯周期一起使用。默认值:10s(默认10s)
2、控制经理
--node monitor宽限期持续时间允许运行node在标记为不正常之前无响应的时间。必须是kubelet的nodeStatusUpdateFrequency的N倍,其中N表示kubelet发布节点状态所允许的重试次数。(默认40秒)
- pod-eviction-timeout duration删除故障节点上的pod的宽限期。(默认为5毫秒)
您需要配置运行状况检查,以便为服务提供正常的负载平衡。请阅读:
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/
kubelet使用就绪探测器来了解容器何时准备好开始接受流量。当一个Pod的所有容器都准备好时,该Pod被视为准备就绪。该信号的一个用途是控制哪些pod用作服务的后端。当Pod未就绪时,它将从服务负载平衡器中移除。
我有3个节点在kubernetes集群。我创建了一个守护进程集,并将其部署在所有3个设备中。这个守护进程集创建了3个Pod,它们正在成功运行。但是由于某些原因,其中一个吊舱失败了。 我需要知道如何在不影响守护程序集中的其他pod的情况下重新启动这个pod,也不创建任何其他守护程序集部署? 谢啦
我按照以下指南在kubernetes创建了一个flink集群:https://ci.apache.org/projects/flink/flink-docs-release-1.11/ops/deployment/native_kubernetes.html 作业管理器正在运行。当作业提交给作业管理器时,它生成了一个任务管理器pod,但任务管理器无法连接到作业管理器。
我有一个部署,其中包括一个configMap、persistentVolumeClaim和一个服务。我已经更改了configMap并将部署重新应用到我的集群中。我了解到此更改不会在部署中自动重启pod: 下面是Wiki.yaml的样子:
我有一个连接到外部数据库的应用服务器的吊舱。为了冗馀,我希望运行多个POD,所以我使用rolingupdate策略将部署扩展到3个(MAXSURABE=1和MAXUNAVABLE=1)。 有时(大多数情况下)pods在第一次创建时失败,因为我使用的是liquibase,所有pods都试图同时锁定数据库。
环境说明 CentOS 7.4 购买自阿里云普通的 ECS 华南地区(如果你是购买美国地区的服务器,则直接使用 kubespray 原项目,那些镜像地址不用修改,其他照着文档即可) 所有机子都是干净的不需要先安装 Docker 等其他容器相关的东西 机器简称 内网 IP 地址 部署软件 系统环境 硬件配置 操作机 172.18.243.242 ansible CentOS 7.4 1 vCPU +
这是我第一次尝试将微服务体系结构部署到Kubernetes中。起初,我正在考虑使用大使作为我的API网关。我还有一个身份验证服务,它验证用户并生成JWT令牌,但是,每次调用服务时,我都需要验证这个令牌。这代表了一个过载问题(因为每次API网关接收流量时,它都会转到该外部身份验证服务以验证JWT令牌),并且大使没有选择在不使用外部服务的情况下执行此过滤。 在这种情况下,使用Zuul网关似乎是最好的选