這是一篇水文弯菊,很水的那種
最近要換項(xiàng)目谊却,部署環(huán)境時(shí)需要用到k8s枫匾,本地直接運(yùn)行如下代碼報(bào)錯(cuò):
kubectl create -f nginx.yaml
錯(cuò)誤如下:
unable to recognize "in-proxy.yml": no matches for kind "Deployment" in version "apps/v1beta2"
問題分析
k8s用api version管理配置中的各種對(duì)象递览,例如Deployment等,可以在Which Kubernetes apiVersion Should I Use?中查閱相關(guān)api對(duì)應(yīng)的api version疯溺。
也可以在本機(jī)利用如下命令查詢论颅,當(dāng)前K8s所支持的api-version:
kubectl api-versions
查詢后發(fā)現(xiàn)當(dāng)前K8s不支持"apps/v1beta2"。啟動(dòng)minikube時(shí)可以看到本機(jī)kubernates版本為1.16.2囱嫩,也可以直接用kubectl version
查看client和server的版本恃疯。
> $ minikube start --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers
?? Darwin 10.15.1 上的 minikube v1.5.2
? 正在使用映像存儲(chǔ)庫 registry.cn-hangzhou.aliyuncs.com/google_containers
?? Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
?? Using the running parallels "minikube" VM ...
? Waiting for the host to be provisioned ...
?? 正在 Docker '18.09.9' 中準(zhǔn)備 Kubernetes v1.16.2…
?? Relaunching Kubernetes using kubeadm ...
解決問題
在k8s官方文檔中發(fā)現(xiàn)v1beta2.Deployment已經(jīng)被標(biāo)記為DEPRECATED, 應(yīng)該使用api/v1代替。將apiVersions改為api/v1墨闲,pod起動(dòng)成功今妄。
deployment等資源在1.6版本時(shí)放在extensions/v1beta1中,后遷入到apps/v1beta2,再到apps/v1中統(tǒng)一管理