您的位置:首页 > 运维架构 > Docker

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 节点部署


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  k8s 应用 方法