デプロイメントをapiVersionextensions / v1beta1からapps / v1にアップグレードできません。extensions/ v1beta1を自動的に使用します。

共依存

現在、GKE Kubernetes 1.15クラスターがあり、1.16にアップグレードする予定です。1.16は特定のAPIをサポートしていないため、デプロイメントをextensions / v1beta1からapps / v1に変更する必要があります。

この単純なdeployment.ymlの使用:

apiVersion: apps/v1
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.14.2
        ports:
        - containerPort: 80

これを1.15クラスターに適用すると:kubectl -n mynamespace deployment.yml、実際に表示されるのは次の(kubectl -n mynamespace get deployments nginx-deployment)です。

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
    kubectl.kubernetes.io/last-applied-configuration: |
...

ご覧のとおり、実際のapiVersionはapps / v1ではなくextensions / v1beta1です。指定したバージョンが適用されないのはなぜですか?

更新:

これは私のkubectlバージョンです:

Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.4", GitCommit:"8d8aa39598534325ad77120c120a22b3a990b5ea", GitTreeState:"clean", BuildDate:"2020-03-12T23:41:24Z", GoVersion:"go1.14", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"15+", GitVersion:"v1.15.9-gke.24", GitCommit:"39e41a8d6b7221b901a95d3af358dea6994b4a40", GitTreeState:"clean", BuildDate:"2020-02-29T01:24:35Z", GoVersion:"go1.12.12b4", Compiler:"gc", Platform:"linux/amd64"}
壊れた

から返されるkubectl getapiVersionは、現在の構成の実際のapiVersionと必ずしも一致しません。

こちらをご覧くださいhttps//github.com/kubernetes/kubernetes/issues/62283#issuecomment-380968868

見積もり:

kubectl get削除さextensionsれるまで、下位互換性のためにAPIグループを優先するサーバー優先順序を使用しますextensionsつまりkubectl get deployment、デフォルトでextenions / v1beta1エンドポイントを使用します。

appsAPIグループの下でデプロイメントを取得するにはkubectl get deployment.apps、を使用しapps/v1デプロイメントを返します

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ