创建Kubernetes Dashboard失败求助:API版本不兼容问题
解决Kubernetes 1.7版本部署Dashboard的API兼容性问题
你遇到的问题核心是Kubernetes 1.7版本不支持当前官方Dashboard推荐yaml里的高版本API组,具体原因如下:
- Kubernetes 1.7中,RBAC资源(Role、RoleBinding)对应的稳定API版本是
rbac.authorization.k8s.io/v1beta1,而你使用的yaml里用了rbac.authorization.k8s.io/v1——这个版本是在K8s 1.8+才正式纳入稳定版的 - Deployment资源在K8s 1.7里的可用API版本是
extensions/v1beta1或apps/v1beta1,但yaml里的apps/v1beta2是更高版本的定义,1.7版本的集群无法识别
下面给你两个可行的解决方案:
方案一:直接使用适配K8s 1.7的Dashboard版本
Kubernetes Dashboard v1.8.x系列是专门适配K8s 1.7版本的,你可以执行以下命令部署对应版本的Dashboard:
kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.8.3/src/deploy/recommended/kubernetes-dashboard.yaml
方案二:手动修改官方yaml的API版本后部署
如果你想自己调整现有yaml,可以按以下步骤操作:
- 先下载官方yaml到本地:
wget https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
- 打开文件,修改3处关键内容:
- 找到所有
apiVersion: rbac.authorization.k8s.io/v1的行(对应Role和RoleBinding资源),替换为apiVersion: rbac.authorization.k8s.io/v1beta1 - 找到Deployment资源的
apiVersion: apps/v1beta2,替换为apiVersion: extensions/v1beta1
- 找到所有
- 执行本地文件部署:
kubectl create -f kubernetes-dashboard.yaml
部署完成后,你可以用以下命令检查Dashboard Pod的运行状态:
kubectl get pods -n kube-system | grep kubernetes-dashboard
如果状态显示Running,就说明部署成功了。
内容的提问来源于stack exchange,提问作者rvshetty
相关产品推荐
相关产品推荐

