kubernetes資源清單定義入門
Kubernetes資源清單定義
Kubernetes是ReSTful風格的API
GET,PUT,DELETE,POST
kubectl run ,get,edit
資源,物件
workload:Pod,Replicaset,Statefulset,Daemonset,job,Cronjob等
服務發現和負載均衡:service,Ingress..
配置和儲存:Volume,CSI
ConfigMap,Secret
DownwardAPI
叢集級的資源
Namespace,Node,Role,ClusterRole,RoleBinding(角色繫結),ClusterRoleBinding(叢集角色繫結)
元資料型資源
HPA,PodTemplate(控制器建立的模板),LimitRange(資源限制模板)
api群組三個級別:apiversion
內測版
beta 測試版本 公測 (不穩定)
v1 穩定版
一般時候可以使用配置清單來建立
我們來檢視一下之前建立的Pod
[[email protected] ~]# kubectl get pods NAME READY STATUS RESTARTS AGE client 1/1 Running 0 11h myapp-848b5b879b-4xpl7 1/1 Running 0 10h myapp-848b5b879b-7gtn4 1/1 Running 0 10h myapp-848b5b879b-xtcdd 1/1 Running 0 10h nginx-deploy-5b595999-fsxlp 1/1 Running 0 11h
[[email protected] ~]# kubectl get pod myapp-848b5b879b-4xpl7
NAME READY STATUS RESTARTS AGE
myapp-848b5b879b-4xpl7 1/1 Running 0 10h
[[email protected] ~]# kubectl get pod myapp-848b5b879b-4xpl7 -o yaml
apiVersion: v1
kind: Pod #類別
metadata: #巢狀欄位
creationTimestamp: 2018-09-04T17:07:58Z
generateName: myapp-848b5b879b-
labels:
pod-template-hash: "4046164356"
run: myapp
name: myapp-848b5b879b-4xpl7
namespace: default
ownerReferences:
- apiVersion: apps/v1
blockOwnerDeletion: true
controller: true
kind: ReplicaSet
name: myapp-848b5b879b
uid: 41924f50-b061-11e8-a432-000c29f33006
resourceVersion: "10899"
selfLink: /api/v1/namespaces/default/pods/myapp-848b5b879b-4xpl7
uid: 1259f6af-b065-11e8-a432-000c29f33006
spec: #非常重要的欄位,資源規範
containers:
- image: ikubernetes/myapp:v1
imagePullPolicy: IfNotPresent
name: myapp
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-8zzcr
readOnly: true
dnsPolicy: ClusterFirst
nodeName: node1
priority: 0
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
volumes:
- name: default-token-8zzcr
secret:
defaultMode: 420
secretName: default-token-8zzcr
status:#只讀的欄位
conditions:
- lastProbeTime: null
lastTransitionTime: 2018-09-04T17:07:57Z
status: "True"
type: Initialized
- lastProbeTime: null
lastTransitionTime: 2018-09-04T17:07:58Z
status: "True"
type: Ready
- lastProbeTime: null
lastTransitionTime: null
status: "True"
type: ContainersReady
- lastProbeTime: null
lastTransitionTime: 2018-09-04T17:07:58Z
status: "True"
type: PodScheduled
containerStatuses:
- containerID: docker://8e757445c75729e865de6462d7dc4e849909776f8a34657ceab3f11baf569c0d
image: ikubernetes/myapp:v1
imageID: docker-pullable://ikubernetes/ [email protected]:9c3dc30b5219788b2b8a4b065f548b922a34479577befb54b03330999d30d513
lastState: {}
name: myapp
ready: true
restartCount: 0
state:
running:
startedAt: 2018-09-04T17:07:58Z
hostIP: 192.168.68.20
phase: Running
podIP: 10.244.1.8
qosClass: BestEffort
startTime: 2018-09-04T17:07:57Z
建立資源的方法:
apiserver僅僅接收JSON格式的資源定義;
yaml格式提供的配置清單,apiserver可以自動將其轉化為json格式,而後在提交
大部分資源的格式清單:
apiVersion 建立屬於哪個群組和哪個版本,注意大小寫 kubectl api-versions獲取
kind:資源類別
metadata:元資料
name
namespace
labels 標籤
annotations
每個資源引用的路徑PATH
/api/GROUP/VERSION/namespaces/NAMESPACE/TYPE/NAME
大寫的替換
spec:期望的狀態:disired state
status:當前狀態,current state,本欄位有kubernets自己建立,讓當前的狀態向期望的狀態靠近
檢視pod資源如何定義kubectl explain pods
建立第一個yaml檔案:一個pod上面建立的兩個容器
[[email protected] manifests]# cat pod-demo.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-demo
namespace: default
labels:
app: myapp
tier: frontend
spec:
containers:
- name: myapp
image: ikubernetes/myapp:v1
- name: busybox
image: busybox:latest
command:
- "/bin/sh"
- "-c"
- "sleep 3600"
開始建立:kubectl create -f pod-demo.yaml
檢視自己的建立:kubectl get pod
[[email protected] manifests]# kubectl get pod
NAME READY STATUS RESTARTS AGE
client 1/1 Running 0 13h
myapp-848b5b879b-4xpl7 1/1 Running 0 12h
myapp-848b5b879b-7gtn4 1/1 Running 0 12h
myapp-848b5b879b-xtcdd 1/1 Running 0 12h
nginx-deploy-5b595999-fsxlp 1/1 Running 0 13h
pod-demo 2/2 Running 0 1m
刪除自己的建立:kubectl delete -f pod-demo.yaml
獲取剛建立pod-demo的詳細資訊:
kubectl describe pods pod-demo
[[email protected] manifests]# kubectl describe pods pod-demo
Name: pod-demo #資源名
Namespace: default #名稱空間
Priority: 0
PriorityClassName: <none>
Node: node2/192.168.68.30 #執行在哪個節點
Start Time: Wed, 05 Sep 2018 13:33:26 +0800
Labels: app=myapp #標籤
tier=frontend
Annotations: <none>
Status: Running
IP: 10.244.2.10
Containers:
myapp: #第一個容器
Container ID: docker://aa6be83a949e31c1935fe607e9238fd3bc64b51bfa851350ea502c31371d07e4
Image: ikubernetes/myapp:v1
Image ID: docker-pullable://ikubernetes/[email protected]:9c3dc30b5219788b2b8a4b065f548b922a34479577befb54b03330999d30d513
Port: <none>
Host Port: <none>
State: Running
Started: Wed, 05 Sep 2018 13:33:26 +0800
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-8zzcr (ro)
busybox: #第二個容器
Container ID: docker://942c9ee53afcc890cbd1471877c5ecca238a8eb9de40fd5399bc3bbfd9e42d28
Image: busybox:latest
Image ID: docker-pullable://[email protected]:cb63aa0641a885f54de20f61d152187419e8f6b159ed11a251a09d115fdff9bd
Port: <none>
Host Port: <none>
Command:
/bin/sh
-c
sleep 3600
State: Running
Started: Wed, 05 Sep 2018 13:33:31 +0800
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-8zzcr (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-8zzcr:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-8zzcr
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events: #建立的詳細資訊
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 3m default-scheduler Successfully assigned default/pod-demo to node2
Normal Pulled 3m kubelet, node2 Container image "ikubernetes/myapp:v1" already present on machine
Normal Created 3m kubelet, node2 Created container
Normal Started 3m kubelet, node2 Started container
Normal Pulling 3m kubelet, node2 pulling image "busybox:latest"
Normal Pulled 3m kubelet, node2 Successfully pulled image "busybox:latest"
Normal Created 3m kubelet, node2 Created container
Normal Started 3m kubelet, node2 Started container
檢視myapp的訪問日誌:
[[email protected] manifests]# curl 10.244.2.10 #ip是上面生成的
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
[[email protected] manifests]# kubectl logs pod-demo myapp
10.244.0.0 - - [05/Sep/2018:05:45:35 +0000] "GET / HTTP/1.1" 200 65 "-" "curl/7.29.0" "-"
10.244.0.0 - - [05/Sep/2018:05:45:44 +0000] "GET / HTTP/1.1" 200 65 "-" "curl/7.29.0" "-"
pod建立的監控:
kubectl get pods -w
刪除pod-demo專案:
[[email protected] manifests]# kubectl delete pods pod-demo
pod "pod-demo" deleted
[[email protected] manifests]# kubectl get pod
NAME READY STATUS RESTARTS AGE
client 1/1 Running 0 13h
myapp-848b5b879b-4xpl7 1/1 Running 0 12h
myapp-848b5b879b-7gtn4 1/1 Running 0 12h
myapp-848b5b879b-xtcdd 1/1 Running 0 12h
nginx-deploy-5b595999-fsxlp 1/1 Running 0 13h
通過kubectl api-versions 可以檢視api的版本
[[email protected] ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1 #公測版本
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1
相關推薦
kubernetes系列06—kubernetes資源清單定義入門
container 4.3 socket complete 參數 touch ber ont blog 本文收錄在容器技術學習系列文章總目錄 1、認識kubernetes資源 1.1 常用資源/對象 workload工作負載型資源:pod,ReplicaSet,
kubernetes資源清單定義入門
Kubernetes資源清單定義 Kubernetes是ReSTful風格的APIGET,PUT,DELETE,POST kubectl run ,get,edit 資源,物件workload:Pod,Replicaset,Statefulset,Daemonset,jo
kubernetes資源清單定義
apiVersion: v1 #必選,版本號,例如v1,版本號必須可以用 kubectl api-versions 查詢到 . kind: Pod #必選,Pod metadata: #必選,元資料 name: string #必選,Pod名稱 namespace: s
Kubernetes學習之路(十一)之資源清單定義
map latest dem kubectl 服務發現 bject 均衡 ima limit 一、Kubernetes常用資源 以下列舉的內容都是 kubernetes 中的 Object,這些對象都可以在 yaml 文件中作為一種 API 類型來配置。 類別 名稱
kubernetes資源清單
五個一級欄位: apiVersion:形式:組名/version。對介面分組進行管理。檢視:kubectl api-versions。v1是核心群組。內測,公測,V1版 kind: metadata:元資料 name: namespace:k8s中的概念。
KUBERNETES-1-3-資源清單
1.kubectl explain pods可以看到建立pod的五個必要引數,apiVersion,kind ,metadata ,spec , status 。這裡還可以通過增加 . 的方式進一步深度查詢。 [[email p
自然語言處理(NLP)入門學習資源清單
致謝 鍾崇光博士參與了資料派THU於6月5日、THU資料派於6月8日釋出的《循序漸進提升Kaggle競賽模型精確度,以美國好事達保險公司理賠為例》一文的校對工作,並且給出了許多有建設性的意見,在此資料派翻譯組對鍾博士表達誠摯的感謝! 作者:Melanie Tosik
最好的入門自然語言處理(NLP)的資源清單
Melanie Tosik目前就職於旅遊搜尋公司WayBlazer,她的工作內容是通過自然語言請求來生產個性化旅遊推薦路線。回顧她的學習歷程,她為期望入門自然語言處理的初學者列出了一份學習資源清單。 目錄: · 線上課程 · 圖書館和開放資源 · 活躍的
Kubernetes中資源清單與Pod的生命週期(二)
一、資源清單 1,定義: 在k8s中一般使用yaml格式的檔案來建立符合我們預期的資源,這樣的yaml被稱為資源清單。 使用資源清單建立Pod: kubectl apply -f nginx.yaml 定義nginx.yaml內容為: apiVersion: v1 kind: Pod met
如何自定義Kubernetes資源
目前最流行的微服務架構非`Springboot+Kubernetes+Istio`莫屬, 然而隨著越來越多的微服務被拆分出來, 不但Deploy過程boilerplate的配置越來越多, 且繁瑣易錯, 維護成本也逐漸增高, 那麼是時候採用k8s提供的擴充套件自定義資源的方法, 將重複的template抽到後面
謝煙客---------Linux之DNS請求流程及資源記錄定義
博客 linux 運維 遊戲 it 互聯網DNS類型/同步類型/域和區域的區別SOA內部數據特性DNS負載均衡(Load balance)的實現緩存DNS服務器緩存定義、作用、多級緩存一次完整的解析請求解析答案DNS分布式特點區域解析庫/RR/RR_TYPEA記錄的輪循、多主機名對同一個主機、泛域名解析<
MVC4.0:未能加載文件或程序集“Newtonsoft.Json, Version=4.5.0.0 ”或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配
tex 原來 log 解決 center png 高版本 不一致 清單 在搭建MVC4.0項目的時候遇到報錯如下: 根據錯誤提示,查看程序集清單中引用版本為4.5.11,清單如下: 圖1 再看了下項目具體引用版本為6.0.0.0,如下: 圖2 項目實際引用版本與項目程序
托管資源與非托管資源的定義
釋放 post resource 防止 刪除對象 pre 第一次 性能 版本 托管資源指的是.NET可以自動進行回收的資源,主要是指托管堆上分配的內存資源。托管資源的回收工作是不需要人工幹預的,有.NET運行庫在合適調用垃圾回收器進行回收。 非托管資源指
在線培訓 | Kubernetes部署與使用入門
Kubernetes容器技術憑借其輕量化和快速部署的特性,被越來越多企業開發者贊譽,近兩年來發展態勢可謂炙手可熱。去年一年,Kubernetes的流行度持續快速上升,我們有理由相信在不遠的未來,Kubernetes將成為通用的基礎設施標準。開源的全棧化企業級容器管理平臺Rancher,憑借優異的基礎設施服務管
Kubernetes(k8s)入門、單機版安裝、kuberctl指令、k8s服務實例
單機版 nbsp href Kubernete net 實例 http itl 安裝 https://blog.csdn.net/qq_34701586/article/details/78732470Kubernetes(k8s)入門、
深入解析 kubernetes 資源管理,容器雲牛人有話說
系統 關系 充足 sig 配置信息 解釋 進行 解決 由於 資源,無論是計算資源、存儲資源、網絡資源,對於容器管理調度平臺來說都是需要關註的一個核心問題。 ? 如何對資源進行抽象、定義?? 如何確認實際可以使用的資源量?? 如何為容器分配它所申請的資源? 這些問題都是平
kubernetes 資源請求和限制
container 就會 如果 嚴格 可用 source 特殊情況 資源 節點 1. spec: containers: - name: example resources: requests:
未能加載文件或程序集“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一個依賴項。找到的程序集清單定義與程序集引用不匹配。 (異常來自 HRESULT:0x80131040)
找到 ons publickey rec token microsoft 一個 6.0 ckey 在web.config 的configuration節點下添加 <runtime> <assemblyBinding xmlns="urn:schem
Kubernetes 1.3 從入門到進階 安裝篇(1)
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
kubernetes資源創建詳解【持續完善中】
edi arr 顯示 replicat _id describe load 主機名 create 目錄 資源創建詳解 一:Pod及常用參數 1.簡介 2.模板 3.刪除pod 4.設置Pod主機名 5.鏡像拉取策略(ImagePullPolicy) 二:RC 1.簡介