K8s使用label進行pod節點的篩選

2021-10-01 19:29:49 字數 894 閱讀 1242

在一些有特殊需求的情況下,可能會涉及到將某些服務或者是某些pod固定要起在哪些節點上的需求,例如某些可能對磁碟io效能要求比較高的pod,要固定起在使用ssd的node上,以下為通過lables來實現以上的需求

基礎語法

新增label

kubectl label nodes =
刪除label

kubectl label nodes -
修改label

kubectl label nodes =--overwrite
新增label的選擇

在pod或者rc的配置項中新增如下配置

nodeselector: 

node: kube-node4

詳細配置檔案舉例
apiversion: v1

kind: replicationcontroller

metadata:

name: nginx

spec:

replicas: 6

template:

metadata:

labels:

run: nginx

spec:

containers:

- name: nginx

image: nginx:1.7.9

ports:

- containerport: 80

volumemounts:

- mountpath: /data/db

name: nginx

volumes: [}]

nodeselector:

node: ssd

k8s通過label來控制pod的位置

預設情況下,scheduler會將pod排程到所有可用的node,不過有些情況我們希望將 pod 部署到指定的 node,比如將有大量磁碟 i o 的 pod 部署到配置了 ssd 的 node 或者 pod 需要 gpu,需要執行在配置了 gpu 的節點上。kubernetes通過label來實現...

k8s集群建立pod,執行pod

k8s集群搭建好後,各個node的狀態變成了ready,就可以建立pod,建立完成後,就會預設的執行其中的container。使用乙個簡單yaml檔案描述pod apiversion v1 必選,版本號,例如v1,版本號必須可以用 kubectl api versions 查詢到 kind pod ...

K8s 為pod新增sidecar進行日誌收集

我們在k8s部署服務時,一般來說乙個服務會對應一類pod,而pod通過rs實現副本集,而這些pod的日誌一般有控制台stdout和檔案的,一般會把這些日誌最終輸出到elasticsearch裡,再通過kabana進行分析,而在實現由pod到elasticsearch es 時有多種方法,下面我列舉一...