Kubernetes在目录中并行化多个样本-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

Kubernetes在目录中并行化多个样本

k8s小能手 2018-12-14 14:27:54 920

我能够在AKS上运行kubernetes工作(使用docker hub image处理生物样本,然后将输出上传到blob存储 - 这是通过我在yaml文件的args部分提供的bash命令完成的)。但是,我有20个样本,并且想要启动20个节点,以便我可以并行处理样本(每个节点一个样本)。如何将每个样本发送到不同的节点?yaml文件中的“parallelism”选项处理20个节点中每个节点上的所有20个样本,这不是我想要的。

存储 Kubernetes Shell Docker 容器
分享到
取消 提交回答
全部回答(1)
  • k8s小能手
    2019-07-17 23:20:56

    image"如果您希望作业的每个实例都在不同的节点上,您可以使用daemonSet,这正是它所做的,为每个工作节点提供1个pod。

    apiVersion: apps/v1
    kind: DaemonSet
    metadata:
    name: fluentd-elasticsearch
    namespace: kube-system
    labels:

    k8s-app: fluentd-logging

    spec:
    selector:

    matchLabels:
      name: fluentd-elasticsearch

    template:

    metadata:
      labels:
        name: fluentd-elasticsearch
    spec:
      tolerations:
      - key: node-role.kubernetes.io/master
        effect: NoSchedule
      containers:
      - name: fluentd-elasticsearch
        image: k8s.gcr.io/fluentd-elasticsearch:1.20
        resources:
          limits:
            memory: 200Mi
          requests:
            cpu: 100m
            memory: 200Mi
        volumeMounts:
        - name: varlog
          mountPath: /var/log
        - name: varlibdockercontainers
          mountPath: /var/lib/docker/containers
          readOnly: true
      terminationGracePeriodSeconds: 30
      volumes:
      - name: varlog
        hostPath:
          path: /var/log
      - name: varlibdockercontainers
        hostPath:
          path: /var/lib/docker/containers

    https://kubernetes.io/docs/concepts/workloads/controllers/daemonset/

    另一种方法 - 使用pod antiaffinity:

    affinity:

    podAntiAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        - labelSelector:
            matchExpressions:
              - key: ""app""
                operator: In
                values:
                - zk
          topologyKey: ""kubernetes.io/hostname""

    requiredDuringSchedulingIgnoredDuringExecution字段告诉Kubernetes Scheduler它永远不应该在topologyKey定义的域中共同定位两个具有app标签为zk的Pod。topologyKey kubernetes.io/hostname表示域是单个节点。使用不同的规则,标签和选择器,您可以扩展此技术,以跨物理,网络和电源故障域传播整体"

    0 0
云原生
使用钉钉扫一扫加入圈子
+ 订阅

云原生时代,是开发者最好的时代

推荐文章
相似问题
推荐课程