如何在 Kubernetes 中启用扩展 API?

How to enable extensions API in Kubernetes?

我想在 Google 容器引擎 (GKE) 中试用 Kubernetes 1.1 中可用的新 Ingress 资源。但是当我尝试创建例如以下资源时:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
spec:
  backend:
    serviceName: testsvc
    servicePort: 80

使用:

$ kubectl create -f test-ingress.yaml

我收到以下错误消息:

error: could not read an encoded object from test-ingress.yaml: API version "extensions/v1beta1" in "test-ingress.yaml" isn't supported, only supports API versions ["v1"]
error: no objects passed to create

当我 运行 kubectl version 它显示:

Client Version: version.Info{Major:"1", Minor:"0", GitVersion:"v1.0.7", GitCommit:"6234d6a0abd3323cd08c52602e4a91e47fc9491c", GitTreeState:"clean"}
Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.1", GitCommit:"92635e23dfafb2ddc828c8ac6c03c7a7205a84d8", GitTreeState:"clean"}

但我似乎安装了最新的 kubectl 组件,因为 运行ning gcloud components update kubectl 只是给我:

All components are up to date.

那么如何在 Kubernetes/GKE 中启用 extensions/v1beta1

问题是您的客户端 (kubectl) 不支持新的入口资源,因为它还没有更新到 1.1。 Google Container Engine release notes:

中提到了这一点

The packaged kubectl is version 1.0.7, consequently new Kubernetes 1.1 APIs like autoscaling will not be available via kubectl until next week's push of the kubectl binary.

连同解决方案(手动下载较新的二进制文件)。