安装Kubernetes应用Calico.yaml时遇资源映射匹配错误求助
Calico v3.0 部署报错:资源映射未找到,需先安装CRD
报错场景
在Ubuntu环境下部署Kubernetes,执行以下命令应用Calico v3.0配置文件时出现资源匹配错误:
kubectl apply -f https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml
完整报错输出
configmap/calico-config 未变更 service/calico-etcd 未变更 serviceaccount/calico-cni-plugin 未变更 serviceaccount/calico-kube-controllers 未变更 资源映射未找到:名称为"calico-etcd"、命名空间为"kube-system",来自"https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml":在版本"extensions/v1beta1"中无匹配的"DaemonSet"类型 请先安装CRD 资源映射未找到:名称为"calico-node"、命名空间为"kube-system",来自"https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml":在版本"extensions/v1beta1"中无匹配的"DaemonSet"类型 请先安装CRD 资源映射未找到:名称为"calico-kube-controllers"、命名空间为"kube-system",来自"https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml":在版本"extensions/v1beta1"中无匹配的"Deployment"类型 请先安装CRD 资源映射未找到:名称为"calico-cni-plugin"、命名空间为"",来自"https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml":在版本"rbac.authorization.k8s.io/v1beta1"中无匹配的"ClusterRoleBinding"类型 请先安装CRD 资源映射未找到:名称为"calico-cni-plugin"、命名空间为"",来自"https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml":在版本"rbac.authorization.k8s.io/v1beta1"中无匹配的"ClusterRole"类型 请先安装CRD 资源映射未找到:名称为"calico-kube-controllers"、命名空间为"",来自"https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml":在版本"rbac.authorization.k8s.io/v1beta1"中无匹配的"ClusterRoleBinding"类型 请先安装CRD 资源映射未找到:名称为"calico-kube-controllers"、命名空间为"",来自"https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml":在版本"rbac.authorization.k8s.io/v1beta1"中无匹配的"ClusterRole"类型
解决步骤
- 先安装Calico所需的CRD资源:
kubectl apply -f https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/calico-crd.yaml
- CRD安装完成后,重新执行Calico部署命令:
kubectl apply -f https://docs.projectcalico.org/v3.0/getting-started/kubernetes/installation/hosted/kubeadm/1.7/calico.yaml
报错原因
- 目标Kubernetes集群的API版本中,
extensions/v1beta1组下的DaemonSet、Deployment等资源类型已被废弃或移除,Calico v3.0需要通过CRD来定义这些资源的兼容版本。 - RBAC相关的
rbac.authorization.k8s.io/v1beta1版本资源同样依赖CRD提供的定义,否则集群无法识别对应的资源类型,导致映射匹配失败。
内容的提问来源于stack exchange,提问作者prashant kumar
相关产品推荐
相关产品推荐

