近期在看K8s的相關(guān)文檔榄融,看到通過YAML文件創(chuàng)建資源時,對不同資源應(yīng)該怎么選擇apiVersion不太理解救湖,網(wǎng)上查找了一些相關(guān)的內(nèi)容愧杯,記錄如下:
首先,我們可以通過kubectl api-resources
命令獲取到 當(dāng)前K8s集群支持的所有 API 資源
kubectl api-resources -o wide
- NAME 資源名稱
- SHORTNAMES 資源名稱簡寫
- APIGROUP => apiVersion
- KIND 資源類型
- VERBS 可用的方法
我們可以通過制定api-group
參數(shù)來獲取特定 API 組的 API 資源
kubectl api-resources --api-group apps -o wide
然后使用kubectl explain命令獲取有關(guān)資源的詳細(xì)信息
kubectl explain deploy
通過上圖我們可以看到
Deployment
的apiVersion
對應(yīng)的版本號為extensions/v1beta1
鞋既,因此我們通過上述兩個命令就基本可以確定對于某個資源來說應(yīng)該選擇哪一個版本號了
需要注意的是 explain命令可能會顯示舊的 group/version力九,我們可以通過 –api-version參數(shù)顯示設(shè)置它
kubectl explain replicaset --api-version apps/v1
另外,我們可以使用kubectl api-versions
獲取集群支持的所有API版本
kubectl api-versions
使用以下命令檢查特定的 group/version是否可以用于某些資源邑闺,如果不可用會返回一個錯誤信息
kubectl get deployments.v1.apps -n kube-system