Kubernetes:在Yaml部署中使用节点标签

时间:2018-07-09 14:20:19

标签: kubernetes

关于kubernetes yaml文件,我有一个简短的问题:

我可以使用节点标签作为变量来引用pvc中的节点标签值吗?

类似的东西:

df = pd.DataFrame({'sec':[122,3,5,7,1,0]})
df['time'] = pd.to_datetime(df.sec, unit="s").dt.time

有可能吗?

2 个答案:

答案 0 :(得分:1)

是否要强制使用在特定区域中创建的PV? StorageClass可以帮上忙。

自定义存储类:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ssd-usc1a
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-ssd
  zones: us-central1-a

引用自定义存储类的PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: main-dev-pvc-ssd-usc1a
  namespace: dev-project
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
  storageClassName: ssd-usc1a

假定与PVC的名称空间相同:

  volumes:
    - name: data-storage
      persistentVolumeClaim:
        claimName: main-dev-pvc-ssd-usc1a

Kubernetes将尝试将Pod调度在PV所在的同一区域中的节点上(在上面的示例中为us-central1-a)。来自文档的引用:“ ...调度程序(通过VolumeZonePredicate谓词)还将确保声明给定卷的Pod只放置在与该卷相同的区域中,因为不能跨区域附加卷”。因此,如果没有合适的节点,调度将失败。

答案 1 :(得分:0)

默认情况下,您不能在Kubernetes yaml文件中使用变量。

但是有些工具具有这种功能,例如helm。或者,您可以使用Ansible之类的自动化工具根据一些规则使用一些参数来创建Kubernetes资源。