kubernetes - 创建kubectl后更改了apiversion

标签 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是extension / v1beta1而不是apiVersion:apps / v1beta2

最佳答案

创建部署时,apiserver会对其进行持久化,并能够将持久化的部署转换为任何受支持的版本。
kubectl get deployments实际上请求扩展名/ v1beta1版本(您可以通过添加--v = 6来查看)

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

关于kubernetes - 创建kubectl后更改了apiversion,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48413379/

相关文章:

kubernetes - 如何在 kubernetes 中禁用部署

kubernetes - 将k8迁移到RBAC时遇到问题

docker - Jenkinsfile管道:到达主机sidecar的ip

linux - 何时在 K8s 中使用外部 LoadBalancer?

Kubernetes : How to deattach from an attached pod

postgresql - 如何使用 postgres 在 GKE kubernetes StatefulSet 中保留数据?

kubernetes - 服务外部 ip 待定 kubernetes

docker - Kubernetes暴露多个Pod

go - 如何强制对自定义 Controller 中的 SharedIndexInformer 进行完全重新同步

kubernetes - 合并成功时触发 Gitlab Pipeline 作业