CKA – Node Selector的使用

什么是Node Selector?

Node Selector是让你的pod可以决定在哪个worker node上运行


为什么需要使用Node Selector?

1. 可以决定你的pod运行在那个worker node,因为有可能你的worker node的size并不是每个都一样,有可能你想在比较大台的worker node运行比较多pod

2. 出于合规性、性能和隔离目的而隔离工作负载

使用案例

1. 可以在pod或deployment当中添加nodeSelector

    Deployment案例

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: my-deployment
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: my-app
      template:
        metadata:
          labels:
            app: my-app
        spec:
          nodeSelector:
            disktype: ssd
          containers:
          - name: my-container
            image: nginx
            ports:
            - containerPort: 80

    Pod案例

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      nodeSelector:
        disktype: ssd
      containers:
      - name: my-container
        image: nginx
        ports:
        - containerPort: 80

    2. 为node添加label

    【查看你所有的worker node】
    kubectl get nodes
    
    【为node添加label】
    kubectl label nodes [你的node名] disktype=ssd
    
    【查看node详情】
    kubectl describe nodes [你的node名]
    
    【从node list查看label】
    kubectl get nodes --show-labels

    3. 如果标签都设对的话, 就会有以下的结果

    kubectl get pods -o wide

    4. 如果标签设错的话, 就会有以下的结果

    kubectl get pods -o wide
    kubectl describe pods my-pod

    Loading

    Facebook评论