Docker(二十六)k8s大流量容器,的应用方法(利用亲和性和反亲和性,做pod 定点)
2018-08-09 16:38
288 查看
k8s 在有些应用场景下需要把某些应用容器,固定在相应的节点上,比如主流量入口,会有大量的流量进来,那么如果固定在node 节点上,那么根据k8s 调度pod 规则,会把这个大流量的pod 漂移到其他node节点上,但是问题很容易,影响这个node节点上的其他pod 容器的网络通信,
比如,我司,有个服务主入口,那么这个容器只能固定在4个,4核16g 的高性能node 节点上,这样,因为网卡最多就是100m,那么即使是跑满了,也不会影响其他节点上的pod
下面说下方法:
1,获取某个节点的labels
如果修改labels 在命令行最后加上 --overwrite
kubectl label node 172.17.122.109 as-rank=node1 kubectl describe node 172.17.122.109 ##然后查询Labels 这个字段或看到一下信息 Labels: as-rank=node beta.kubernetes.io/arch=amd64 beta.kubernetes.io/instance-type=QCLOUD beta.kubernetes.io/os=linux failure-domain.beta.kubernetes.io/region=sh failure-domain.beta.kubernetes.io/zone=200003 kubernetes.io/hostname=172.17.122.109
这个时候,编辑app应用的deployment文件,利用筛选器字段,将容器固定制定的node节点
....... spec: ... nodeSelector: as-rank: node ...
这时就会发现这个容器已经被k8s 调度到制定的节点上
这里要注意下,因为labels,可能多个节点是一样的,这么当用deployment部署的时候,只会往这几个相同labels 节点部署
相关文章推荐
- 利用dockerize模板为容器内应用生成配置文件和环境变量
- Docker的安装和镜像管理并利用Docker容器实现nginx的负载均衡、动静分离 Docker的安装 一、Docker的概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用
- Docker:利用Linux容器实现可移植的应用部署
- 关于如何在docker中利用tomcat和MySQL容器部署java web应用的详细步骤
- .Net Core自动化部署之利用docker版jenkins部署dotnetcore应用的方法
- Docker容器内应用服务自启动的方法示例
- Docker Compose—简化复杂容器应用的利器
- Docker学习笔记4: Docker-Compose—简化复杂容器应用的利器
- docker高级应用之赋予容器独立外网ip
- Docker Tomcat 容器部署 web应用(war)
- 利用SpringCloud和Docker搭建普通互联网应用架构
- 利用SpringCloud和Docker搭建普通互联网应用架构
- 如何利用百度知道,获得千万流量解决方法?
- Docker学习笔记之容器查看启动终止删除的方法
- 利用gitlab、maven、docker自动构建web应用
- docker进入运行中的容器的方法
- 如何 Scale Up/Down 应用?- 每天5分钟玩转 Docker 容器技术(126)
- 利用Volume在主机和Docker容器文件传输。
- Docker容器访问宿主机网络的方法