AKS中通过YAML文件创建Kubernetes ReplicaSet失败求助
解决AKS中创建ReplicaSet报错
no matches for apps/, Kind=ReplicaSet的问题 这个问题我之前帮不少人排查过,核心原因是你使用的ReplicaSet API版本apps/v1beta2在当前AKS集群的Kubernetes版本中已经被废弃甚至移除了,所以kubectl无法识别这个资源类型。
第一步:确认你的AKS集群K8s版本
先执行以下命令查看集群的Kubernetes版本:
kubectl version --short
如果你的集群版本是1.16或更高,apps/v1beta2版本的ReplicaSet API已经被官方废弃并移除,必须使用稳定版的apps/v1。
第二步:修正YAML文件的API版本及配置
将YAML中的apiVersion改为apps/v1,同时确保selector配置完整且与Pod模板的labels匹配(这是apps/v1版本的必填项)。以下是完整的可运行示例:
apiVersion: apps/v1 kind: ReplicaSet metadata: name: kubia spec: replicas: 3 selector: matchLabels: app: kubia template: metadata: labels: app: kubia spec: containers: - name: kubia image: luksa/kubia ports: - containerPort: 8080
第三步:重新创建ReplicaSet
执行修正后的命令:
kubectl create -f kubia-replicaset.yaml
之后可以用kubectl get replicasets验证是否创建成功。
补充说明
Kubernetes的API版本迭代遵循废弃-移除的流程:
apps/v1beta2在K8s 1.16版本中被标记为废弃,1.21版本中完全移除- 稳定版的
apps/v1从K8s 1.9版本开始就已经可用,是目前推荐使用的版本
你之前创建Pod和RC(ReplicationController)正常,是因为它们的API版本(比如v1)一直是稳定版,没有被移除。
内容的提问来源于stack exchange,提问作者lukaspman
相关产品推荐
相关产品推荐

