資源清單簡介
資源清單的格式
apiVersion: group/version //指明api資源屬於哪個羣組和版本,同一個組
可以有多個版本
kubectl api-versions //查詢命令
• kind: //標記創建的資源類型,k8s主要支持以下資源類別 Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet,Job,Cronjob
• metadata: //元數據 name: //對像名稱
namespace: //對象屬於哪個命名空間 labels: //指定資源標籤,標籤是一種鍵值數據
• spec: //定義目標資源的期望狀態
#kubectl explain pod //查詢幫助文檔
創建自主式POD資源清單
$ vim demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: demo
labels:
app: demo
spec:
containers:
- name: ubuntu
image: ubuntu
command: ["/bin/sh", "-c", "sleep 3600"]
- name: nginx
image: nginx
創建自主式pod
kubectl create -f demo.yaml
刪除自主式pod
kubectl deleate -f demo.yaml
標籤
$ kubectl get pod --show-labels //查看標籤
NAME READY STATUS RESTARTS AGE LABELS
demo 2/2 Running 0 8s app=demo
• $ kubectl get pod -l app
NAME READY STATUS RESTARTS AGE demo 2/2 Running 0 34s
//過濾包含app的標籤 NAME READY STATUS RESTARTS AGE APP
• $ kubectl get pod -L app
demo 2/2 Running 0 39s demo
$ kubectl label pod demo version=v1 //打標籤
pod/demo labeled
• $ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS demo 2/2 Running 0 4m1s app=demo,version=v1
• $ kubectl label pod demo app=nginx --overwrite //更改標籤
pod/demo labeled
• $ kubectl get pod --show-labels
NAME READY STATUS RESTARTS AGE LABELS demo 2/2 Running 0 5m40s app=nginx,version=v1
節點標籤選擇器
$ kubectl label nodes server2 disktype=ssd
node/server2 labeled
$ kubectl get nodes -l disktype
NAME STATUS ROLES AGE VERSION
server2 Ready 6d v1.17.2
在yaml文件中增加標籤選擇器
$ kubectl delete -f demo.yml
pod "demo" deleted
$ kubectl create -f demo.yaml
pod/demo created
$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE
demo 2/2 Running 0 2m16s 10.244.1.44 server2