kubectl创建后,apiversion发生了变化

时间:2018-01-24 01:11:16

标签: kubernetes

在kubernetes 1.8中,当我创建一个部署例如

apiVersion: apps/v1beta2 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.7.9
        ports:
        - containerPort: 80

然后我做了

kubectl get deploy nginx-deployment -o yaml

我得到了

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: 2018-01-24T01:01:01Z

....

为什么apiversion是扩展名/ v1beta1而不是apiVersion:apps / v1beta2

2 个答案:

答案 0 :(得分:5)

创建部署时,apiserver会持久保存,并且能够将持久部署转换为任何支持的版本。

kubectl get deployments实际上请求扩展名/ v1beta1版本(您可以通过添加--v = 6来查看此内容)

要获取app / v1beta2部署,请执行kubectl get deployments.v1beta2.apps

答案 1 :(得分:0)

您可以使用kubectl的旧版本。 如果是,请将您的kubectl升级到1.8,然后再次创建deployment