k8s資源清單定義入門

1.資源分類html

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格式清單
kubectl get pods myapp-9b4987d5-lwqnj -o yaml
spec:  # 規格、特性,用戶指望的狀態
  tolerations: # 容忍度
status:# 顯示當前資源的當前狀態

2.建立資源的方法python

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

大部分資源的配置清單包含: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建立podapi

mkdir manifests && cd manifests/
cat pod-demo.yaml
apiVersion: v1
kind: Pod
metadata:
  name: pod-demo
  namespace: default
  labels:
    itsDeploy: myapp
spec:
  containers: 
  - name: myapp
    image: ikubernetes/myapp:v1
  - 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
# 查看日誌
kubectl logs pod-demo myapp
# 進入運行中的容器,固然我建立的這個進不去,由於鏡像過小,不支持
kubectl exec -it pod-demo -c myapp -- /bin/bash
# 刪除pod
kubectl delete -f maniteste/pod-demo.yaml

 

參考博客:http://blog.itpub.net/28916011/viewspace-2213934/bash

python2.7源碼安裝MySQLdb:https://blog.csdn.net/lovemysea/article/details/79881382app

相關文章
相關標籤/搜索