k8s 节点调度


其次讲述一下通过deployment的方式部署应用服务,如何结合对应svc来实现服务发现;)

节点调度选择

方式一:通过nodeselector的方式

在这里插入图片描述
如官网中上述方式直接创建一个nginx的pod被调度到具有disktype:ssd标签的节点上。
注意:若含有多个key-value,则需要同时满足,才能被调度到对应节点上。

方式二:通过nodeAffinity的方式

在这里插入图片描述
通过这种更具表达性的方式去决定调度的节点(有如下operator操作:In, NotIn, Exists, DoesNotExist, Gt, Lt. 其中,NotIn 和 DoesNotExist用于实现反亲和性)
在这里插入图片描述
最后,总结这种方式的调度逻辑为:
matchExpressions下面的条件是与关系,同级matchExpressions是或关系

deployment与对应svc进行绑定;

本文以创建nginx服务为例,通过样例测试deploy与svc之间如何以标签形式绑定关系,并在svc中形成对应EP

deployment的yaml如下:(下列####表示省略了部分配置信息,该文主要描述deployment与对应svc进行绑定)

apiVersion: apps/v1
kind: Deployment
metadata:
  annotations:
   #####################
  generation: 3
  labels:
    app: nginx  ##关键
    app/name: test.prod-ns1
  name: test-nginx-1
  namespace: prod-ns1
  ####
  spec:
  progressDeadlineSeconds: 600
  replicas: 1
  revisionHistoryLimit: 10
  selector:
    matchLabels:
      app: nginx ## 关键
      project.cpaas.io/name: prod
      service.cpaas.io/name: deployment-test-nginx
##### 
  template:
    metadata:
      annotations:
        cpaas.io/creator: admin
      creationTimestamp: null
      labels:
        app: nginx ## 关键
        app.cpaas.io/name: test.prod-ns1
        project/name: prod
        service/name: deployment-test-nginx
#####

####注意:这里的三处,metadata的labels定义了deploy的标签,spec.selector定义了该匹配什么样标签的pod,template里面则定义了pod的标签类型!!####

SVC的yaml文件如下:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: prod-ns1
  labels:
    app: nginx
spec:
  selector:
    app: nginx
  clusterIP: None
  ###注意这里定义了一个headless类型的SVC,而通过标签选择器则使对应pod有了相应的svc;
  ports:
  - port: 80

最后:kubectl describe svc -n prod-ns1 nginx

在这里插入图片描述
显示出对应EP信息;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值