Deployment Kubernetes apiVersion extensions/v1beta1未通过正则表达式验证
在创建部署时,Kubernetes Api版本-“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
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
希望这会有所帮助您是如何解决此问题的?