Deployment Kubernetes apiVersion extensions/v1beta1未通过正则表达式验证

Deployment Kubernetes apiVersion extensions/v1beta1未通过正则表达式验证,deployment,kubernetes,Deployment,Kubernetes,在创建部署时,Kubernetes Api版本-“extensions/v1beta1”出现了奇怪的正则表达式验证失败 kubectl --kubeconfig=/var/go/.kube/mcc-pp-config --context=sam-mcc2-pp --namespace=sam-mcc2-pp apply -f k8s-config-sam-mcc2-pp/sf-spark-worker-deployment.yaml --record Error from server (Ba

在创建部署时,Kubernetes Api版本-“extensions/v1beta1”出现了奇怪的正则表达式验证失败

kubectl --kubeconfig=/var/go/.kube/mcc-pp-config --context=sam-mcc2-pp --namespace=sam-mcc2-pp apply -f k8s-config-sam-mcc2-pp/sf-spark-worker-deployment.yaml --record

Error from server (BadRequest): error when creating "k8s-config-sam-mcc2-pp/sf-spark-worker-deployment.yaml": Deployment in version "v1beta1" cannot be handled as a Deployment: quantities must match the regular expression '^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$'
这是我正在使用的Kubernetes yaml:

kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: sf-spark-master
spec:
  replicas: 1
  progressDeadlineSeconds: 30
  selector:
    matchLabels:
      app: sf-spark-master
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    metadata:
      labels:
        app: sf-spark-master
        deployment: '$BUILD_VERSION'
    spec:
      containers:
        - name: sf-spark-master
          env:
            - name: ENVIRONMENT
              value: '$ENVIRONMENT'
            - name: INIT_DAEMON_STEP
              value: 'setup_spark'
          image: '$DOCKER_REGISTRY_HOST/salesiq-article-cache-stub:build-$BUILD_VERSION'
          ports:
            - containerPort: 8080
              protocol: TCP
            - containerPort: 7077
              protocol: TCP
            - containerPort: 6066
              protocol: TCP
          resources:
            limits:
              memory: '$SPARK_MASTER_MEMORY'
              cpu: '$SPARK_MASTER_CPU'
Kubectl版本的输出给出:

Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.4", GitCommit:"d6f433224538d4f9ca2f7ae19b252e6fcb66a3ae", GitTreeState:"clean", BuildDate:"2017-05-19T18:44:27Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.7", GitCommit:"8eb75a5810cba92ccad845ca360cf924f2385881", GitTreeState:"clean", BuildDate:"2017-04-27T09:42:05Z", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

此错误是由部署YAML中使用的以下变量引起的

$BUILD_VERSION
$SPARK_MASTER_MEMORY
$SPARK_MASTER_CPU
这不是部署的apiVersion的问题


它无法读取这些变量的值。

如果在YAML中使用变量,则不能直接使用该YAML

由于此
$
符号,它给出了错误

但是,您可以在
envsubt
命令的帮助下,从这个YAML构建您的部署,您已经在您的问题中发布了

此命令将替换YAML中的ENV变量

比方说,您已经设置了此环境

$ export ENVIRONMENT="ENV_DATA"
$ export DOCKER_REGISTRY_HOST="REGISTRY"
$ export BUILD_VERSION="TAG"
$ export SPARK_MASTER_MEMORY="5Gi"
$ export SPARK_MASTER_CPU="256Mi"
现在,替换ENV变量并使用以下命令创建
deployment.yaml

$ cat deployment.yaml | envsubst | kubectl create -f -
deployment "sf-spark-master" created

希望这会有所帮助

您是如何解决此问题的?