k8s資源清單定義入門

2022-05-07 09:09:12 字數 1956 閱讀 1833

1.資源分類

a.workload型資源:service、pod、deployment、replicaset、statefulset、job、cronjob;

b.服務發現及服務均衡資源型資源:service、ingress;

c.配置與儲存型資源:volume、configmap、secret、downwardapi、csi(容器儲存介面,可以擴充套件各種第三方的儲存卷)

d.集群級資源:namespace、node、role、rolebinding、clusterrolebinding;

e.元資料型資源:hpa、podtemplate、limitrange(限制資源的如cpu、記憶體等)

檢視pod的yaml格式清單

spec: # 規格、特性,使用者期望的狀態

tolerations: # 容忍度

status:# 顯示當前資源的當前狀態

2.建立資源的方法

apiserver僅接受json格式的資源定義;yaml可以無損轉換為json,所以使用yaml格式提供配置清單,apiserver可自動將其轉換為json格式,然後再提交.使用命令kubectl run,最終也是自動轉為json格式的資源定義.

大部分資源的配置清單包含:

a.apiversion:表示屬於哪個api群組和版本,可以通過kubectl api-versions檢視,顯示方式為group/version

b.kind:資源類別,有pod、deloyment等

c.metadata:元資料,包括:

1)name:在同一資源下name是必須唯一的;

2)namespace:命名空間

3)labels:標籤

4)annotations:資源註解

5)selflink:每個資源引用的path,格式為/api/group/version/namespaces/namespace/type/name

6)spec:定義使用者期望的目標狀態(disired state)

7)status:表示當前狀態,讓當前狀態向期望的目標狀態靠近,本字段由k8s集群維護

# pod怎麼定義,即檢視幫助手冊

kubectl explain pods

# 檢視medadata下有哪些字段可以用

kubectl explain pod.metadata

kubectl explain pods.spec.containers

3.用yaml建立pod

mkdir manifests && cd manifests/

cat pod-demo.yaml

apiversion: v1

kind: pod

metadata:

name: pod-demo

namespace: default

labels:

spec:

containers:

- name: busybox

image: busybox

command:

- "/bin/sh"

- "-c"

- "echo $(date) >> /usr/share/nginx/html/index.html; sleep 5"

# 命令式資源清單,也叫宣告式資源清單

kubectl create -f maniteste/pod-demo.yaml

# 1個pod跑2個容器,"-"表示某個引數可以有多個,譬如containers中的name

kubectl describe pods pod-demo

# 檢視日誌

# 進入執行中的容器,當然我建立的這個進不去,因為映象太小,不支援

# 刪除pod

kubectl delete -f maniteste/pod-demo.yaml

參考部落格:

python2.7原始碼安裝mysqldb:

k8s資源清單

自主式的pod無法自癒 編輯檔案vim pod.yaml apiversion v1 指定api的版本 kind pod 檔案自定義的資源型別和角色,控制器型別 metadata 元資料物件 name demo 命名空間 labels 標籤 spec 固定物件容器的控制 containers nam...

K8S 資源配置清單補充1

k8s環境變數中敏感資訊會帶來的安全隱患 方法1 資源配置清單建立 configmap,通常用來管理應用的配置檔案或者環境變數,myblog two pod configmap.yaml apiversion v1 kind configmap metadata name myblog namesp...

k8s資源限制

注 以下只是在yaml檔案中進行資源限制的乙個片段,並不是完整的yaml檔案,僅是自己的乙個隨筆。root master limit vim cgroup pod.yaml spec containers name image ports protocol tcp containerport 80 ...