在一些有特殊需求的情況下,可能會涉及到將某些服務或者是某些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 時有多種方法,下面我列舉一...